(19)中华人民共和国国家知识产权局
(12)发明专利说明书
(10)申请公布号 CN 103500142 A
(43)申请公布日 2014.01.08
(21)申请号 CN201310476944.1
(22)申请日 2013.10.12
(71)申请人 南京大学
    地址 210093 江苏省南京市鼓楼区汉口路22号
(72)发明人 陈振宇 邹云潇 房春荣 高则宝
(74)专利代理机构 南京天翼专利代理有限责任公司
    代理人 黄明哲
(51)Int.CI
      G06F11/36
                                                                  权利要求说明书 说明书 幅图
(54)发明名称
动态清零是什么意思      面向动态Web应用的多目标测试用例优先级测试方法
(57)摘要
      面向动态Web应用的多目标测试用例优先级测试方法,在回归测试中采用基于元素覆盖和语句覆盖的多目标测试用例优先级技术,使用多个目标对基于动态web应用的测试用例进行优先级排序,优先级高的测试用例将被优先执行。本发明在不进行任何约简测试用例的前提下,对测试用例的执行顺序进行了重新排序,这样一方面使得测试用例集合的错误检测能力不受影响,另一方面提高了错误检测的速率,使得程序员可以尽早地到更多的错误,节省了程序员寻错误的时间成本。
法律状态
法律状态公告日
法律状态信息
法律状态
权 利 要 求 说 明 书
1.面向动态Web应用的多目标测试用例优先级测试方法,其特征是在回归测试中            采用测试用例优先级技术,使用多个目标对基于动态web应用的测试用例进行优先级排            序,优先级高的测试用例将被优先执行;其中,使用语句覆盖和元素覆盖信息作为排序            的度量依据,使用基于开销的多目标覆盖信息作为排序的适应函数,所述多目标覆盖信            息是指一个测试用例对于每一个覆盖目标的满足情况的加权总和,开销指执行一个测试            用例所需的代价,适应函数为衡量一个测试用例在单位开销下的覆盖程度的量化标准,            每一个测试用例基于其覆盖和开销具有对应的适应函数值,使用额外贪心算法根据每个            测试用例的适应函数值对测试用例集中的测试用例进行排序,根据排序执行测试用例,            具体为:           
设待选测试用例池中包含所有的待选测试用例,遍历待选测试用例池,选择第一个            测试用例,它具有最大的适应函数值,将选出的测试用例加入已选测试用例集合中,并            移出待选测试用例池;之后查看被选出的测试用例是否发现新的程序错误,如果有则继            续检验当前是否已检测到了全部的程序错误,如果是则测试结束,表明当前的已选测试            用例集合到了程序全部错误,如果没有到全部错误,检测选择的测试用例数据是否            达到了设定的测试用例选择数目,如果已达到则测试结束,如果没有达到测试用例选择            数目,则检测当前已选测试用例对目标是否达到100%覆盖,如果是则清空覆盖为0,            若当前目标覆盖不为100%或已被清零,重新遍历待选测试用例池,选择下一个测试用            例,开始下一个迭代过程。           
2.根据权利要求1所述的面向动态Web应用的多目标测试用例优先级测试方法,            其特征是在所述额外贪心算法中,适应函数值的计算为:已选测试用例对各目标覆盖为            已知参数,对测试用例集中每一个待选测试用例,计算每个目标下每个待选测试用例与            已选测试用例相比额外的覆盖率,将待选测试用例每个目标的额外覆盖率加权求和并除            以它的开销,获得每个待选测试用例适应函数值。           
3.根据权利要求1或2所述的面向动态Web应用的多目标测试用例优先级测试方            法,其特征是设定的测试用例选择数目为所有待选测试用例总数的三分之一。           
说  明  书
<p>技术领域       
本发明属于计算机技术中的软件测试技术领域,尤其是软件测试中回归测试技术领        域,用于基于分布的测试用例优先级技术,依据执行剖面在剖面空间中的分布对测试用        例的执行顺序进行优先级排序,是一种测试用例集优化技术,具体为一种面向动态Web        应用的多目标测试用例优先级测试方法。       
背景技术       
对于工业程序,测试用例集通常包含数以千计甚至更多的测试用例。执行全部的测        试用例代价昂贵,这种情况对于回归测试尤为明显:随着程序的不断演化,测试用例数        目不断增多;在有限的资源限制下,很难重新执行每个测试用例。       
测试用例优先级技术旨在解决上述问题。测试用例优先级技术根据一些准则重新排        列测试用例被执行的顺序,优先级高的测试用例将被优先执行。本发明主要针对回归测        试场景,关注于通用的回归测试情况,即测试用例优先级技术将应用于基础版本而不考        虑其上发生的任何代码改变。       
测试用例优先级技术的目的是,如果一组测试用例按照特定的顺序执行,那么该组        测试用例更容易满足某个目标。理想情况下,测试用例应该按照尽可能早地最大化错误        检测能力来排序。但在错误信息未知之前,照此排序是不切实际的。因此,测试用例优        先级技术使用代理,尽可能早的最大化代理的某种属性,希望能够尽早最大化错误检测        能力。       
传统的测试用例优先级技术使用单目标覆盖信息作为代理。它们关注于尽可能早地        最大化某一种特定的程序元素,如语句、分支、数据流/控制流等的覆盖率,希望以此达        到最大化错误检测能力;这种技术被称为基于单目标的测试用例优先级技术。常见的基        于单目标的优先级技术包括贪心算法、遗传算法等等。       
然而,近几年的学术研究指出,单一的元素覆盖率这一目标并不一定能够保证获得        高的
错误检测能力,特别是在基于动态web技术的应用中。       
发明内容       
本发明要解决的问题是:改进针对动态web应用的测试用例优先级技术。       
本发明的技术方案为:面向动态Web应用的多目标测试用例优先级测试方法,在                        回归测试中采用测试用例优先级技术,使用多个目标对基于动态web应用的测试用例进        行优先级排序,优先级高的测试用例将被优先执行;其中,使用语句覆盖和元素覆盖信        息作为排序的度量依据,使用基于开销的多目标覆盖信息作为排序的适应函数,所述多        目标覆盖信息是指一个测试用例对于每一个覆盖目标的满足情况的加权总和,开销指执        行一个测试用例所需的代价,适应函数为衡量一个测试用例在单位开销下的覆盖程度的        量化标准,每一个测试用例基于其覆盖和开销具有对应的适应函数值,使用额外贪心算        法根据每个测试用例的适应函数值对测试用例集中的测试用例进行排序,根据排序执行        测试用例,具体为: