软件工程 第7章:实现3 测试方法_第1页
软件工程 第7章:实现3 测试方法_第2页
软件工程 第7章:实现3 测试方法_第3页
软件工程 第7章:实现3 测试方法_第4页
软件工程 第7章:实现3 测试方法_第5页
已阅读5页,还剩142页未读 继续免费阅读

下载本文档

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

文档简介

1、7.6 白盒测试技术白盒测试技术 白盒测试白盒测试 的原则的原则 对程序模块的所有对程序模块的所有独立独立 执行路径执行路径至少测试一次至少测试一次 对所有的对所有的逻辑判定逻辑判定取取 “真真”与取与取“假假”的两种情况的两种情况 都至少测试一次。都至少测试一次。 在在循环的边界和可操作范围循环的边界和可操作范围 内内执行循环体执行循环体 测试测试内部数据结构内部数据结构的有效性,的有效性, 完成边界条件的测试。完成边界条件的测试。 循 环 小 于 等 于 20 次 迪杰斯特拉定律:迪杰斯特拉定律:穷尽测试永远不可能穷尽测试永远不可能 执行路径:执行路径:5 520 20个 个 如果如果1m

2、s1ms完成一完成一 个测试个测试 近似为近似为101014 14个 个 需需31703170年年 1. 语句覆盖语句覆盖 2. 判定覆盖判定覆盖 3. 条件覆盖条件覆盖 4. 判定判定-条件覆盖条件覆盖 5. 条件组合覆盖条件组合覆盖 6. 路径覆盖路径覆盖 设计测试用例,使被测程序中的设计测试用例,使被测程序中的每个每个 可执行语句至少被执行一次可执行语句至少被执行一次 int a, b; double c; if ( a 0 if ( a 1 | c 1 ) c= c+1; c = b+c; c=b+c c=c/a c=c+1 T T F F a 0 N为:为:a 1 double c

3、if ( a 0 if ( a 1 | c 1 ) c= c+1; c = b+c; c=b+c c=c/a c=c+1 T T F F a 0 if ( a 1 | c 1 ) c= c+1; c = b+c; c=b+c c=c/a c=c+1 T T F F a 0 double c if ( a 0 if ( a 1 | c 1 ) c= c+1; c = b+c; c=b+c c=c/a c=c+1 T T F F a 0 double c 1 if ( a 0 3 4 if ( a 1 | c 0 double c; if ( a 0 if ( a 1 | c 1 ) c= c+1

4、; c = b+c; c=b+c c=c/a c=c+1 T T F F a 0 u需要有深入的系统知识,才能合理的划分等价类。需要有深入的系统知识,才能合理的划分等价类。 对考试系统“成绩查询模块”子模块 输入准考证号查询成绩 行政专业准考证号码为:110001111215 法律专业准考证号码为:210001212006 财经专业准考证号码为:310001314015 例例2:准考证号码:准考证号码 例例:准考证号码的等价类划分准考证号码的等价类划分 有效等价类有效等价类: (1) 110001 111215 (2) 210001 212006 (3) 310001 314015 无效等价类

5、无效等价类: (4) - 110000 (5) 111216 210000 (6) 212007 310000 (7) 314016 + 等价类的划分规则等价类的划分规则 规则规则有效等价类个数有效等价类个数无效等价类个数无效等价类个数 范围范围 12 定值或布尔值定值或布尔值 11 数组数组 n1 规则规则 1x 四四 边界值分析法边界值分析法 Boundary Value Analysis,BVA 理论提出:理论提出: 长期的测试工作经验表明,大量的错误是发生在长期的测试工作经验表明,大量的错误是发生在 输入输入或或输出输出范围的范围的边界边界上,而不是发生在输入输出范上,而不是发生在输入

6、输出范 围的内部。因此针对各种边界情况设计测试用例,可围的内部。因此针对各种边界情况设计测试用例,可 以查出更多的错误。以查出更多的错误。 定义:定义: 边界值分析法就是对边界值分析法就是对输入或输出的边界值输入或输出的边界值进行测进行测 试的一种黑盒测试方法。试的一种黑盒测试方法。 通常边界值分析法是通常边界值分析法是作为对等价类划分法的补充作为对等价类划分法的补充, 这种情况下,其测试用例来自等价类的边界。这种情况下,其测试用例来自等价类的边界。 1. 常见的边界值常见的边界值 1)对)对16-bit 的整数而言的整数而言 32767 和和 -32768 是边界是边界 2)屏幕上光标在最左

7、上、最右下位置)屏幕上光标在最左上、最右下位置 3)报表的第一行和最后一行)报表的第一行和最后一行 4)数组元素的第一个和最后一个)数组元素的第一个和最后一个 5)循环的第)循环的第 0 次、第次、第 1 次和倒数第次和倒数第 2 次、最后一次次、最后一次 边界值分析的基础思想是在输入变量的取值区间边界值分析的基础思想是在输入变量的取值区间 内取内取最小值、略高于最小值、正常值、略低于最大值最小值、略高于最小值、正常值、略低于最大值 和最大值和最大值5个值。个值。 边界值分析边界值分析健壮性健壮性边界值分析边界值分析 2. 用例设计思想用例设计思想 例例1:一个输入年份的输入框,一个输入年份的

8、输入框,其其限制条件是限制条件是1900 年至年至2012年,那么年,那么选择测试用例为:选择测试用例为: 1900,1901,1950,2011,2012 1899,1900,1901,1950,2011,2012,2013 例例2:银行银行取取款机,款机,取款取款金额是金额是100 10000,提款,提款 的颗粒度为的颗粒度为100元,那么元,那么选择测试用例为:选择测试用例为: 0,100,200,5000,9900,10000,10100 3. 选择测试用例技巧选择测试用例技巧 (1)输入条件:范围输入条件:范围 刚刚达到刚刚达到这个范围的边界的值,以及这个范围的边界的值,以及刚刚超越

9、刚刚超越这这 个范围边界的值个范围边界的值 例如:如果程序的规格说明中规定:例如:如果程序的规格说明中规定:“重量在重量在10公斤公斤 至至50公斤范围内的邮件,其邮费计算公式为公斤范围内的邮件,其邮费计算公式为”。 测试用例测试用例:9.99,10 ,10.01,25,49.99, 50,50.01 (2)输入条件:值的个数输入条件:值的个数 最大个数最大个数,最小个数,比最小个数少一,比最大个最小个数,比最小个数少一,比最大个 数多一数多一 例如:一个输入文件应包括例如:一个输入文件应包括1255个记录个记录 则测试用:则测试用:0,1,122,255,256等。等。 (3)(1)、()、

10、(2)应用于输出条件)应用于输出条件 例如:某程序的规格说明要求计算出例如:某程序的规格说明要求计算出“每月保险金扣每月保险金扣 除额为除额为0至至1165.25元元” 测试用例选取应能使计算结果为测试用例选取应能使计算结果为0.00和和1165.25、以及、以及 -0.01及及1165.26等。等。 例如:检索系统程序,要求每次例如:检索系统程序,要求每次“最少显示最少显示1条、最多条、最多 显示显示4条检索信息条检索信息 测试用例应能使输出结果为:测试用例应能使输出结果为:1,4,还应包括,还应包括0,5等。等。 (4)输入、输出域是)输入、输出域是有序集合有序集合 集合的第一个元素和最后

11、一个元素集合的第一个元素和最后一个元素 (5)内部数据结构内部数据结构 内部数据结构的边界上的值内部数据结构的边界上的值 (6)分析规格说明,找出其它可能的边界条件)分析规格说明,找出其它可能的边界条件 (7)正常值正常值接近取值范围中间值接近取值范围中间值即可即可 例:例:“输入输入3个值,输出三角形的类型个值,输出三角形的类型”测试用例:测试用例: 测试用例测试用例a ab bc c预期输出预期输出 Test1Test1 Test2Test2 Test3Test3 Test4Test4 Test5Test5 6060 6060 6060 5050 5050 6060 6060 6060 5

12、050 5050 1 1 2 2 6060 9999 100100 等腰三角形等腰三角形 等腰三角形等腰三角形 等边三角形等边三角形 等腰三角形等腰三角形 非三角形非三角形 Test6Test6 Test7Test7 Test8Test8 Test9Test9 6060 6060 5050 5050 1 1 2 2 9999 100100 6060 6060 5050 5050 等腰三角形等腰三角形 等腰三角形等腰三角形 等腰三角形等腰三角形 非三角形非三角形 Test10Test10 Test11Test11 Test12Test12 Test13Test13 1 1 2 2 9999 10

13、0100 6060 6060 5050 5050 6060 6060 5050 5050 等腰三角形等腰三角形 等腰三角形等腰三角形 等腰三角形等腰三角形 非三角形非三角形 边界值是特殊的等价类边界值是特殊的等价类 边界值分析不仅考虑输入,还要考虑输出。边界值分析不仅考虑输入,还要考虑输出。 4. 边界值与等价类的区别边界值与等价类的区别 5. 边界值的弱点边界值的弱点 “单缺陷单缺陷”假设假设:即由于缺陷导致的程序失效极少是即由于缺陷导致的程序失效极少是 由两个(或多个)缺陷的同时作用引起。由两个(或多个)缺陷的同时作用引起。 程序程序输入是输入是多个独立的变量,多个独立的变量,比较比较适合

14、边界值适合边界值 变量之间相互影响时,变量之间相互影响时,效果不好效果不好(人的身高体重人的身高体重) 边界值分析与等价类划分效果与测试人员的经验密边界值分析与等价类划分效果与测试人员的经验密 切相关。切相关。 组合分析法组合分析法 考虑思想:错误的主要来源来自于各种因素的组合,考虑思想:错误的主要来源来自于各种因素的组合, 而非一个因素。而非一个因素。 优点:实现成本低、维护成本低、容易自动化、错优点:实现成本低、维护成本低、容易自动化、错 误发现效率高、测试方式灵活。误发现效率高、测试方式灵活。 作业:作业: 1.阅读伪代码,完成下列任务阅读伪代码,完成下列任务 (1)画出程序流程图、盒图

15、。)画出程序流程图、盒图。 (2)按照不同的覆盖准则,确定)按照不同的覆盖准则,确定 测试用例的数量,并设计测试用测试用例的数量,并设计测试用 例。例。 语句覆盖语句覆盖 判定覆盖判定覆盖 条件覆盖条件覆盖 路径覆盖路径覆盖 (3)画出控制流图,用基本路径)画出控制流图,用基本路径 法设计测试用例。法设计测试用例。 If X8 and Y5 then if X16 or Y10 then Z=3 endif Else If X0 or Y0 then Z=2 Else Z=1 endif endif 2.用边界值法设计以下函数的测试用例。用边界值法设计以下函数的测试用例。 (1)y=ABS(x

16、);(;(2)y=sin(x) 3.用等价类划分法测试成绩输入文本框设计测试用例。用等价类划分法测试成绩输入文本框设计测试用例。 (1)百分制;()百分制;(2)五级制。)五级制。 4.需要测试学号输入文本框,学号结构为需要测试学号输入文本框,学号结构为8位数字字位数字字 符组成,前两位是年代后两位,符组成,前两位是年代后两位,3、4两位是专业编号两位是专业编号 (1-50),),5、6位为班级编号(位为班级编号(1-20),),7、8位为位为50 以内的流水号。以内的流水号。 作业:作业:1.为以下流程图所示的程序段设计一组测试用例,为以下流程图所示的程序段设计一组测试用例, 要求分别满足语

17、句覆盖、判定覆盖、条件覆盖和路径覆盖要求分别满足语句覆盖、判定覆盖、条件覆盖和路径覆盖 设计测试用例。设计测试用例。 2.用基本路径法设计测试用例。用基本路径法设计测试用例。 X8 5.如果不属于1-3条, 落点处无棋子,则移动棋子; 6.如果不属于1-3条, 落点处为对方棋子(非老将),则移动棋子 并除去对方棋子; 7.如果不属于1-3条,且落点处为对方老将,则移动棋子,并提示 战胜对方,游戏结束。 二、二、 根据分析明确原因和结果根据分析明确原因和结果 原因: C1. 落点在棋盘上; C2.落点与起点构成日字; C3.落点方向的邻近交叉点 无棋子; C4.落点处为自己方棋子; C5.落点处

18、无棋子; C6.落点处为对方棋子(非 老将); C7.落点处为对方老将。 结果: E1.不移动棋子 E2.移动棋子 E3.移动棋子,并除去对方棋子 E4.移动棋子,并提示战胜对 方,结束游戏 中间状态:11 落点合理且无半马腿,可以前进 添加中间节点添加中间节点11,目的是作为导出结果的进一步原因目的是作为导出结果的进一步原因,简化因简化因 果图导出的判定表一果图导出的判定表一 c1 c3 c4 c5 E1 c7 c6 c2 E2 E3 E4 11 V V V V V E 规则规则 选项选项 12345678910111213141516 C1 C2 C3 C4 1 1 1 1 1 1 1 0

19、 1 1 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 1 0 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 0 0 0 110100000000000000 E11011111111111111 规则 选项 12345678910111213141516 11 C5 C6 C7 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 1 0 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0

20、 1 0 0 0 0 1 0 0 0 0 E2 E3 E4 不 可 能 不 可 能 不 可 能 1 0 0 不 可 能 0 1 0 0 0 1 不 可 能 不 可 能 不 可 能 不 可 能 不 可 能 七、七、正交正交试验试验法法 正交试验法在各个领域都有广泛的应用,是一种高是一种高 效、快速、经济的效、快速、经济的试验试验设计方法设计方法。 在应用系统测试中,如果对系统采用组合测试,工 作量非常大,这就需要从大量的数据中选出适量的从大量的数据中选出适量的 具有代表性的测试用例具有代表性的测试用例,正交试验法可以解决用例用例 选择选择这一问题。 如图是个人信息查询系统中的一个窗口。要测试的

21、控件有三个:姓名、身份证号码、手机号码,而每 个因素的状态有两个:填与不填,请用正交试验法 选择测试用例。 (1)确定影响因子 表中的因素数3,即至少有3个因素数; 行数最少为3(2-1)+1=4。 (2)选择正交表 从正交表中查找,结果为L4(23)。 (3)变量映射 列号列号列号列号 123姓名 身份证 号 手机号 码 行行 号号 10001填填填 20112填不填不填 31013不填填不填 41104不填不填填 0-填填 1-不填不填 (4)测试用例测试用例 填写姓名、填写身份证号、填写手机号 填写姓名、不填身份证号、不填手机号 不填姓名、填写身份证号、不填手机号 不填姓名、不填身份证号、填写手机号 根据其他测试方法增补以下测试用例作为补充: 不填姓名、不填身份证号、不填手机号 从测试用例可以看出,如果按每个因素两个水平数来考虑的话, 需要8个测试用例,而通过正交实验法只需要5个,减少了测试 用例个数。 用最小的测试用例集获得最大的测试覆盖率用最小的测试用例集获得最大的测试覆盖率 八八 功能图法功能图法 使用功能图形式化的方式形式化的方式表示程序的功能,并机械 地生成功能图的测试用例。 功能图模型功能图模型 状

温馨提示

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

评论

0/150

提交评论