【技术实现步骤摘要】
本专利技术涉及软件工程领域中的组合测试技术,尤其涉及对使用的组合测试数据进 行优化的软件测试方法。
技术介绍
随着信息技术的飞速发展,软件在工业、服务业、金融、国防等各行各业,以及人们 的日常生活中得到了广泛应用。为了确保软件的可靠性,在软件发布前,通过软件测试技术 尽可能多地发掘系统中潜在的错误,具有十分重要的意义。多参量软件中隐藏的错误很可能是由两个以上参量相互作用所触发的。因此,如 果只是单独对各个参量的可能取值进行测试,就很可能遗漏掉那些由多个参量相互作用引 起的软件错误。理想状态下的测试方案是对系统中全部参量的取值组合进行穷举测试,检 查系统能否正确运行。但是,执行穷举测试所需要的测试用例将随着系统中的参量个数呈 指数增长。例如,对一个具有17个布尔参量的铁路安全控制系统进行穷举测试,共需要217 个测试用例,测试成本太高。可见,穷举测试是不切实际的。软件工程的经验表明,实际应用中的大多数软件隐藏的错误,往往是由少数几个 参量互相作用触发的。例如,美国国家标准和技术协会(NIST)的Kuhn等人曾采用四个软 件系统进行了详细研究,其结果表明,超过80%的错误是由不超过三个参量互相作用触发 的。这意味着,在对系统进行测试时,如果测试数据覆盖了全部参量中的任意几个(例如任 意三个)参量的取值组合,便能检查出大多数程序错误,保障测试的检错率和有效性。与此 同时,和穷举测试相比,所需的测试用例数目将大幅消减,测试成本大大降低。例如,对于上 述铁路安全控制系统,只需要11个测试用例,就能保证17个参量中任意两个参量的取值被 覆盖到,只需要24个测试用例, ...
【技术保护点】
一种多参量软件测试方法,其步骤包括:1)生成强度为t的组合测试数据TS,所述组合测试数据由N个测试用例组成,按照先后次序,其对应下标分别为0至N-1,其中每一测试用例为一个k元组(p↓[0],p↓[1],…,p↓[k-1]),强度t为自然数;k为自然数,表示待测软件的参量个数;p↓[i]代表各参量,分别取值于V↓[i];强度为t指该组合测试数据覆盖任意不超过t个参量的所有可能的取值组合;2)识别所述组合测试数据的非敏感元素,所述非敏感元素指测试数据中取值的改变不影响所述组合测试数据强度t的那些元素;3)实例化上述非敏感元素,使得实例化后的组合测试数据中t+m元组覆盖率得到提高,其中m可为1至k-t中的任意自然数;4)将上述提高t+m元组覆盖率的组合测试数据作为优化后的组合测试数据;5)使用上述优化后的组合测试数据对该待测软件进行测试。
【技术特征摘要】
一种多参量软件测试方法,其步骤包括1)生成强度为t的组合测试数据TS,所述组合测试数据由N个测试用例组成,按照先后次序,其对应下标分别为0至N 1,其中每一测试用例为一个k元组(p0,p1,…,pk 1),强度t为自然数;k为自然数,表示待测软件的参量个数;pi代表各参量,分别取值于Vi;强度为t指该组合测试数据覆盖任意不超过t个参量的所有可能的取值组合;2)识别所述组合测试数据的非敏感元素,所述非敏感元素指测试数据中取值的改变不影响所述组合测试数据强度t的那些元素;3)实例化上述非敏感元素,使得实例化后的组合测试数据中t+m元组覆盖率得到提高,其中m可为1至k t中的任意自然数;4)将上述提高t+m元组覆盖率的组合测试数据作为优化后的组合测试数据;5)使用上述优化后的组合测试数据对该待测软件进行测试。2.如权利要求1所述的方法,其特征在于,所述步骤2)中识别出所述组合测试数据的 非敏感元素,采用的方法如下对测试数据中的N个测试用例,按照一定的次序依次遍历进行遍历,遍历过程中,如果 当前测试用例中,包含某一参量的某个取值的全部t元组都已被覆盖过,则在所有后续测 试用例中,如遇到该参量取同样的值,就标记为非敏感元素。3.如权利要求2所述的多参量软件测试方法,其特征在于,所述步骤2)包括以下步骤2-1)对组合测试数据中的每一个参量Pi,分别计算所有包含该参量的t元组,并保存 在相应的记录集合Ri中;2-2)为TS中的N个测试用例,生成一个候选的排序序列集S ;2-3)根据S中的每种排序序列Sk对全部测试用例进行排序,得到TSk,按照先后顺序, 遍历TSk中的全部测试用例,查找非敏感元素;2-4)将TS替换为上述查找到非敏感元素最多的TSk。4.如权利要求3所述的多参量软件测试方法,其特征在于,重复进行步骤2-2)至 2-4),直到不能查找到新的非敏感元素为止。5.如权利要求3所述的多参量软件测试方法,其特征在于,所述步骤2-2)排序序列集 S生成具体采用以下步骤2-2-1)计算组合测试数据TS中任意两个测试用例之间的汉明距离,存入表M中;2-2-2)随机选择某个测试用例,将其下标作为一个只含一个下标的序列,放入下标序 列集S ;2-2-3)遍历S中的每一个序列Iisti,设Iisti的最后一个下标为X,查找表M,找到下 标值不包含在Iisti中,且和下标为χ的测试用例汉明距离最大的b个测试用例的下标,分 别作为Iisti的末端,放入S’,其中b为参数,其取值为正整数;2-2-4)将S替换为S’ ;2-2-5)如果步骤2-2-3)至2-2-5)已执行c次,转2_2_6),其中c为参数,其取值为正 整数,取5和N之间的较小值;...
【专利技术属性】
技术研发人员:陈柏强,张健,
申请(专利权)人:中国科学院软件研究所,
类型:发明
国别省市:11[中国|北京]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。