● 摘要
软件测试是软件开发中极为重要的过程,通常,测试在整个软件开发过程中所占的比例约为40%,因此测试技术的发展对于缩短测试周期、降低维护成本、提高软件质量有重要意义。软件测试在软件开发过程中有着越来越重要的地位。它贯穿于软件定义与开发的整个期间即整个软件开发过程。而测试用例的生成设计又是软件测试过程中的难点和重点所在,而它的主要依据应该来自于软件需求和软件设计。UML是一种半形式化的建模语言,定义良好、易表达,是软件测试数据的有效来源。传统的基于UML的软件数据生成方法扩展性差,无法施加多种测试方法,不能有效的发现软件中的缺陷。Agent是驻留在某一环境下能够自主地执行动作以满足目标的行为实体,具有扩展性好,灵活性强,高度自治的特点。这些特点可以克服传统方法中存在的问题。本课题通过利用多Agent合作的方法,提出了一个软件测试数据生成框架。该框架可以适应多种视图UML模型,可以施加多种测试方法并有良好的方法扩展性。这个框架由两个Agent合作组组成,并有两个规则知识库,Agent之间采用间接/主动终止模型进行交互。为适应软件测试,文章结合KQML及ACL语言提出了Agent之间的通信协议。本课题通过在两个Agent组内设定相关规则知识库,就可以基于多种UML视图施加多种软件测试数据生成方法,得到测试数据。通过在Agent中添加规则,可以添加新的软件测试数据生成方法,克服了传统方法扩展性差,测试数据生成方法单一的缺点。为了验证文章所提出的方法,在研究过程之中开发了相应的原型工具,并以“仿外挂物管理系统的教学系统”作为实例进行了测试输入模型建立以及测试数据生成的验证,论证了本课题所提出方法的可行性。