论文部分内容阅读
随着软件规模和复杂度的迅速提高,测试成为保障软件质量的主要技术手段和促进软件开发的重要方法。目前测试主要依赖需求、设计规约,这就带来以下问题:首先,软件缺陷大量出现于需求至设计的转换阶段,而它们之间的可追踪性不佳,难以测试设计实现是否满足需求目标;第二,测试依赖规约的最终稳定,难以与开发并行;第三,测试的主要成本在于审核,如何缩减测试集获得用于最终审核的有效测试子集亟待解决。基于此,本文提出软件特征模型及依据特征分类并缩减测试集的方法。该模型以特征贯穿项目始终,增强了不同开发阶段的联系性,并在各阶段建立可理解、可追踪的抽象拓扑结构,从而有助于项目人员检验软件目标的前后一致性。软件特征模型能够提高系统的可测试性,为测试设计及测试用例优化提供辅助依据,并为软件开发的顺利进行提供参考。本文的主要工作如下:1、调研测试研究现状,发现当前的测试存在测试依据不充分、测试收益不高等问题。本文深入分析缺陷成因及测试本质,指出研究软件特征模型,并以之在软件生命周期各阶段指导测试及优化的必要性。2、建立需求特征模型。该模型以需求特征为基本要素,通过抽象层次结构组织特征集,利用特征元模型表达语义,并通过逻辑运算描述特征约束。模型与需求同步建立,项目人员可利用可变性特征作为检验需求本身正确性的参考,并依据模型的用例部分设计测试集。3、建立设计特征模型。该模型的基本要素是特征构件,构件通过语义与需求特征及其关系建立连接。模型的建立过程用责任-分配的方式,以自顶向下或自底向上的方法实现,从而在模型构建上与需求特征模型建立连接。利用设计特征模型,项目人员可与开发同步直观地检验设计正确性,将特征构件的可变性作为检验设计正确性的参考,并可根据设计特征模型拓扑结构得到测试路径。4、提出基于特征的测试集缩减方法。本文以测试执行路径元素表征系统的动态运行,聚类分析元素数据从而将测试集合依据特征分类,使用失效跟踪抽样的方法得到测试子集。实验表明,表征执行路径的元素越能刻画缺陷,则得到的测试子集失效发现率越高。5、提出测试集缩减方法的一个实现方案。利用多维标度法辅助聚类缩减回归测试子集,并开发测试子集获取的实验工具原型TeChoose。利用多维标度法的安全降维性质,将测试集的聚类情况等效为二维空间的点图形式,便于测试人员参与分类选择,以得到更合适的测试子集。实验表明该方法得到的测试子集有较高的失效发现率。通过实验工具原型TeChoose的开发实践证明,本文提出的软件特征模型能够与开发并行,辅助追踪需求至设计的转换。利用TeChoose获得的实验结果证明,依据特征分类并缩减测试集的方法,能够有效提高测试效益。