[发明专利]一种多参量软件测试方法有效
申请号: | 201010526993.8 | 申请日: | 2010-10-26 |
公开(公告)号: | CN101986281A | 公开(公告)日: | 2011-03-16 |
发明(设计)人: | 陈柏强;张健 | 申请(专利权)人: | 中国科学院软件研究所 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京君尚知识产权代理事务所(普通合伙) 11200 | 代理人: | 俞达成 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 参量 软件 测试 方法 | ||
技术领域
本发明涉及软件工程领域中的组合测试技术,尤其涉及对使用的组合测试数据进行优化的软件测试方法。
背景技术
随着信息技术的飞速发展,软件在工业、服务业、金融、国防等各行各业,以及人们的日常生活中得到了广泛应用。为了确保软件的可靠性,在软件发布前,通过软件测试技术尽可能多地发掘系统中潜在的错误,具有十分重要的意义。
多参量软件中隐藏的错误很可能是由两个以上参量相互作用所触发的。因此,如果只是单独对各个参量的可能取值进行测试,就很可能遗漏掉那些由多个参量相互作用引起的软件错误。理想状态下的测试方案是对系统中全部参量的取值组合进行穷举测试,检查系统能否正确运行。但是,执行穷举测试所需要的测试用例将随着系统中的参量个数呈指数增长。例如,对一个具有17个布尔参量的铁路安全控制系统进行穷举测试,共需要217个测试用例,测试成本太高。可见,穷举测试是不切实际的。
软件工程的经验表明,实际应用中的大多数软件隐藏的错误,往往是由少数几个参量互相作用触发的。例如,美国国家标准和技术协会(NIST)的Kuhn等人曾采用四个软件系统进行了详细研究,其结果表明,超过80%的错误是由不超过三个参量互相作用触发的。这意味着,在对系统进行测试时,如果测试数据覆盖了全部参量中的任意几个(例如任意三个)参量的取值组合,便能检查出大多数程序错误,保障测试的检错率和有效性。与此同时,和穷举测试相比,所需的测试用例数目将大幅消减,测试成本大大降低。例如,对于上述铁路安全控制系统,只需要11个测试用例,就能保证17个参量中任意两个参量的取值被覆盖到,只需要24个测试用例,就能保证任意三个参量的取值组合被覆盖到。
以上便是组合测试的动机和意义。所谓强度为t的组合测试,是指任意数目不超过t个的参量之间所有可能的取值组合都至少在测试用例中出现一次。强度为2的组合测试,又称为成对测试(Pairwise Testing),并被广泛采用。穷举测试是强度等于全部参量个数的一种特殊的组合测试。
组合测试数据的生成问题是通过构造满足一定强度的混合覆盖数组(Mixed Covering Array)来解决的。下面是混合覆盖数组的定义:
定义1混合覆盖数组MCA(N;t,k,v1v2…vk)是一个由v个符号组成的N×k矩阵,其中v=v1+v2+…+vk,并具有以下性质:
1、第i列的所有符号是一个大小为vi的集合Vi中的元素。
2、任意的N×t子矩阵包含了对应的t列的所有可能取值组合。
在这里,t即上文提到的强度(strength)。例如,表1给出了一个强度为2的混合覆盖数组MCA(6;2,3,223),代表了一组对一个含有三个参量p0、p1和p2的系统进行强度为2的组合测试的测试数据。其中p0和p1各有两个不同的取值0、1,p2有三个不同的取值0、1、2。
表1、MCA(6;2,3,223)
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010526993.8/2.html,转载请声明来源钻瓜专利网。