欢迎来到天天文库
浏览记录
ID:40004494
大小:218.00 KB
页数:32页
时间:2019-07-17
《[计算机]白盒测试法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、7.6白盒测试技术测试方案包括具体的测试目的,应该输入的测试数据和预期的结果。通常又把测试数据和预期的输出结果称为测试用例。设计测试方案的基本目标:确定一组最可能发现某个错误或某类错误的测试数据。白盒测试法按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按预定要求正确工作。本节讲述在用白盒方法测试软件时设计测试数据的典型技术。学习内容逻辑覆盖的概念逻辑覆盖的分类语句覆盖判定覆盖条件覆盖判定/条件覆盖条件组合覆盖点覆盖边覆盖路径覆盖覆盖法之间的关系教学目标理论环节学习理解白盒测试方法的基本概念学习理解白盒
2、测试的覆盖理论实践环节通过案例运用学习掌握覆盖问题的解决方法逻辑覆盖的概念逻辑覆盖,是以程序内在逻辑结构为基础的测试,是对一系列测试过程的总称,这组测试过程逐渐进行越来越完整的通路测试。7.6.1逻辑覆盖逻辑覆盖法的分类根据覆盖目标的不同,逻辑覆盖又可分为:语句覆盖判定覆盖条件覆盖判定/条件覆盖组合覆盖路径覆盖voidDoWork(intx,inty,intz){intk=0,j=0;if((x>3)&&(z<10)){k=x*y-1;j=sqrt(k);}//语句块1if((x==4)
3、
4、(y>5)){j=x*y
5、+10;}//语句块2j=j%3;//语句块3}程序举例程序流程图X>3&&z<10执行语句块1执行语句块2X==4
6、
7、y>5执行语句块3FFTTabdcef语句覆盖语句覆盖:选择足够多的测试用例,使得程序中的每个可执行语句至少执行一次。语句覆盖要实现DoWork函数的语句覆盖,只需设计一个测试用例就可以覆盖程序中的所有可执行语句。测试用例输入为:{x=4、y=5、z=5}程序执行的路径是:abdfX>3&&z<10执行语句块1执行语句块2X==4
8、
9、y>5执行语句块3FFTTabdcef
10、
11、结果如何呢?(X>3&
12、&z<10)∩(X==4
13、
14、y>5)语句覆盖分析:语句覆盖可以保证程序中的每个语句都得到执行,但发现不了判定中逻辑运算的错误,即它并不是一种充分的检验方法。例如在第一个判定((x>3)&&(z<10))中把“&&”错误地写成了“
15、
16、”,这时仍使用该测试用例,则程序仍会按照流程图上的路径abdf执行。可以说语句覆盖是最弱的逻辑覆盖准则。判定覆盖判定覆盖:通过执行足够多的测试用例,使得程序中的每个判定至少都获得一次“真”值和“假”值,也就是使程序中的每个取“真”分支和取“假”分支至少均经历一次,也称为“分支覆盖”。判定
17、覆盖要实现DoWork函数的判定覆盖,需要设计两个测试用例。测试用例的输入为:{x=4、y=5、z=5};{x=2、y=5、z=5}程序执行的路径分别是:abdf;acefX>3&&z<10执行语句块1执行语句块2X==4
18、
19、y>5执行语句块3FFTTabdcefy<5结果如何呢?判定覆盖分析:上述两个测试用例不仅满足了判定覆盖,同时还做到语句覆盖。从这点看似乎判定覆盖比语句覆盖更强一些,但仍然无法确定判定内部条件的错误。例如把第二个判定中的条件y>5错误写为y<5,使用上述测试用例,照样能按原路径执行而不影响结果
20、。因此,需要有更强的逻辑覆盖准则去检验判定内的条件。条件覆盖条件覆盖:设计足够多的测试用例,使得程序中每个判定包含的每个条件的可能取值(真/假)都至少满足一次。条件覆盖在实际程序代码中,一个判定中通常都包含若干条件。条件覆盖的目的是设计若干测试用例,在执行被测程序后,要使每个判定中每个条件的可能值至少满足一次。对DoWork函数的各个判定的各种条件取值加以标记。对于第一个判定((x>3)&&(z<10)):条件x>3取真值记为T1,取假值记为-T1条件z<10取真值记为T2,取假值记为-T2对于第二个判定((x==
21、4)
22、
23、(y>5)):条件x==4取真值记为T3,取假值记为-T3条件y>5取真值记为T4,取假值记为-T4条件覆盖(续)根据条件覆盖的基本思想,要使上述4个条件可能产生的8种情况至少满足一次,设计测试用例如下:测试用例执行路径覆盖条件覆盖分支x=4、y=6、z=5abdfT1、T2、T3、T4bdx=2、y=5、z=15acef-T1、-T2、-T3、-T4ce分析:上面这组测试用例不但覆盖了4个条件的全部8种情况,而且将两个判定的4个分支b、c、d、e也同时覆盖了,即同时达到了条件覆盖和判定覆盖。条件覆盖(续)
24、说明:虽然前面的一组测试用例同时达到了条件覆盖和判定覆盖,但是,并不是说满足条件覆盖就一定能满足判定覆盖。如果设计了下表中的这组测试用例,则虽然满足了条件覆盖,但只是覆盖了程序中第一个判定的取假分支c和第二个判定的取真分支d,不满足判定覆盖的要求。测试用例执行路径覆盖条件覆盖分支x=2、y=6、z=5acdf-T1、T2、-T3、T4cdx=4、y=5、z=
此文档下载收益归作者所有