您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 黑盒测试及白盒测试的区别
Page1测试方法类-白盒测试白盒测试这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。Page2测试方法类-白盒测试白盒测试主要是想对程序模块进行如下检查:对程序模块的所有独立的执行路径至少测试一遍。对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。在循环的边界和运行的界限内执行循环体。测试内部数据结构的有效性。。。Page33白盒法白盒测试测试用例一般采用逻辑覆盖法进行设计。语句覆盖判定覆盖条件覆盖判定条件覆盖条件组合覆盖弱强软件测试方法路径覆盖Page44白盒法常用的覆盖标准语句覆盖:选择足够的测试用例,使得程序中每个语句至少都能被执行一次。判定覆盖:执行足够的测试用例,使得程序中每个判定至少都获得一次“真”值和“假”值。条件覆盖:执行足够的测试用例,使得所有判定中的每个条件至少都获得一次“真”值和“假”值。Page55白盒法常用的覆盖标准判定/条件覆盖:执行足够的测试用例,使得判定中每个条件取到各种可能的值,并使每个判定取到各种可能的结果。条件组合覆盖:执行足够的例子,使得每个判定中条件的各种可能组合都至少出现一次。路径覆盖:路径覆盖是相当强的逻辑覆盖,它保证程序中每条可能的路径都至少执行一次。Page66白盒法步骤:选择逻辑覆盖标准。按照覆盖标准列出所有情况。选择确定测试用例。验证分析运行结果与预期结果。逻辑结构Page77白盒法举例Procedure(VARA,B,X:REAL);BEGINIF(A1)AND(B=0)THENX:=X/A;IF(A=2)OR(X1)THENX:=X+1END;A1ANDB=0X:=X/AA=2ORX1X:=X+1YNYNPage881、语句覆盖使得程序中每个语句至少都能被执行一次。满足语句覆盖的情况:执行路径:sacbed选择用例:[(2,0,4),(2,0,3)]用例格式:[输入(A,B,X),输出(A,B,X)]A1ANDB=0X:=X/AA=2ORX1X:=X+1abcdeYNYN开始结束sPage992、判定覆盖使得程序中每个判定至少为TRUE和FALSE各一次。覆盖情况:应执行路径sabd∧sacbed或:sacbd∧sabed选择用例(其一):⑴[(2,0,4),(2,0,3)]sacbed[(1,1,1),(1,1,1)]sabd⑵[(2,1,1),(2,1,2)]sabed[(3,0,3),(3,1,1)]sacbdA1ANDB=0X:=X/AA=2ORX1X:=X+1abcdeYNYN开始结束sPage10103、条件覆盖使判定中的每个条件至少都获得一次“真”值和“假”值。应满足以下覆盖情况:判定一:A1A≤1B=0B≠0判定二:A=2A≠2X1X≤1选择用例:[(2,0,4),(2,0,3)][(1,1,1),(1,1,1)]2A≤1A≠20B=04X11A1A=21B≠01X≤1A1ANDB=0X:=X/AA=2ORX1X:=X+1abcdeYNYN开始结束sPage11114、判定/条件覆盖同时满足判定覆盖和条件覆盖。应满足以下覆盖情况:条件:A1,A≤1,B=0,B≠0A=2,A≠2,X1,X≤1应执行路径sacbed∧sabd选择用例:[(2,0,4),(2,0,3)](sacbed)[(1,1,1),(1,1,1)](sabd)A1ANDB=0X:=X/AA=2ORX1X:=X+1abcdeYNYN开始结束sPage125、条件组合覆盖使得每个判定中条件的各种“真”“假”可能组合都至少出现一次编译系统下的执行情况:部分路径未被执行。满足以下覆盖情况:①A1,B=0②A1,B≠0③A≤1,B=0④A≤1,B≠0⑤A=2,X1⑥A=2,X≤1⑦A≠2,X1⑧A≠2,X≤1选择用例:[(2,0,4),(2,0,3)][(2,1,1),(2,1,2)][(1,0,3),(1,0,4)][(1,1,1),(1,1,1)]A1X:=X/AA=2X:=X+1abcdeB=0X1YNYNYNYNc结束①⑤②⑥③⑦④⑧Page13136、路径覆盖法测试用例通过路径ABX111sabd112sabed301sacbd204sacbedA1ANDB=0X:=X/AA=2ORX1X:=X+1abcdeYNYN开始结束s每条可能的路径都至少执行一次Page1414例题:三角形问题输入三整数,判断是否构成三角形,如构成三角形,则输出三条边的值,否则输出“不能构成三角形”。要求:2、设计路径覆盖的测试用例。Page1515解法1:覆盖路径:1.①—②—④2.①—③—④开始输入A,B,C(A+BC)&(A+CB)&(B+CA)输出ABC不能构成三角形结束FT①②③④路径测试用例(A,B,C)结果1A=3,B=4,C=5A=3,B=4,C=52A=5,B=8,C=2不能构成三角形Page1616解法2:覆盖路径:测试用例1.①—②—③—④—⑥(3,4,5)2.①—⑤—⑥(2,2,5)3.①—②—⑤—⑥(2,5,2)4.①—②—③—⑤—⑥(5,2,2)开始输入A,B,CA+BCA+CBB+CA输出ABC不能构成三角形结束FFFTTT①②③④⑤⑥Page1717解法2:路径覆盖法测试用例设计路径测试用例(A,B,C)结果1A=3,B=4,C=5A=3,B=4,C=52A=2,B=2,C=5不能构成三角形3A=2,B=5,C=2不能构成三角形4A=5,B=2,C=2不能构成三角形Page1818基本路径测试1、画出流程图1910112457836Page1919基本路径测试2、简化流程图12,387694,51011Page2020基本路径测试3、计算环路复杂度环路复杂度(Cyclomaticcomplexity):代码逻辑复杂度的度量。用V(G)表示。通过V(G)确定基本路径数。V(G)=区域数量(由节点、连线包围的区域,包括图形外部区域)V(G)=连线数量-节点数量+2V(G)=简单可预测节点数量+1Page21V(G)=412,378694,51011Region1Region2Region3Region4基本路径测试Page2222基本路径测试3、确定基本路径集合基本路径集合:由独立路径构成的集合由基本路劲集合导出的测试用例,保证被测程序的每条可执行语句至少被执行一次。基本集合不一定唯一Page2323Path1:1-2-3-6-7-9-10-1-11示例:基本路径测试用例Path2:1-2-3-6-8-9-10-1-11Path3:1-2-3-4-5-10-1-11Path4:1-111910112458736还有其它路径集合吗?Page2424基本路径测试:练习AECDBPath1:A-C-EPath2:A-B-C-EPath3:A-B-C-D-EV(G)=?还有其它路径集合吗?3Page25测试方法类-黑盒测试黑盒测试这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。主要应用于快速开发环境。Page26测试方法类-黑盒测试黑盒测试主要是为了发现以下几类错误:是否有不正确或遗漏的功能?在接口上,输入是否能正确的接受?能否输出正确的结果?是否有数据结构错误或外部信息(例如数据文件)访问错误?性能上是否能够满足要求?是否有初始化或终止性错误?Page2727等价分类法边值分析法错误推测法因果图法黑盒法不考虑程序的内部结构与特性,只根据程序功能或程序的外部特性设计测试用例。判定表法Page281、等价分类法基本思想根据程序的I/O特性,将程序的定义域划分为有限个等价区段—“等价类”,从等价类中选择出的用例,具有“代表性”。等价类分为:有效等价类—对于程序的规格说明是合理的、有意义的输入数据构成的集合。无效等价类—对于程序的规格说明,是不合理的,是没有意义的输入数据构成的集合。Page29等价分类法步骤划分等价类应按照输入条件(如输入值的范围,值的个数,值的集合,输入条件必须如何)划分为有效等价类和无效等价类。例如:每个学生可选修1-3门课程可以划分一个有效等价类:选修1-3门课程。可以划分两个无效等价类:未选修课,选修课超过3门。标识符的第一个字符必须是字母。可以划分为一个有效等价类:第一个字符是字母。可以划分一个无效等价类:第一个字符不是字母。选择测试用例A、为每个等价类编号;B、使一个测试用例尽可能覆盖多个有效等价类C、特别要注意的是:一个测试用例只能覆盖一个无效等价类。Page30等价类划分法——以输入域划分等价类NextDate函数包含三个变量:month(月份)、day(日期)和year(年),函数的输出为输入日期后一天的日期。例如,输入为2007年9月9日,则函数的输出为2007年9月10日。要求输入变量month、day和year均为整数值,并且满足下列条件:(1)1≤month≤12(2)1≤day≤31(3)1912≤year≤2050此函数的主要特点是输入变量之间的逻辑关系比较复杂。复杂性的来源有两个:一个是输入域的复杂性,另一个是指闰年的规则。例如变量year和变量month取不同的值,对应的变量day会有不同的取值范围,day值的范围可能是1~30或1~31,也可能是1~28或1~29。Page31等价类划分法——以输入域划分等价类(1)简单等价类划分测试NextDate函数有效等价类简单等价类划分测试NextDate函数可以划分以下三种有效等价类:M1={month:1≤month≤12}D1={day:1≤day≤31}Y1={year:1912≤year≤2050}无效等价类若条件(1)~(3)中任何一个条件无效,那么NextDate函数都会产生一个输出,指明相应的变量超出取值范围,例如month的值不在1~12范围当中。Page32等价类划分法——以输入域划分等价类显然还存在着大量的year、month、day的无效组合,NextDate函数将这些组合统一输出为:“无效输入日期”。其无效等价类为:M2={month:month1}M3={month:month12}D2={day:day1}D3={day:day31}Y2={year:year1912}Y3={year:year2050}Page33等价类划分法——以输入域划分等价类一般等价类测试用例如表所示。NextDate函数的一般等价类测试用例测试用例输入期望输出monthdayyearTestCase19920072007年9月10日Page34等价类划分法——以输入域划分等价类健壮等价类测试中包含弱健壮等价类测试和强健壮等价类测试弱健壮等价类测试弱健壮等价类测试中的有效测试用例使用每个有效等价类中的一个值。弱健壮等价类测试中的无效测试用例则只包含一个无效值,其他都是有效值,即含有单缺陷假设。如表所示。测试用例输入期望输出monthdayyearTestCase19920072007年9月10日TestCase2092007month不在1~12中TestCase31392007month不在1~12中TestCase4902007day不在1~31中TestCase59322007day不在1~31中TestCase6991911year不在1912~2050中TestCase7992051year不在1912~2050中Page35等价类划分法——以输入域划分等价类
本文标题:黑盒测试及白盒测试的区别
链接地址:https://www.777doc.com/doc-5343645 .html