首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

基于执行序列的JUnit测试用例化简方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:北京大学

摘要:本发明提供了一种基于执行序列的JUnit测试用例化简方法,属于软件测试中的测试用例化简技术领域。本发明提出了一种k-序列的表示方法来描述每条JUnit测试用例,用以体现每条JUnit测试用例对方法的调用顺序,并将所有JUnit测试用例包含的方法调用序列作为化简前后需要保持不变的条件,对JUnit测试用例集合进行化简,从而保证化简后的测试用例集合可以揭示源于单个方法调用不当和源于多个方法调用顺序不当的错误。本发明提出的测试用例化简技术可以提高化简后测试用例集合的揭错能力,减少测试用例化简过程造成的测试效果损失。

主权项:1.一种JUnit测试用例化简方法,化简后的测试用例是化简前测试用例的真子集,化简后的测试用例的揭错能力与化简前接近,其特征在于:化简后的测试用例对方法调用顺序不当导致的故障的揭错能力与化简前相同;化简方法包括以下步骤:第一步:把JUnit测试用例集合中的每条测试用例都表示成一个k-序列的集合;第二步:对第一步中得到的k-序列集合进行化简;其中,第一步的实现方法为:先将每条JUnit测试用例拆分成多条k-序列,再将每条JUnit测试用例表示成多个k-序列构成的集合;对形如JUnit的测试用例T=[m1,m2,,...,mn],表示测试用例T中有n个方法m1,m2,m3,...,mn被调用,它们的调用顺序是mi要比mj先被调用i<j,则把它表示成k-序列形式的过程如下:A.如果测试用例T只有1个方法被调用,即T=[m1],那么它的序列表示如下:●如果k=1,T的k-序列表示为{[m1]};●如果k>1,T的k-序列表示为B.如果测试用例T只有2个方法被调用,即T=[m1,m2],那么它的序列表示如下:●如果k=1,T的k-序列表示为{[m1],[m2]};●如果k=2,T的k-序列表示为{[m1,m2]};●如果k>2,T的k-序列表示为C.否则,●如果2≤k<k+1<n,那么,先将T拆分成k-序列:[m1,...,mk],[m2,...,mk+1],...,[mn-k+1...,mn],然后将T表示成{[m1,...,mk],[m2,...,mk+1],...,[mn-k+1...,mn]};●如果2≤k<k+1=n,那么先将T拆分成k-序列:[m1,...,mk],[m2,...,mk+1],然后将T表示成{[m1,...,mk],[m2,...,mk+1]};●如果2≤k=n,那么先将T拆分成k-序列:[m1,...,mk],然后将T表示成{[m1,...,mk]};●如果k=1,那么先将T拆分成k-序列:[m1],[m2],...,[mn],然后将T表示成{[m1],[m2],...,[mn]};●如果k>n>3,那么先将T拆分成k-序列:然后将T表示成第二步的实现步骤为:1根据JUnit测试用例包含的方法数将原测试用例集合T分成两个不相交的子集T1和T2,T1由方法数少于k的JUnit测试用例构成,T2由方法数不少于k的JUnit测试用例构成,初始时,化简后的测试用例集合T″为空;2对于T1中的测试用例,选择具有不同k-序列表示的JUnit测试用例来构造集合T3,即:如果有多条JUnit测试用例具有相同的k-序列表示,从中任选一条JUnit测试用例放入T3中;3对于T2中的测试用例,首先统计T2中的所有测试用例的k-序列表示包含的方法序列构成集合R,使用如贪心算法在内的任一化简算法,从T2中挑选出部分测试用例构成集合T4,使得R中任意方法序列都至少可以被T4中的某条测试用例对应的k-序列表示包含;4T3和T4两集合的并就是化简后的JUnit测试用例集合T″。

全文数据:

权利要求:

百度查询: 北京大学 基于执行序列的JUnit测试用例化简方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。