第九章软件测试用例设计_第1页
第九章软件测试用例设计_第2页
第九章软件测试用例设计_第3页
第九章软件测试用例设计_第4页
第九章软件测试用例设计_第5页
已阅读5页,还剩38页未读, 继续免费阅读

下载本文档

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

文档简介

1、2021-7-1 1 本章本章内内容容 测试测试用例用例设计概设计概述述 测试测试用例用例设计设计方法方法 白盒白盒测试测试用例用例设计设计方法方法 黑盒黑盒测试测试用例用例设计设计方法方法 单单元元测试测试用例用例设计设计 集成集成测试测试用例用例设计设计 系系统测试统测试用例用例设计设计 软件学院 2021-7-1 2 测试用例是为了特定目的(如考察特定程序路径或 验证是否符合特定的需求)而设计的测试数据及与之 相关的测试规程的一个特定的集合,或称为有效地发 现软件缺陷的最小测试执行单元 Test Case Definition 软件学院 2021-7-1 3 写作规范 在ANSIIEEE

2、 829 1983 标准中列出了和测试设计相关的测试用例编写规 范和模板。 标准模板中主要元素如下: 1 标识符:每个测试用例应有一个惟一的标识,作为引用的基本元素。 2 测试项:测试用例应准确地描述被测试项及其特征。如做 Windows 应用程序的窗口测试,测试对象是整个应用程序用户界面,其特性要 求包括窗口缩放、界面布局、菜单等。 软件学院 2021-7-1 4 写作规范 3 测试环境要求:用来表明执行该测试用例需要的测试环 境,可根据被 测模块对测试环境的需求来描述测试 用例的测试环境。 4 输入数据:用来执行测试用例的输入数据。 5 对应输出数据:表示按照指定的环境和输入标准得到的 期

3、望输出结果。 6 测试用例间的关联:用来标识该测试用例与其他的测试 (或其他测试用例)间的依赖关系 软件学院 2021-7-1 1 Black-Box Testing(功能测试或数据驱动测试) Unit Test ? 软件学院 1 Black-Box Testing(功能测试或数据驱动测试) Unit Test ? 1) 是否有不正确或遗漏了的功能? 在接口上,输入能否正确地接受? 能否输出正确的结果? 是否有数据结构错误或外部信息 (例 如数据文件) 访问错误? 4) 性能上是否能够满足要求? 5) 是否有初始化或终止性错误? 软件学院 1 Black-Box Testing(功能测试或数据

4、驱动测试) Unit Test ? 所有可能的输入条件和输出条件中确定测试数据 NO Possible 1 Black-Box Testing(功能测试或数据驱动测试) 软件学院 2 White-Box Testing(内部结构) Unit Test ? 对程序模块的所有独立的执行路径至少测试一 次 路径覆盖测试; 对所有的逻辑判定,取“真”与取“假”的两 种情况都至少测试一次 逻辑覆盖测试; 在循环的边界和运行界限内执行循环体- 控制流测试; 测试内部数据结构的有效性 数据流测试、领域测试 软件学院 2 White-Box Testing(内部结构) Unit Test ? 循环循环20次次

5、 软件学院 2 White-Box Testing(内部结构) Unit Test ? 对程序模块的所有独立的执行路径至少测试一次 路径覆盖测试; 对所有的逻辑判定,取“真”与取“假”的两种 情况都至少测试一次 逻辑覆盖测试; 在循环的边界和运行界限内执行循环体- 控制流测试; 测试内部数据结构的有效性 数据流测试、领域测试 软件学院 11 Method Method White BoxWhite Box - Coverage - Coverage 方法 语句覆盖 判定覆盖 条件覆盖 每一可执行语句至少执行一次 判定分支取真和取假各执行一次 路径覆盖 判定的每个条件的可能取值至少 执行一次 程

6、序流程中的独立路径执行一次 软件学院 12 Method Method White BoxWhite Box - Coverage - Coverage 实例 语句覆盖 (A1)AND(B=0) X=X/A (A=2)OR(X1) X=X+1 F T TF a b c de 软件学院 13 分析 4条路径 2个判定 3个变量 L1:a-c-e 程序 L2:a-b-d L3:a-b-e L4:a-c-d 软件学院 14 用例 语句覆盖 判定覆盖 条件覆盖 【输入:(A,B,X),输出:(A,B,X)】 测试 【(2,0,4),(2,0,3)】 覆盖L1 【(2,0,4),(2,0,3)】 【(1

7、,1,1),(1,1,1)】 IF First IF Second IF 条件1: A1 条件2: B=0 F T F T 软件学院 15 Step 被测程序 建立程序的控制流程 计算基本路径数 确定基本路径集合 设计测试用例 执行测试并记录结果 1 2 3 4 5 软件学院 16 程序流程图 X K ? Pointer = False X = X +1 Pointer = True Yes No 软件学院 17 程序控制流图 X K ? Pointer = False X = X +1 Pointer = True Yes No 1 2 3 4 软件学院 18 程序控制流程图 1 23 4

8、软件学院 19 Cyclomatic计算方法的计算公式: 路径数= 边数 节点数 + 2 计算基本路径数 9 7 + 2 = 4 基本路径数 = 4 软件学院 20 确定基本路径集合 Path1: 1-2-3-4-5-6-7 Path2: 1-2-3-4-5-6-1 Path3: 1-2-4-5-6-7 Path4: 1-2-4-5-6-1 软件学院 21 设计测试用例 变量赋值 Path1: 1-2-3-4-5-6-7 Path2: 1-2-3-4-5-6-1 Path3: 1-2-4-5-6-7 Path4: 1-2-4-5-6-1 Test Case 软件学院 22 等价类是指某个输入域

9、的子集合。在该子集 合中,各个输入数据对于揭露程序中的错误 都是等效的。测试某等价类的代表值就等价 于对这一类其他值的测试 1 1 等价类等价类 软件学院 23 等价类的划分有两种不同的情况: 有效等价类:是对于程序规格说明来说,是 合理的,有意义的输入数据构成的集合。 无效等价类:是指对于程序规格说明来说, 是不合理的,无意义的输入数据构成的集合 1 1 等价类等价类 软件学院 24 (1)如果输入条件规定了取值范围,或值的个数, 则可确立一个有效等价类和两个无效等价类。 如,在程序规格说明中对输入条件有一句话: “ 项数可以从1到999 ” 则有效等价类是“1项数999” 两个无效等价类是

10、“项数1”或“项数999” Example Example 软件学院 25 (2)如果输入条件规定了取值范围,或值的个数, 则可确立一个有效等价类和两个无效等价类。 如,在程序规格说明中对输入条件有一句话: “ 项数可以从1到999 ” 则有效等价类是“1项数999” 两个无效等价类是“项数1”或“项数999” Example Example 软件学院 在数轴上表示成: 无效等价类无效等价类有效等价类有效等价类无效等价类无效等价类 1 999 软件学院 27 (2)如果输入条件规定了输入值的集合,如果输入条件规定了输入值的集合, 或者是规定了或者是规定了“必须如何必须如何”的条件,的条件, 这

11、时可确立一个有效等价类和一个无这时可确立一个有效等价类和一个无 效等价类。效等价类。 例如,在例如,在Pascal语言中对变量标识符语言中对变量标识符 规定为规定为“以字母打头的以字母打头的串串”。那。那 么所有以字母打头的构成有效等价类,么所有以字母打头的构成有效等价类, 而不在此集合内(不以字母打头)的而不在此集合内(不以字母打头)的 归于无效等价类归于无效等价类。 Example Example 软件学院 l如果输入条件是一个布尔量,则可以确定一 个有效等价类和一个无效等价类。 l如果规定了输入数据的一组值,而且程序要 对每个输入值分别进行处理。这时可为每一 个输入值确立一个有效等价类,

12、此外针对这 组值确立一个无效等价类,它是所有不允许 的输入值的集合。 例如,在教师上岗方案中规定对教授、副教授、讲 师和助教分别计算分数,做相应的处理。 软件学院 因此可以确定 4 个有效等价类为教授、副教 授、讲 师和助教,一个无效等价类,它是所有不符合以上 身分的人员的输入值的集合。 l如果规定了输入数据必须遵守的规则,则可以 确立一个有效等价类(符合规则)和若干个无 效等价类(从不同角度违反规则)。 (5)例如,Pascal语言规定 “一个语句必须以分号; 结束”。这时可以确定一个有效等价类 “以;结 束”,若干个无效等价类 “以:结束”、“以, 结束”、“以 结束”、“以LF结束”。

13、软件学院 l确立测试用例 在确立了等价类之后,建立等价类表,列出所有划 分出的等价类。 从划分出的等价类中按以下原则选择测试用例: 输入条件输入条件有效等价类有效等价类无效等价无效等价类类 软件学院 为每一个等价类规定一个唯一编号; 设计一个新的测试用例,使其尽可能多地覆盖尚未 被覆盖的有效等价类,重复这一步,直到所有的有 效等价类都被覆盖为止; 设计一个新的测试用例,使其仅覆盖一个尚未被覆 盖的无效等价类,重复这一步,直到所有的无效等 价类都被覆盖为止。 l用等价类划分法设计测试用例的实例 l在某一Pascal语言版本中规定: “标识符是由字母开头,后跟字母或数字的任 软件学院 l意组合构成

14、。编译器能够区分的有效字符数为8 个 ,最大字符数为 80 个。” 并且规定:“标识符必 须先说明,再使用。”“在同一说明语句中,标识 符至少必须有一个。” l从输入条件来看,有如下几个: 标识符的组成 标识符的第一个字符 标识符的字符个数 说明语句中的标识符个数 标识符的使用 软件学院 用等价类划分方法,建立输入等价类表: 输入条件输入条件有效等价类有效等价类无效等价类无效等价类 说明语句中说明语句中 标识符个数标识符个数 1个个(1), 多个多个(2)0个个(3) 标识符中字标识符中字 符数符数 18个个(4)0个个(5), 8个个(6), 80个个 (7) 标识符组成标识符组成字母字母(

15、8), 数字数字(9)非字母数字字符非字母数字字符(10), 保留字保留字(11) 标识符第一标识符第一 个字符个字符 字母字母(12)非字母非字母(13) 标识符使用标识符使用先说明后使用先说明后使用(14)未说明就使用未说明就使用(15) 软件学院 l下面选取了 9 个测试用例,它们覆盖了所有的等价类 。 VAR x,T1234567:REAL; BEGIN x := 3.414; T1234567 := 2.732; . (1), (2), (4), (8), (9), (12), (14) VAR :REAL; (3) VAR x,:REAL; (5) VAR T12345678:RE

16、AL; (6) 软件学院 VAR T12345.:REAL; (7) 多于80个字符 VAR T$:CHAR; (10) VAR GOTO:INTEGER; (11) VAR 2T:REAL; (13) VAR PAR:REAL; (15) BEGIN . PAP := SIN (3.14 * 0.8) / 6; 软件学院 36 边界值分析也是一种黑盒测试方法,是对 等价类划分方法的补充。 大量的错误是发生在输入或输出范围 的边界上,而不是在输入范围的内部 1 1边界值边界值 软件学院 37 使用边界值分析方法设计测试用例,首先 应确定边界情况。通常应当针对输入等价 类的边界,选取正好等于,刚

17、刚大于,或 刚刚小于边界的值做为测试数据,而不是 选取等价类中的典型值或任意值做为测试 数据。 1 1边界值边界值 软件学院 38 如何确定边界?通常的边界检查原则: 数字:最大最小刚大于最大刚小于最小、 字符串: 位置(首位末位首位前末位后) 长度(零 很大 超出缓冲区) 取值范围(刚到达边界 刚超出边界) a)其他如质量、大小、速度、方位、尺寸、空间等都 可按照最轻 最重,最大最小,最快最慢、最高 最低、最短最长、空满等确定边界。 1 1边界值边界值 软件学院 39 例如,判断三角形问题,问题的提法是:程序接 受 3 个整数 a、b 和 c 作为输入,用做三角形的 边。整数 a、b 和 c

18、 必须满足以下条件: C11a200 C21b200 C31c200 C4ab + c C5ba + c C6ca + b ExampleExample 软件学院 40 例如,判断三角形问题,问题的提法是:程序接 受 3 个整数 a、b 和 c 作为输入,用做三角形的 边。整数 a、b 和 c 必须满足以下条件: C11a200 C21b200 C31c200 C4ab + c C5ba + c C6ca + b ExampleExample 软件学院 l按照构成三角形的条件 C1、C2和C3,整数a、b、c的边界值为1和200,稍超 出边界的值为0和201。 C4、C5和C6的边界值分别是b+ca+1、a+cb+1和 b+ca+1。 l可取的测试用例如下表所示。 测测 试试 用用 例例abc a, b, c 达到最小边界达到最小边界 111 a, b, c 达到最大边界达到最大边界200200200 a 超出最小

温馨提示

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

评论

0/150

提交评论