基于规格说明的若干逻辑覆盖测试准则.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《基于规格说明的若干逻辑覆盖测试准则.pdf》由会员分享,可在线阅读,更多相关《基于规格说明的若干逻辑覆盖测试准则.pdf(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 ISSN 1000-9825,CODEN RUXUEW E-mail: Journal of Software,Vol.21,No.7,July 2010,pp.15361549 http:/ doi:10.3724/SP.J.1001.2010.03615 Tel/Fax:+86-10-62562563 by Institute of Software,the Chinese Academy of Sciences.All rights reserved.基于规格说明的若干逻辑覆盖测试准则 钱忠胜1,2+,缪淮扣1 1(上海大学 计算机工程与科学学院,上海 200072)2(江西财经大学
2、信息管理学院,江西 南昌 330013)Specification-Based Logic Coverage Testing Criteria QIAN Zhong-Sheng1,2+,MIAO Huai-Kou1 1(School of Computer Engineering and Science,Shanghai University,Shanghai 200072,China)2(School of Information Technology,Jiangxi University of Finance and Economics,Nanchang 330013,China)+Cor
3、responding author:E-mail:,http:/,http:/ Qian ZS,Miao HK.Specification-Based logic coverage testing criteria.Journal of Software,2010,21(7):15361549.http:/ Abstract:The specification-based testing can be used to test software functions without knowing program code.Decisions are the main form of the p
4、re-and post-conditions in formal specifications.This work analyzes logic coverage testing criteria for specification-based testing.It proposes and analyzes in detail masking logic coverage testing criteria,to solve the problems that the existent determinant logic coverage testing criteria can not so
5、lve.A feasible test case generation algorithm based on the masking logic coverage testing criteria is presented.The test cases satisfying the masking logic coverage testing criteria can detect those errors caused by the masking property of conditions.It also analyzes the constraints among conditions
6、,how to decompose and compose a complicated decision,and the relationship among decisions.These can respectively clarify the coupling problem among conditions,the multiple occurrences of a condition in a decision,and the position problem of decisions in a program.Additionally,test criteria including
7、 full true decision coverage,full false decision coverage,all sub-decisions coverage,unique condition true coverage and unique condition false coverage are proposed.The test sets satisfying these criteria can detect respectively different types of errors.Finally,the subsumption relation graph among
8、these testing criteria is presented and different applicable scenarios for different testing criteria are suggested.Key words:test case;testing criterion;decision;condition;specification;subsumption relation Supported by the National Natural Science Foundation of China under Grant No.60673115(国家自然科学
9、基金);the National High-Tech Research and Development Plan of China under Grant No.2007AA01Z144(国家高技术研究发展计划(863);the National Basic Research Program of China under Grant Nos.2007CB310800,2002CB312001(国家重点基础研究发展计划(973);the Research Program of Shanghai Education Committee of China under Grant No.07ZZ06(
10、上海市教委科研项目);the Shanghai Leading Academic Discipline Project of China under Grant No.J50103(上海市重点学科建设项目);the Science and Technology Plan Project of the Education Department of Jiangxi Province of China under Grant No.GJJ10120(江西省教育厅科技计划项目);the School Foundation of Jiangxi University of Finace and Eco
11、nomics of China under Grant No.04722015(江西财经大学校级课题)Received 2008-04-03;Revised 2008-11-27,2009-01-14;Accepted 2009-03-31 钱忠胜 等:基于规格说明的若干逻辑覆盖测试准则 1537 摘 要:基于规格说明的测试可以在不需要了解软件程序代码的情况下对软件进行功能测试.判定是形式规格说明中用于描述前、后置条件的主要形式.分析了基于规格说明的逻辑覆盖测试准则,针对已有的决定性逻辑覆盖测试准则的不足,提出了掩盖性逻辑覆盖测试准则,并对其进行了详细分析.提出了掩盖性逻辑覆盖测试准则的一个可
12、行的测试生成算法.根据该准则生成的测试用例能够发现条件的掩盖性带来的错误.然后,从判定的结构入手,分析了条件之间的约束关系、复杂判定的分解与合成、判定之间的关系.这些分别能够阐明逻辑覆盖中条件间的耦合性问题、同一个条件在判定中的多次出现问题以及判定在程序中的位置问题.继而提出了全真判定覆盖、全假判定覆盖、完全子判定覆盖、唯一条件真覆盖以及唯一条件假覆盖等测试准则.满足这些测试准则的测试用例集能检测出不同类型的错误.最后,给出了这些测试准则之间的包含关系图,并建议了不同测试准则适用的应用场景.关键词:测试用例;测试准则;判定;条件;规格说明;包含关系 中图法分类号:TP311 文献标识码:A 测
13、试覆盖是根据测试准则来评估的,而测试准则的提出又与测试需求相关联1.若测试需求描述的是要覆盖“什么”,则测试规格说明阐述了它们“如何”被覆盖,而测试准则是一条或一组规则,这些规则把测试需求施加于测试用例集.也就是说,测试准则用一种完整而清晰的方式描述了测试需求.因此在软件测试中,测试准则的选择非常重要.测试准则一般分为基于程序的(白盒的、结构化的)和基于规格说明的(黑盒的、功能的).基于程序的测试准则考虑程序的内部结构.基于规格说明的测试准则用于从系统的形式规格说明出发产生测试用例,不需要程序的代码.形式化规格说明精确地描述了“做什么”而不是“怎么做”.因此,测试者可以从中获得重要的信息而无需
14、从繁琐以及不重要的细节中提取.基于规格说明的测试与传统的基于代码的测试相比,它提供了一种更为严格的方法,并且简化了回归测试.此外,基于规格说明的测试还可以从测试数据中得出预期值,以及测试的开发和程序的设计与运行可以同步,这更有利于打破软件工程中的“先编码后测试”的做法,并且有利于对软件的生命周期中所有阶段并行地进行测试活动.为适应不同的需求,研究人员已经提出了各种各样的测试准则111.其中,逻辑覆盖测试准则主要用于基于形式规格说明的测试中12,通过分析规格说明中判定(decision)和条件(condition)的真值关系来产生覆盖某些判定和条件的真值取值的测试用例.文中涉及到的常见的逻辑覆盖
15、测试准则的定义(定义 2定义 4 以及定义 6定义 9)来自于文献1和文献12,但是为了适应需要,有些地方作了相应的改动.在此基础上,本文提出了相应的逻辑覆盖测试准则(定义 11定义 18).这里讨论的判定(谓词表达式)仅使用到常用的 3 种逻辑联结词:(与),(或),(非),当然还有许多其他逻辑联结词(如异或、蕴含等),但包含其他逻辑联结词的判定可以通过等价公式转换成仅含有这 3 种逻辑联结词的判定.而且,两个语法结构不一样的等价判定的主析取范式或主合取范式一定是一样的.所以,我们一般只考虑这 3 种逻辑联结词.本文第 1 节界定判定的结构,给出测试用例的形式化定义,并讨论基本的逻辑覆盖测试
16、准则.第 2 节给出决定性逻辑覆盖测试准则,这种准则测试条件的取值改变能够引起判定值的改变,举例说明这种准则不能适用的情况.第 3 节针对决定性逻辑覆盖测试准则的缺陷,提出掩盖性逻辑覆盖测试准则,并对其进行详细而深入的分析.提出掩盖性逻辑覆盖测试准则的一种可行的测试生成算法.还利用配对表分析条件的掩盖性,即条件取值的改变对判定的值没有影响.第 4 节从分析判定的结构入手,研究了条件之间的约束关系、复杂判定的分解与合成、判定之间的关系.并提出全真判定覆盖、全假判定覆盖、完全子判定覆盖、唯一条件真覆盖以及唯一条件假覆盖等测试准则.满足这些测试准则的测试用例集能够检测出不同类型的错误.第 5 节与相
17、关工作进行比较,给出本文提出的测试准则与部分已有的测试准则之间的包含关系图,并建议不同测试准则适用的应用场景.第6 节总结全文,并给出下一步的研究工作.1538 Journal of Software 软件学报 Vol.21,No.7,July 2010 1 基本逻辑覆盖测试准则 判定是形式规格说明中用于描述前、后置条件的主要形式,也是程序中分支控制条件的主要表达形式,因而可作为基于规格说明的测试用例研究的主要对象和定义测试充分性的基础12.判定的主要元素是谓词,谓词中可以有常量、变量、函数以及它们的组合等项.关系表达式也是一个谓词.谓词通过逻辑联结词相连,构成判 定.如,XYxbZ(记为K)
18、就是一个判定.不包含任何逻辑联结词的原子谓词或其否定称为条件.判定K 中有 5 个条件:X,Y,xb 和 Z.注意,x 和 y 都不是条件,而 xy 才是(因为考察的是逻辑联结词,而非关系算子).判定可用抽象语法树2表示.在软件的形式需求规格说明中,操作的前、后置条件是一组判定的集合,用 表示.C 是 P 中所有判定中的条件所构成的集合.对 P 中的每个判定 pP,Cp是判定 p 中所有条件构成的集合,即 Cp=c|cC且 c 出现在 p 中.所以,C=pp PC12.此外,TS表示测试用例集,用t,t1,t2,表示测试用例.本文把测试用例简化为判定中每个条件的真值取值组合.下面给出测试用例的
19、形式化定义.定义 1(测试用例,test case).一个测试用例是一个三元组t=(Pre,In,Out),它是可导致程序一次执行的输入集,其中,Pre表示输入的前置条件,In表示输入值,Out表示期望输出.一个测试用例集是否检测了某些判定和条件的真值决定了该测试用例集的充分性.利用逻辑覆盖测试准则推导具体测试数据过程的关键是找出满足测试准则的条件真值取值的组合.对于一个测试用例,若其输入的前置条件Pre永真,则它的输入值In总会被“执行”.在下面的讨论中,若不作特别说明,默认前置条件Pre为永真并忽略前置条件.另外,若不致引起混淆,也不给出测试用例的期望输出Out.这样一个测试用例只用其输入
20、值In来表示.因此,我们将每个条件真值取值的组合看成一个测试用例.例如,在判定AB中,A=trueB=true 就是一个测试用例.对应于实际的规格说明,若用A表示“用户的 id 号是否正确”,B表示“用户的口令是否正确”,则该测试用例表示用户的 id 号和口令都输入正确,即用户是合法时的情况.定义 2(判定覆盖,decision coverage,简称 DC).一组条件的真值组合构成的集合TS满足判定覆盖准则,当且仅当对每个判定pP,TS至少包含两个关于p中条件的真值组合,其中一个使得p为 true,另一个使得p为false.当被测判定是永真(或永假)时,条件的取值任意,因而实际上不存在测试用
21、例的选择问题.如果在这种退化了的判定情况下仍然有效,则认为满足判定覆盖,虽然条件的真值组合不能使该判定的取值为 false(或 true).判定覆盖不能决定其中某个条件的取值.为了揭露判定中一个条件的错误,判定中的其他条件必须满足一定的 约束.定义 3(条件覆盖,condition coverage,简称 CC).一组条件的真值组合构成的集合TS满足条件覆盖准则,当且仅当对每个判定pP,Cp中的条件cCp,TS至少包含两个关于p中条件的真值组合,其中一个使得c为true,另一个使得c为 false.条件覆盖并不一定包含(subsume)(关于测试准则之间的“包含”关系这一概念将在本文的第 5
22、节给出)判定覆盖,判定覆盖也不一定包含条件覆盖.它们都是很弱的测试准则,对于安全性软件的测试根本不够.即使所有的判定和条件的真值取值都已检查过,也无法保证所有可能的条件真值的组合都能够被检查.为了检查判定中所有条件的真值组合,于是出现了组合覆盖准则.定义 4(组合覆盖,combinational coverage,简称 CoC).一组条件的真值组合构成的集合TS满足组合覆盖准则,当且仅当对每个判定pP,TS包含Cp中所有可能的条件真值的组合.假设被测判定中不同条件的个数为n,则组合覆盖测试用例集中的测试用例共有 2n个.显然,组合覆盖准则包含判定覆盖准则和条件覆盖准则.2 决定性逻辑覆盖测试准
23、则 组合覆盖测试准则过于严格,它只能用在条件个数不多的情况下.为了克服组合覆盖准则的缺陷,可以从条 钱忠胜 等:基于规格说明的若干逻辑覆盖测试准则 1539 件的真值对判定真值的作用出发来构造有效的测试准则.术语“决定”用来表达条件的真值和判定真值之间的关系.定义 5(决定,determination).对于判定p中的一个条件ci,如果p中其余的条件cjp,ji的真值使得改变ci的真值会引起p的真值发生变化,那么称ci决定判定p,其中,ci为主要条件(major condition),cj为次要条件(minor condition).利用条件和判定之间的决定关系(我们称为逻辑覆盖的决定性),可
24、以定义如下活动条件覆盖准则:定义6(活动条件覆盖,active condition coverage,简称ACC).一组条件的真值组合构成的集合TS满足活动条件覆盖准则,当且仅当对每个判定pP和每个主要条件ciCp,TS中至少含有两个Cp中条件真值组合,使得ci一次为 true,一次为 false.活动条件覆盖意味着判定值的改变随着某一条件值的改变而改变.该准则要求测试各种条件值的组合(但不是所有的,这与组合覆盖不同),测试用例的个数仍然可以保持线性增长.对于具有n个相互独立条件的判定,测试用例集中最多包含(n+1)个不同的测试用例就可以满足活动条件覆盖准则1.在应用该准则时存在一些问题,即在
25、选取满足活动条件覆盖准则的测试用例集,当主要条件的值为true 和 false 时,次要条件是否应该取相同的值?对于这一问题的不同回答产生了 3 个不同的逻辑覆盖测试准则(定义 7定义 9).定义 7(一般活动条件覆盖,general active condition coverage,简称 GACC).一组条件的真值组合构成的集合TS满足一般活动条件覆盖准则,当且仅当对每个判定pP和每个主要条件ciCp,TS中至少含有两个Cp中条件的真值组合,使得ci一次为 true,一次为 false,并且对这两个条件真值组合中次要条件的真值取值不作要求.由于一般活动条件覆盖准则并不一定包含判定覆盖准则,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 规格 说明 若干 逻辑 覆盖 测试 准则
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内