【技术实现步骤摘要】
一种基于代码和组合覆盖的测试用例优先级排序方法及测试系统
本专利技术属于软件测试领域,涉及一种基于代码和组合覆盖的测试用例优先级排序方法及测试系统。
技术介绍
从软件开发生命周期我们可以发现,软件工程不仅仅是软件开发以及编程语言,软件测试占据了很大的一个部分,尤其是在软件迭代回归测试中,事实上,回归测试作为一种有效的方法,可以保证代码局部的修改而对被测程序带来某些位置的错误,而数据表明,回归测试一般占据了软件测试预算的80%左右,并占据了整个软件维护预算的一半。因此为了缩减回归测试的开销,工业界与学术界提出了一系列基于测试用维护的技术,具体包括测试用例排序TCP(TestCasePrioritization),测试用例选择TCS(TestCaseSelection)以及测试用例缩减TCM(TestCaseMinimization)等。测试用例排序TCP毫无疑问是如今测试研究中的一个热点,其最早由Wong等人于1997年提出,基于传统的测试用例无顺序执行,提出了优化测试用例排序来提高回归测试效率的想法,使得越有可能发现程序错误的用例能够越早执行,以便越早发现错误进行修复,其准则是依据某种原则按优先级高高低对所有程序进行排序,进行测试。基于代码覆盖测试用例排序提出于21世纪初左右,其中Rothermel和Elbaum教授等人在1999年到2002年四年之间发表了4篇奠基性的文章,形成了基于代码覆盖测试的主要框架。同时他们给出了测试用例排序TCP问题的一般性描述:·给定:测试用例集T,T的全排列集PT,排序目标函数f,其定义域为PT,值域为实数。·问题:T′∈P ...
【技术保护点】
1.一种基于代码和组合覆盖的测试用例优先级排序方法,其特征在于,包括如下步骤:步骤1,根据测试用例集在基础版本的程序集上运行情况,收集测试用例集代码覆盖信息;步骤2,将测试用例集在迭代错误版本上运行,获得测试用例集在各个版本上的错误检测情况;步骤3,使用基于代码和组合覆盖排序方法,根据获得的代码覆盖信息进行测试用例排序,输出已排序的测试用例序列。
【技术特征摘要】
1.一种基于代码和组合覆盖的测试用例优先级排序方法,其特征在于,包括如下步骤:步骤1,根据测试用例集在基础版本的程序集上运行情况,收集测试用例集代码覆盖信息;步骤2,将测试用例集在迭代错误版本上运行,获得测试用例集在各个版本上的错误检测情况;步骤3,使用基于代码和组合覆盖排序方法,根据获得的代码覆盖信息进行测试用例排序,输出已排序的测试用例序列。2.根据权利要求1所述的一种基于代码和组合覆盖的测试用例优先级排序方法,其特征在于,所述步骤1的具体实现:步骤1.1,根据已获得的测试用例集,将其转换为测试用例脚本,可以输出该用例集代码覆盖信息;步骤1.2,对基础版本的程序集,执行上述的测试用例脚本,获得该测试用例集的覆盖信息文件;步骤1.3,编写相关分析脚本,对上述覆盖信息文件进行解析,生成测试用例集在基础版本程序集上的覆盖矩阵CoverageMatrix,其中每行代表测试用例,每列代表该程序集每种覆盖粒度,矩阵元素取值为0或者1,0代表该测试用例未覆盖该粒度,1代表该测试用例覆盖该粒度。3.根据权利要求1所述的一种基于代码和组合覆盖的测试用例优先级排序方法,其特征在于,所述步骤2的具体实现:步骤2.1,根据已获得的测试用例集,将其转换为相应的测试用例脚本,可以输出该用例集在程序集上的执行结果;步骤2.2,将上述测试用例脚本在基本版本与相关迭代版本的程序集上分别运行,获得测试用例集在各个版本程序上的输出信息;步骤2.3,编写相关脚本,对测试用例集在基础版本和错误迭代版本上的输出信息进行对比,如果用例在基础版本和错误版本上运行结果相同则表明该用例无法检测到该错误,若运行结果不同则表明该用例可以检测到该错误。以此生成测试用例集的错误检测矩阵FaultMatrix,其中每行代表测试用例,每列代表植入的错误,元素取值为0或者1,0代表该测试用例未检测到该错误,1代表该测试用例检测到该错误。4.根据权利要求1所述的一种基于代码和组合覆盖的测试用例优先级排序方法,其特征在于,所述步骤3的具体实现:步骤3.1,首先挑选第一个测试用例,对待排序用例集,根据各个用例的覆盖信息,选择覆盖粒度单元最多的测试用例,若存在多个用例满足条件则随机选择;步骤3.2,设置组合覆盖维度,并根据所设置的维度计算各个测试用例的评估值;步骤3.3,根据步骤3.2,依次计算所有待排序用例的评估值,若所有用例评估值均为0,转步骤3.4;若多个用例存在最大评估值,转步骤3.5;否则转步骤3.6;步骤3.4,若某一轮所有待排序测试用例评估值均为0,则依据步骤3.1挑选一个待排序测试用例,将其加入已排序用例集并从待排序用例集中删除,并将组合覆盖情况重置;步骤3.5,若某一轮多个用例拥有相同的最大评估值时,则依据步骤3.1挑选一个最大评估值的用例,将其加入已排序用例集并从待排序用例集中删除;步骤3.6,从待选测试时用例集中挑选具有最大评估值的用例,加入已排序用例集并从待排序用例集中删除;步骤3.7,重复执行上述步骤3.2-3.6,若没有候选测试用例时,结束本次排序,并输出已排序用例序列。5.根据权利要求4所述的一种基于代码和组合覆盖的测试用例优先级排序方法,其特征在于,所述步骤3.2中计算各个测试用例的评估值时,在计算函数覆盖粒度的评估值时,具体方法如下:对待测程序P,设存在m个函数单元MC{mc1,mc2,mc3,…mcm},覆盖粒度仅有两种状态,mci={0,1}(0≤i≤m),存在长度为n的测试用例集T{...
【专利技术属性】
技术研发人员:黄如兵,张犬俊,陈锦富,
申请(专利权)人:江苏大学,
类型:发明
国别省市:江苏,32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。