【技术实现步骤摘要】
本专利技术是对测试用例集的一种优化处理方法,旨在使得该技术处理后的测试用例在检测运用模型驱动开发的软件时,能够高效检错,达到减少测试成本的效果。
技术介绍
软件测试在软件开发过程中有着极其重要的作用,但软件测试也是软件开发中一个高成本的过程。测试人员或者通过手工有选择的设计测试用例,或者通过软件测试工具为一个软件自动生成测试用例,并利用测试用例对软件进行测试。通过手工设计测试用例,主观性强,测试质量很难保证,因此通过测试用例生成工具自动生成测试用例是目前软件测试的发展趋势。但对于测试用例自动生成而言,最大的问题在于如何从庞大的测试用例集中挑选出优秀的测试用例子集使得该子集能够在拥有良好的测试覆盖率的前提下,降低软件测试的开销。国内外的研究学者针对测试用例的选择和使用问题做了大量的相关研究工作,测试用例约简技术(TestCaseReduction,TCR)和测试用例排序技术(TestCasePrioritization,TCP)就是其中相对成熟的两种技术,这两种技术通过较小的代价解决了测试用例的选择问题。然而这两种技术仍存在一定的局限性,比如:TCR技术在约简测试用例集的过程中,可能将一些原本能够检测软件漏洞的测试用例当做冗余测试用例删除,因此使得精简后的测试用例集在错误检测能力上有所下降,失去了检测出某些潜在漏洞的能力。而传统TCP技术注重于按照某一种排序策略对测试用例进行排序亦或是根据软件代码与错误间的联系使覆盖易错区域测试用例优先执行,忽略了软件模型与错误之间存在的联系,使得传统TCP技术在运用到基于模型的软件测试时无法取得良好的效果。
技术实现思路
本 ...
【技术保护点】
一种基于UML模型的测试用例优先排序方法,其特征在于包括如下步骤:步骤1、获取软件各类的Chidamber和Kemerer度量元,具体的获取如下:通过统计UML类图中的各类的方法数量,获得各类的类加权方法数;用深度优先搜索在类图中搜索出类的最深前驱,计算类到最深前驱的距离,获得各类的继承树深度;分析各类的直接子类数量,获得各类的类子类数;统计各类的非继承关系数量,获得类耦合度;分析UML顺序图方法中类实例化对象之间的方法调用关系,获得各类的类响应度;步骤2、获取CK度量元值与软件故障的关系公式,然后根据关系公式和各类的CK度量元值估算类的错误概率;步骤3、获取时间自动机迁移之间的依赖关系;时间自动机由UML顺序图生成;分析自动机迁移上的参数,得到迁移的数据依赖关系;迁移的数据依赖迁移集DD、控制依赖迁移集CD即为迁移的依赖关系步骤4、计算迁移的重要度;根据迁移的被依赖度Dep以及迁移对应的类错误概率p计算该迁移的重要度;步骤5、计算测试用例优先级,根据优先级增量(Additional)排序策略排序测试用例。
【技术特征摘要】
1.一种基于UML模型的测试用例优先排序方法,其特征在于包括如下步骤:步骤1、获取软件各类的Chidamber和Kemerer度量元,具体的获取如下:通过统计UML类图中的各类的方法数量,获得各类的类加权方法数;用深度优先搜索在类图中搜索出类的最深前驱,计算类到最深前驱的距离,获得各类的继承树深度;分析各类的直接子类数量,获得各类的类子类数;统计各类的非继承关系数量,获得类耦合度;分析UML顺序图方法中类实例化对象之间的方法调用关系,获得各类的类响应度;步骤2、获取CK度量元值与软件故障的关系公式,然后根据关系公式和各类的CK度量元值估算类的错误概率;步骤3、获取时间自动机迁移之间的依赖关系;时间自动机由UML顺序图生成;分析自动机迁移上的参数,得到迁移的数据依赖关系;迁移的数据依赖迁移集DD、控制依赖迁移集CD即为迁移的依赖关系步骤4、计算迁移的重要度;根据迁移的被依赖度Dep以及迁移对应的类错误概率p计算该迁移的重要度;步骤5、计算测试用例优先级,根据优先级增量(Additional)排序策略排序测试用例。2.根据权利要求1所述的一种基于UML模型的测试用例优先排序方法,其特征在于步骤2所述的估算类的错误概率的具体实施如下:首先根据历史版本的CK度量元以及类是否错误的信息训练二元逻辑斯蒂模型,模型如下:因变量p为类是否包含错误的概率,类包含错误值取1,否则取0;自变量集X=(1,x1,x2,……,xn)T为类的各CK度量元的值;参数集B=(β0,β1,……,βn)为对应CK度量元的参数;用训练集训练二元逻辑斯蒂回归模型,获取较为准确的B;如果缺少历史信息则采用权威的CK度量元数据集训练模型,将当前版本的类CK度量元信息使用训练后的二元逻辑斯蒂公式计算类的错误概率。3.根据权利要求1所述的一种基于UML模型的测试用例优先排序方法,其特征在于步骤3所述的获取时间自动机迁移之间的依赖关系,具体的获取方式如下:3-1.提取所有迁移中使用数据集合Use和定义数据集合Def;3-1-1.分割字符串;字符串Str中包含有迁移上的判断条件以及输入输出,以逻辑、算数等运算符为分割点分割字符串Str,获得含有变量和变量取值的集合Temp;3-1-2.删除变量的赋值;变量的赋值为数字,从集合Temp中删去完全为数字形式的元素,获得变量集Var;3-1-3.变量归类;如果字符串Str存储的信息类型为内部返回时,变量集Var加入Def集合中;如果字符串Str存储的信息类型为其余类型时,则加入Use集合;3-2.生成迁移的数据依赖迁移集DD;3-2-1.采用深度优先搜索方式生成所有迁移的所有无环路径;3-2-2...
【专利技术属性】
技术研发人员:王兴起,章天宁,方景龙,魏丹,
申请(专利权)人:杭州电子科技大学,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。