资源描述:
《第06课 白盒测试1.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、软件测试龚宇辉电信学院第三章白盒测试3.1控制流测试3.2数据流测试3.3程序插装3.4程序变异测试3.5白盒测试工具3.6软件缺陷分析白盒测试白盒测试是按照程序内部的结构测试程序,检验程序中的每条通路是否都能按预定要求正确工作,而不顾它的功能。白盒测试要求对被测程序的结构特性做到一定程度的覆盖,并以软件中的某类成分是否都已经得到测试为准则来判断软件测试的充分性,也称为基于覆盖的测试技术。结构测试逻辑驱动测试白盒测试白盒测试要求测试人员对程序的结构和处理过程有完全的了解,一般由开发工程师负责实施。白盒测试主要对程序模块进行以下检查:对程序模块的所有独立的执行路径至少要测试一次。对所有的逻辑
2、判定,取真或假的两种情况至少要测试一次。对程序进行边界检查(常见的如数据越界检验)。检验内部数据结构的有效性。白盒测试控制流测试一个软件程序的结构可以用控制流图来描述,程序的运行过程也可以用控制流图中的路径来刻画。为了突出程序的内部结构,可以对程序流程图进行简化,生成由节点和控制边组成的控制流图。节点边区域白盒测试白盒测试——控制流测试使用的方法:语句覆盖:每条语句至少执行一次判定覆盖:每个判定的每个分支至少执行一次条件覆盖:每个判定的每个条件应取到各种可能的值判定-条件覆盖:同时满足判定覆盖和条件覆盖条件组合覆盖:每个判定中各条件的每一种组合至少出现一次路径覆盖:使程序中每一条可能的路径
3、至少执行一次基本路径测试:在程序控制流图的基础上,通过分析控制构造的环路复杂性导出基本可执行路径集合,从而设计测试用例的方法。发现错误能力由弱到强控制流测试方法举例使用控制流测试方法测试以下程序段:说明:程序段中每行开头的数字(1~8)是对每条语句的编号。(1)画出程序的流程图(用题中给出的语句编号表示)。(2)分别以语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。voidDo(intX,intA,intB){if((A>0)&&(B<2))X=X+A;else{if((A==0)
4、
5、(X<1)
6、)A=A+1;}}控制流测试方法举例A>0andB<2A=0orX<1X=X+AA=A+1EndBegin12568TTFFT1T2T3T4TATB控制流测试方法举例分析:1.要满足语句覆盖,执行路径通过:1→2→8和1→5→6→8即可。可设计测试用例:1:A=1B=1X=0(路径1→2→8)2:A=0B=3X=0(路径1→5→6→8)2.要满足判定覆盖,两个判定表达式的取真和取假分支都要走到,执行路径为:1→2→8、1→5→8和1→5→6→8,可设计测试用例:1:A=1B=1X=0(路径1→2→8覆盖条件:TA)2:A=0B=3X=0(路径1→5→6→8覆盖条件:~TATB)3:A=-1
7、B=3X=2(路径1→5→8覆盖条件:~TA~TB)程序段控制流图中只有以上三条路径,可见这组测试用例也满足路径覆盖。控制流测试方法举例3.要满足条件覆盖,每个判定中的每个条件的可能取值都要取到,即:T1T2T3T4~T1~T2~T3~T4。观察前面设计测试用例:1:A=1B=1X=0(路径1→2→8覆盖条件:T1T2)2:A=0B=3X=0(路径1→5→6→8覆盖条件:~T1~T2T3T4)3:A=-1B=3X=2(路径1→5→8覆盖条件:~T1~T2~T3~T4)上述测试用例覆盖了4个条件产生的8种情况。可见,这组测试用例同时覆盖了两个判定的取真分支和取假分支以及4个条件产生的8种情况
8、,所以它们满足判定-条件覆盖的标准。控制流测试方法举例4.要满足条件组合覆盖,每个判定中各条件的每一种组合至少要出现一次,在两个判定中有8种可能的组合:①A>0,B<2:T1,T2②A>0,B≥2:T1,~T2③A≤0,B<2:~T1,T2④A≤0,B≥2:~T1,~T2⑤A=0,X<1:T3,T4⑥A=0,X≥1:T3,~T4⑦A≠0,X<1:~T3,T4⑧A≠0,X≥1:~T3,~T4沿用前面设计测试用例:1:A=1B=1X=0(路径1→2→8覆盖条件:T1T2①)2:A=0B=3X=0(路径1→5→6→8覆盖条件:~T1~T2T3T4④⑤)3:A=-1B=3X=2(路径1→5→8覆盖
9、条件:~T1~T2~T3~T4④⑧)再设计测试用例:4:A=1B=3X=0(路径1→5→6→8覆盖条件:T1~T2~T3T4②⑦)5:A=0B=1X=2(路径1→5→6→8覆盖条件:T1~T2T3~T4③⑥)以上5个测试用例满足条件组合标准。控制流测试方法举例设计的测试用例测试用例执行路径覆盖条件覆盖组合号语句覆盖A=1B=1X=0A=0B=3X=01→2→81→5→6→8判定覆盖条件覆盖判定-条件覆盖路径覆盖A=1B=