黑盒测试与白盒测试的区别_第1页
黑盒测试与白盒测试的区别_第2页
黑盒测试与白盒测试的区别_第3页
黑盒测试与白盒测试的区别_第4页
黑盒测试与白盒测试的区别_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Page 1测试方法类白盒测试测试方法类白盒测试n 白盒测试白盒测试n这种方法是把测试对象看做一个打开的盒子,它允许测这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试致。因此白盒测试又称为结构测试或逻辑驱动测试 。Page 2测试方法类白盒测试测试方法类白盒测试n 白

2、盒测试主要是想对程序模块进行如下检查:白盒测试主要是想对程序模块进行如下检查:n对程序模块的所有独立的执行路径至少测试一遍。对程序模块的所有独立的执行路径至少测试一遍。n对所有的逻辑判定,取对所有的逻辑判定,取“真真”与取与取“假假”的两种情况都的两种情况都能至少测一遍。能至少测一遍。n在循环的边界和运行的界限内执行循环体。在循环的边界和运行的界限内执行循环体。n测试内部数据结构的有效性测试内部数据结构的有效性n。Page 33白盒法白盒法n 白盒测试测试用例一般采用逻辑覆盖法进行设计。白盒测试测试用例一般采用逻辑覆盖法进行设计。语语句句覆覆盖盖判判定定覆覆盖盖条条件件覆覆盖盖判判定定条条件件

3、覆覆盖盖条条件件组组合合覆覆盖盖弱弱强强软件测试方法软件测试方法路路径径覆覆盖盖Page 44白盒法白盒法n 常用的覆盖标准常用的覆盖标准n语句覆盖:语句覆盖:n选择足够的测试用例,使得程序中每个语句至少都能被执行一选择足够的测试用例,使得程序中每个语句至少都能被执行一次。次。n判定覆盖:判定覆盖: n执行足够的测试用例,使得程序中每个判定至少都获得一次执行足够的测试用例,使得程序中每个判定至少都获得一次“真真”值和值和“假假”值。值。n条件覆盖:条件覆盖:n执行足够的测试用例,使得所有判定中的每个条件至少都获得执行足够的测试用例,使得所有判定中的每个条件至少都获得一次一次“真真”值和值和“假

4、假”值。值。Page 55白盒法白盒法n 常用的覆盖标准常用的覆盖标准n判定判定/条件覆盖:条件覆盖:n执行足够的测试用例,使得判定中每个条件取到各种可能的值,执行足够的测试用例,使得判定中每个条件取到各种可能的值,并使每个判定取到各种可能的结果。并使每个判定取到各种可能的结果。n条件组合覆盖:条件组合覆盖:n执行足够的例子,使得每个判定中条件的各种可能组合都至少执行足够的例子,使得每个判定中条件的各种可能组合都至少出现一次。出现一次。n路径覆盖:路径覆盖:n路径覆盖是相当强的逻辑覆盖,它保证程序中每条可能的路径路径覆盖是相当强的逻辑覆盖,它保证程序中每条可能的路径都至少执行一次。都至少执行一

5、次。Page 66白盒法步骤:白盒法步骤:n 选择逻辑覆盖标准。选择逻辑覆盖标准。n 按照覆盖标准列出所有情况。按照覆盖标准列出所有情况。n 选择确定测试用例。选择确定测试用例。n 验证分析运行结果与预期结果。验证分析运行结果与预期结果。逻辑结构逻辑结构Page 77白盒法举例白盒法举例Procedure (VAR A,B,X:REAL);); BEGIN IF(A1) AND (B=0) THEN X:=X/A ; IF (A=2) OR (X1) THEN X:=X+1 END;A1ANDB=0X:=X/AA=2OR X1X:=X+1YNYNPage 881、语句覆盖、语句覆盖满足语句覆盖

6、的情况:满足语句覆盖的情况:执行路径:执行路径:sacbedsacbed选择用例:选择用例:(2,0,4),(2,0,3)(2,0,4),(2,0,3)用例格式:用例格式: 输入输入(A,B,X)(A,B,X),输出,输出(A,B,X)(A,B,X)A1ANDB=0X:=X/AA=2OR X1X:=X+1abcdeYNYN开始开始结束结束sPage 992、判定覆盖、判定覆盖覆盖情况:应执行路径覆盖情况:应执行路径sabd sacbed 或:或: sacbd sabed选择用例选择用例(其一):其一): (2,0,4),(2,0,3) (2,0,4),(2,0,3) sacbed (1,1,1

7、),(1,1,1) (1,1,1),(1,1,1) sabd (2,1,1),(2,1,2) (2,1,1),(2,1,2) sabed (3,0,3),(3,1,1) (3,0,3),(3,1,1) sacbdA1ANDB=0X:=X/AA=2OR X1X:=X+1abcdeYNYN开始开始结束结束sPage 10103、条件覆盖、条件覆盖应满足以下覆盖情况:应满足以下覆盖情况:判定一判定一: A1 A1 B=0 B0判定二判定二: A=2 A2 X1 X1选择用例:选择用例: (2,0,4),(2,0,3) (2,0,4),(2,0,3) (1,1,1),(1,1,1) (1,1,1),(

8、1,1,1) 2 2A1A20 0B=04 4X11 1A1A=21 1B01 1X1A1ANDB=0X:=X/AA=2OR X1X:=X+1abcdeYNYN开始开始结束结束sPage 11114、判定、判定/条件覆盖条件覆盖应满足以下覆盖情况:应满足以下覆盖情况: 条件条件: A1, A1, B=0, B0 A=2, A2, X1, X1 应执行路径应执行路径sacbed sabd选择用例:选择用例: (2,0,4),(2,0,3) (2,0,4),(2,0,3)(sacbed ) ) (1,1,1),(1,1,1) ( (1,1,1),(1,1,1) (sabd) )A1ANDB=0X:

9、=X/AA=2OR X1X:=X+1abcdeYNYN开始开始结束结束sPage 125、条件组合覆盖、条件组合覆盖编译系统下的执行情况:编译系统下的执行情况:部分路径未被执行。部分路径未被执行。满足以下覆盖情况:满足以下覆盖情况: A1, B =0 A1, B0 A1, B =0 A1, B0 A=2, X1 A=2, X1 A2, X1 A2, X1选择用例:选择用例:(2,0,4),(2,0,3)(2,0,4),(2,0,3)(2,1,1),(2,1,2) (2,1,1),(2,1,2) (1,0,3),(1,0,4)(1,0,3),(1,0,4)(1,1,1),(1,1,1)(1,1,

10、1),(1,1,1)A1X:=X/AA=2X:=X+1abcdeB=0X1YNYNYNYNc结束结束 Page 13136、路径覆盖法、路径覆盖法测试用例测试用例通过路径通过路径ABX111sabd112sabed301sacbd204sacbedA1ANDB=0X:=X/AA=2OR X1X:=X+1abcdeYNYN开始开始结束结束sPage 1414例题:三角形问题例题:三角形问题n 输入三整数,判断是否构成三角形,如构成三角形,输入三整数,判断是否构成三角形,如构成三角形,则输出三条边的值,否则输出则输出三条边的值,否则输出“不能构成三角形不能构成三角形”。n 要求:要求:n2、设计路

11、径覆盖的测试用例。、设计路径覆盖的测试用例。 Page 1515解法解法1:n 覆盖路径:覆盖路径:n 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不能构成三角形Page 1616解法解法2:n 覆盖路径:覆盖路径: 测试用例测试用例n 1 (3,4,5)n 2 (2,2,5)n 3 (2,5,2)n 4 (5,2,2)开始开始输入输入A,B,CA+BCA+CBB+CA输出输出ABC不能构成三角形不能构成三角形结束

12、结束FFFTTTPage 1717解法解法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不能构成三角形Page 1818基本路径测试基本路径测试n 1、画出流程图、画出流程图1910112457836Page 1919基本路径测试基本路径测试 n 2、简化流程图、简化流程图12,387694,51011Page 2020基本路径测试基本路径测试 n 3、计算环路复杂度、计算环路复杂度n环路复杂度(环路复杂度(Cycl

13、omatic complexity):代码逻辑复杂代码逻辑复杂度的度的 度量。用度量。用V(G) 表示。通过表示。通过V(G) 确定基本路径数。确定基本路径数。V(G) = 区域数量区域数量(由节点、连线包围的区域,包括图形外部区域由节点、连线包围的区域,包括图形外部区域)V(G) = 连线数量连线数量 - 节点数量节点数量 + 2V(G) = 简单可预测节点数量简单可预测节点数量 + 1Page 21V(G)=412,378694,51011Region 1Region 2Region 3Region 4Page 2222n 3、确定基本路径集合、确定基本路径集合n基本路径集合基本路径集合:

14、 由独立路径构成的集合由独立路径构成的集合n由基本路劲集合导出的由基本路劲集合导出的测试用例测试用例,保证被测程序的每条,保证被测程序的每条可执行语句至少被执行一次。可执行语句至少被执行一次。n基本集合基本集合不一定唯一不一定唯一Page 2323Path1: 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还有其它路径集合吗?还有其它路径集合吗?Page 2424基本路径测试:练习基本路径测试:练习 Path1:

15、 A-C-E Path2: A-B-C-E Path3: A-B-C-D-EV(G)= ?还有其它路径集合吗?还有其它路径集合吗? 3Page 25测试方法类黑盒测试测试方法类黑盒测试n 黑盒测试黑盒测试n这种方法是把测试对象看做一个黑盒子,测试人员完全这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。主要明。因此黑盒测试又叫功能测试或数据驱动测试。主要应用于快速

16、开发环境。应用于快速开发环境。Page 26测试方法类黑盒测试测试方法类黑盒测试n 黑盒测试主要是为了发现以下几类错误:黑盒测试主要是为了发现以下几类错误:n是否有不正确或遗漏的功能?是否有不正确或遗漏的功能?n在接口上,输入是否能正确的接受?能否输出正确的结在接口上,输入是否能正确的接受?能否输出正确的结果?果?n是否有数据结构错误或外部信息(例如数据文件)访问是否有数据结构错误或外部信息(例如数据文件)访问错误?错误?n性能上是否能够满足要求?性能上是否能够满足要求?n是否有初始化或终止性错误?是否有初始化或终止性错误?Page 2727等等价价分分类类法法边边值值分分析析法法错错误误推推

17、测测法法因因果果图图法法黑盒法黑盒法n 不考虑程序的内部结构与特性,只根据程序功能或不考虑程序的内部结构与特性,只根据程序功能或程序的外部特性设计测试用例。程序的外部特性设计测试用例。判判定定表表法法Page 281、等价分类法、等价分类法n 基本思想基本思想n根据程序的根据程序的I/O特性,将程序的定义域划分为有限个等价特性,将程序的定义域划分为有限个等价区段区段 “等价类等价类”,从等价类中选择出的用例,具有,从等价类中选择出的用例,具有“代表性代表性”。n 等价类分为:等价类分为:n有效等价类有效等价类 对于程序的规格说明是合理的、有意义的对于程序的规格说明是合理的、有意义的输入数据构成

18、的集合。输入数据构成的集合。n无效等价类无效等价类 对于程序的规格说明,是不合理的,是没对于程序的规格说明,是不合理的,是没有意义的输入数据构成的集合。有意义的输入数据构成的集合。Page 29 等价分类法步骤等价分类法步骤n 划分等价类划分等价类n 应按照输入条件(如输入值的范围,值的个数,值的集合,输入条应按照输入条件(如输入值的范围,值的个数,值的集合,输入条件必须如何)划分为有效等价类和无效等价类。件必须如何)划分为有效等价类和无效等价类。n 例如:每个学生可选修例如:每个学生可选修1-3门课程门课程n 可以划分一个有效等价类:选修可以划分一个有效等价类:选修1-3门课程。门课程。n

19、可以划分两个无效等价类:未选修课,选修课超过可以划分两个无效等价类:未选修课,选修课超过3门。门。n 标识符的第一个字符必须是字母。标识符的第一个字符必须是字母。n 可以划分为一个有效等价类:第一个字符是字母。可以划分为一个有效等价类:第一个字符是字母。n 可以划分一个无效等价类:第一个字符不是字母。可以划分一个无效等价类:第一个字符不是字母。n 选择测试用例选择测试用例n A、为每个等价类编号;、为每个等价类编号;n B、使一个测试用例尽可能覆盖多个有效等价类、使一个测试用例尽可能覆盖多个有效等价类n C、特别要注意的是:一个测试用例只能覆盖一个无效等价类。、特别要注意的是:一个测试用例只能

20、覆盖一个无效等价类。Page 30等价类划分法等价类划分法以输入域划分等价类以输入域划分等价类n NextDate 函数包含三个变量:函数包含三个变量:month(月份)、(月份)、day(日期)(日期) 和和 year(年),函数的输出为输入日期后一天的日期。(年),函数的输出为输入日期后一天的日期。 例如,输入为例如,输入为 2007年年9月月 9日,则函数的输出为日,则函数的输出为 2007年年9月月10日日 。要求输入变量。要求输入变量 month 、 day 和和 year 均为整数值,并且满足下列条件:均为整数值,并且满足下列条件:n (1)1month12n (2)1day31n

21、 (3)1912year2050 n 此函数的主要特点是输入变量之间的逻辑关系比较复杂。复杂性的来源此函数的主要特点是输入变量之间的逻辑关系比较复杂。复杂性的来源有两个:一个是输入域的复杂性,另一个是指闰年的规则。例如变量有两个:一个是输入域的复杂性,另一个是指闰年的规则。例如变量year和变量和变量month取不同的值,对应的变量取不同的值,对应的变量day会有不同的取值范围,会有不同的取值范围,day值的范围可能是值的范围可能是130或或131,也可能是,也可能是128或或129。Page 31等价类划分法等价类划分法以输入域划分等价类以输入域划分等价类n (1)简单等价类划分测试)简单等

22、价类划分测试NextDate函数函数n 有效等价类有效等价类n 简单等价类划分测试简单等价类划分测试NextDate函数可以划分以下三种有效等价类:函数可以划分以下三种有效等价类:n M1month:1month12n D1day:1day31n Y1year:1912year2050n 无效等价类无效等价类n 若条件若条件 (1)()(3)中任何一个条件无效,那么)中任何一个条件无效,那么NextDate 函数都函数都会产生一个输出,指明相应的变量超出取值范围,例如会产生一个输出,指明相应的变量超出取值范围,例如month 的值的值不在不在 112 范围当中。范围当中。Page 32等价类划

23、分法等价类划分法以输入域划分等价类以输入域划分等价类n 显然还存在着大量的显然还存在着大量的 year 、 month 、 day 的无的无效组合,效组合, NextDate 函数将这些组合统一输出为:函数将这些组合统一输出为:“无效输入日期无效输入日期”。其无效等价类为:。其无效等价类为:nM2month:month12nD2day:day31nY2year:year2050Page 33等价类划分法等价类划分法以输入域划分等价类以输入域划分等价类一般等价类测试用例如表所示。NextDate函数的一般等价类测试用例测试测试用例用例输入输入期望输出期望输出monthdayyearTest Ca

24、se 19920072007年年9月月10日日Page 34等价类划分法等价类划分法以输入域划分等价类以输入域划分等价类n 健壮等价类测试中包含弱健壮等价类测试和强健壮等价类测试健壮等价类测试中包含弱健壮等价类测试和强健壮等价类测试n 弱健壮等价类测试弱健壮等价类测试n 弱健壮等价类测试中的有效测试用例使用每个有效等价类中的一个值。弱弱健壮等价类测试中的有效测试用例使用每个有效等价类中的一个值。弱健壮等价类测试中的无效测试用例则只包含一个无效值,其他都是有效值,健壮等价类测试中的无效测试用例则只包含一个无效值,其他都是有效值,即含有单缺陷假设。如表所示。即含有单缺陷假设。如表所示。测试用例测试

25、用例输入输入期望输出期望输出monthdayyearTest Case 19920072007年年9月月10日日Test Case 2092007 month不在不在112中中Test Case 31392007month不在不在112中中Test Case 4902007day不在不在131中中Test Case 59322007day不在不在131中中Test Case 6991911 year不在不在19122050中中Test Case 7992051year不在不在19122050中中Page 35等价类划分法等价类划分法以输入域划分等价类以输入域划分等价类n 强健壮等价类测试强健壮

26、等价类测试n 强健壮等价类测试考虑了更多的无效值情况。强健壮等价类测试中的无效强健壮等价类测试考虑了更多的无效值情况。强健壮等价类测试中的无效测试用例可以包含多个无效值,即含有多个缺陷假设。因为测试用例可以包含多个无效值,即含有多个缺陷假设。因为NextDate函数函数有三个变量,所以对应的强健壮等价类测试用例可以包含一个无效值,两有三个变量,所以对应的强健壮等价类测试用例可以包含一个无效值,两个无效值或三个无效值。个无效值或三个无效值。测试用例测试用例输入输入期望输出期望输出monthdayyearTest Case 1-192007 month不在不在112中中Test Case 29-1

27、2007day不在不在131中中Test Case 3991900 year不在不在19122050中中Test Case 4-1-12007变量变量month、day无效无效变量变量year有效有效Test Case 5-191900变量变量month、year无效无效变量变量day有效有效Test Case 69-11900变量变量day、year无效无效变量变量month有效有效Test Case 7-1-11900变量变量month、day、year无效无效Page 36n(2)改进等价类划分测试)改进等价类划分测试NextDate函数函数n在简单等价类划分测试在简单等价类划分测试Ne

28、xtDate函数中,没有考虑函数中,没有考虑2月份的月份的天数问题,也没有考虑闰年的问题,月份只包含了天数问题,也没有考虑闰年的问题,月份只包含了30天和天和31天两种情况。在改进等价类划分测试天两种情况。在改进等价类划分测试NextDate函数中,函数中,要考虑要考虑2月份天数的问题。月份天数的问题。n关于每个月份的天数问题,可以详细划分为以下等价类:关于每个月份的天数问题,可以详细划分为以下等价类:n M1month:month有有30天天 n M2month:month有有31天天, 除去除去12月月n M3month:month是是2月月n M4month:month是是12月月n D

29、1day:1day27n D2day:day28n D3day:day29n D4day:day30n D5day:day31n Y1year:year是闰年是闰年n Y2year:year不是闰年不是闰年等价类划分法等价类划分法以输入域划分等价类以输入域划分等价类Page 37等价类划分法等价类划分法以输入域划分等价类以输入域划分等价类n 改进等价类划分测试改进等价类划分测试NextDate函数表所示。函数表所示。测试用例测试用例输入输入期望输出期望输出monthdayyearTest Case 163020072007年年7月月1日日Test Case 283120072007年年9月月1

30、日日Test Case 322720072007年年2月月28日日Test Case 422820072007年年3月月1日日Test Case 522920042004年年3月月1日(日(2004是闰年)是闰年)Test Case 6123120072008年年1月月1日日Test Case 79312007不可能的输入日期不可能的输入日期Test Case 82292007 不可能的输入日期不可能的输入日期Test Case 92302007 不可能的输入日期不可能的输入日期Test Case 101592007变量变量month无效无效Test Case 119352007变量变量day

31、无效无效Test Case 12992100变量变量year无效无效返回返回Page 38382、边值分析法、边值分析法n 基本思想基本思想n 选择等价类的边缘值作为测试用例,让每个等价类的边界都得到测选择等价类的边缘值作为测试用例,让每个等价类的边界都得到测试,选择测试用例既考虑输入亦考虑输出。试,选择测试用例既考虑输入亦考虑输出。n 分析步骤:分析步骤: nA、先划分等价类。、先划分等价类。nB、选择测试用例,测试等价类边界。、选择测试用例,测试等价类边界。n 边界选择原则:边界选择原则: nA、按照输入值范围的边界。、按照输入值范围的边界。nB、按照输入、按照输入/输出值个数的边界。输出

32、值个数的边界。nC、输出值域的边界。、输出值域的边界。nD、输入、输入/输出有序集的边界输出有序集的边界Page 39边界值分析法边界值分析法n边界值分析法设计测试用例边界值分析法设计测试用例n在在NextDate函数中,规定了变量函数中,规定了变量month、day、year的相应取值范围。在上面等价的相应取值范围。在上面等价类法设计测试用例中已经提过,具体如下:类法设计测试用例中已经提过,具体如下:nM1month:1month12nD1day:1day31nY1year:1912year2050Page 40边界值分析法边界值分析法测试用例测试用例输入输入期望输出期望输出monthday

33、yearTest Case 1-1152000month不在不在112中中Test Case 20152000month不在不在112中中Test Case 311520002000年年1月月16日日Test Case 421520002000年年2月月16日日Test Case 5111520002000年年11月月16日日Test Case 6121520002000年年12月月16日日Test Case 713152000month不在不在112中中Test Case 86-12000day不在不在131中中Test Case 9602000day不在不在131中中Test Case 1

34、06120002000年年6月月2日日Test Case 116220002000年年6月月3日日Test Case 1263020002000年年7月月1日日Test Case 136312000不可能的输入日期不可能的输入日期Test Case 146322000day不在不在131中中Test Case 156151911year不在不在19122050中中Test Case 1661519121912年年6月月16日日Test Case 1761519131913年年6月月16日日Test Case 1861520492049年年6月月16日日Test Case 19615205020

35、50年年6月月16日日Test Case 206152051year不在不在19122050中中返回返回Page 4141决策表决策表n 在一些数据处理问题当中,某些操作的实施依赖于在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。合值,分别执行不同的操作。n 决策表(也称判定表)决策表(也称判定表),最适合描述在多逻辑条件最适合描述在多逻辑条件取值的组合所构成的复杂情况下,分别执行哪些不取值的组合所构成的复杂情况下,分别执行哪些不同的动作。同的动作。Page 4242规则规则选项选项1

36、2354678问问题题觉得疲倦?觉得疲倦?YYYNYNNN感兴趣吗?感兴趣吗?YYNYNYNN糊涂吗?糊涂吗?YNYYNNYN建建议议重读重读继续继续跳下一章跳下一章休息休息Page 4343决策表的组成决策表的组成n 决策表通常由以下决策表通常由以下4部分组成:部分组成:n 条件桩条件桩左上部分,列出各种可能的单个条件左上部分,列出各种可能的单个条件n 动作桩动作桩左下部分,列出可能采取的单个动作左下部分,列出可能采取的单个动作n 条件项条件项右上部分,针对各种条件给出多组条件取值的组合右上部分,针对各种条件给出多组条件取值的组合n 动作项动作项右下部分,指出在条件项的各组取值情况下应采取的

37、动作右下部分,指出在条件项的各组取值情况下应采取的动作 条件桩条件桩动作桩动作桩 条件项条件项 动作项动作项规规则则将任何一个条件组合的特定取值及相应要执行的动作称为一条规则。在决策表中贯穿条件项和动作项的一列就是一条规则。Page 4444决策表分类决策表分类n 有限条目决策表有限条目决策表n所有条件都是二元条件的决策表。所有条件都是二元条件的决策表。n 扩展条目决策表扩展条目决策表n若条件可以有多个值,则对应的决策表称扩展条目决策若条件可以有多个值,则对应的决策表称扩展条目决策表。表。Page 4545决策表的生成决策表的生成n 构造决策表的构造决策表的5个步骤:个步骤:n (1) 确定规

38、则的个数。确定规则的个数。n 有有n个条件的决策表有个条件的决策表有2n个规则(每个条件取真、假值)。个规则(每个条件取真、假值)。n (2) 列出所有的条件桩和动作桩。列出所有的条件桩和动作桩。n (3) 填入条件项。填入条件项。n (4) 填入动作项,得到初始决策表。填入动作项,得到初始决策表。n (5) 简化决策表,合并相似规则。简化决策表,合并相似规则。n 若表中有两条以上规则具有相同的动作,并且在条件项之若表中有两条以上规则具有相同的动作,并且在条件项之间存在极为相似的关系,便可以合并。间存在极为相似的关系,便可以合并。n 合并后的条件项用符号合并后的条件项用符号“-”表示,说明执行

39、的动作与该条件表示,说明执行的动作与该条件的取值无关,称为无关条件。的取值无关,称为无关条件。Page 46决策表法决策表法n NextDate函数的决策表测试用例设计:函数的决策表测试用例设计:n NextDate函数中包含了定义域各个变量之间的依赖问题。等价类划函数中包含了定义域各个变量之间的依赖问题。等价类划分法和边界值分析法只能分法和边界值分析法只能“独立地独立地”选取各个输入值,不能体现出选取各个输入值,不能体现出多个变量的依赖关系。决策表法则是根据变量间的逻辑依赖关系设多个变量的依赖关系。决策表法则是根据变量间的逻辑依赖关系设计测试输入数据,排除不可能的数据组合,很好地解决了定义域

40、的计测试输入数据,排除不可能的数据组合,很好地解决了定义域的依赖问题。依赖问题。n NextDate函数求解给定某个日期的下一个日期的可能操作(动作桩)函数求解给定某个日期的下一个日期的可能操作(动作桩)如下:如下:n 变量变量day加加1操作;操作;n 变量变量day复位操作;复位操作;n 变量变量month加加1操作;操作;n 变量变量month复位操作;复位操作;n 变量变量year加加1操作。操作。Page 47决策表法决策表法n 根据上述动作桩发现根据上述动作桩发现NextDate函数的求解关键是日和月的问题,通常函数的求解关键是日和月的问题,通常可以在下面等价类(条件桩)的基础上建

41、立决策表:可以在下面等价类(条件桩)的基础上建立决策表:n M1month:month有有30天天 n M2month:month有有31天,天,12月除外月除外n M3month:month是是12月月n M4month:month是是2月月n D1day:1day27n D2day:day28n D3day:day29n D4day:day30n D5day:day31n Y1year:year是闰年是闰年n Y2year:year不是闰年不是闰年Page 48决策表法决策表法n 输入变量间存在大量逻辑关系的输入变量间存在大量逻辑关系的NextDate函数决函数决策表如后表所示。策表如后表所示。n 决策表共有决策表共有22条规则:条规则:n第第15条规则解决有条规则解决有30天的月份;天的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论