Presentation is loading. Please wait.

Presentation is loading. Please wait.

第 3部分 软件测试技术.

Similar presentations


Presentation on theme: "第 3部分 软件测试技术."— Presentation transcript:

1 第 3部分 软件测试技术

2 本部分课程目标 测试技术的基本概念 测试技术的使用技巧 测试技术的应用范围

3 软件测试技术的分类 静态黑盒测试 动态黑盒测试 静态白盒测试 动态白盒测试

4 静态与动态 静态——只是检查和审阅 动态——运行和使用软件

5 黑盒与白盒 黑盒:软件测试人员只需知道软件要做什么即可,无法看到盒子中是如何运行的。
白盒:软件测试人员可以访问程序员的代码,并通过检查代码来测试,可以看到盒子里面。

6 静态黑盒测试 对产品说明书进行高级审查 设身处地为用户着想 研究现有的标准和规范 审查和测试同类软件

7 静态黑盒测试 测试标准: 1、公司惯用语和约定 2、行业要求 3、国家标准 4、硬件和网络标准 5、图形用户界面(GUI)。

8 产品描述属性检查清单 完整 准确 精确 一致 合理 代码无关 可测试

9 产品描述用语检查清单 是否有绝对、肯定和切实认定的叙述,针对其设计用例。 比较模糊的用语。某些、有时·····
功能清单是否有等等、诸如此类、依此类推,无法测试的词汇。 在性能上不确定的说法。 隐藏大量需要说明的功能 如果·····那么·····(没有否则)。

10 产品说明案例分析 ◆ 国产电子软件的巅峰之作,包含12本权威词典、32本专业词典,最新收录原汁原味的美语英汉双解词典:《美国传统词典》; ◆ 强大的网络功能,定时更新最新词库、词霸界面、随时下载功能插件; ◆ 国际顶尖的TTS语音全程技术,彻底实现单词乃至整篇文章的流畅朗读; ◆ 新增“生词本”功能,是您学习英语的好帮手; 智能的即指即译功能,可在任意窗口下实现中英文对译。

11 静态黑盒测试的小结 标准 产品描述属性检查 产品描述用语检查

12 动态黑盒测试——边界值分析 边界值测试的基本原理: 错误更可能出现在输入变量的极值附近. 失效极少由两个(或多个)缺陷的同时发生引起的。
Min、min+、nom、max-和max。

13 动态黑盒测试——边界值测试 如果函数F实现了一个程序,则输入两个变量x1 和 x2会有一些边界: a≤ x1≤ b c ≤ x2≤ d
区间[a,b]和[c,d]是x1 和 x2的值域。

14 动态黑盒测试——边界值分析 a d c b x1 x2

15 动态黑盒测试——边界值分析 a d c b x1 x2

16 动态黑盒测试——边界值分析 边界的数据类型可能是: 数值 速度 字符 地址 位置 尺寸 数量

17 动态黑盒测试——边界值分析 边界值类型的描述: 第一个/最后一个 最小值/最大值 开始/完成 超过/在内 空/满 最短/最长
第一个/最后一个 最小值/最大值 开始/完成 超过/在内 空/满 最短/最长 最大/最小 最高/最低 相邻/最远

18 动态黑盒测试——次边界值分析 次边界条件:
有些边界条件在软件内部,最终用户几乎看不到,但是软件测试仍有必要检查。这样的边界条件称为次边界条件或者内部边界条件。如2的乘方和ASCⅡ。

19 软件中的2的乘方 术语 范围或值 位 0或1 双位 0-15 字节 0-255 字 0-65,535 千 1,024 兆 1,048,576
亿 1,073,741,824 万亿 1,009,511,627,776

20 部分的ASCⅡ制表 字符 ASCⅡ值 Null B 66 Space 32 Y 89 / 47 Z 90 48 [ 91 1 49 ‘ 96
B 66 Space 32 Y 89 / 47 Z 90 48 [ 91 1 49 96 2 50 a 97 9 57 b 98 58 y 121 @ 64 z 122 A 65 { 123

21 动态黑盒测试——边界值分析 边界值分析的特点和局限性 对于一个n变量函数,边界值分析会产生4n+1个测试用例。
边界值的取值取决于变量本身的性质。 边界值分析对布尔变量没有什么意义。 边界值分析假设变量是完全独立的。

22 动态黑盒测试——健壮性测试 健壮性测试是边界值分析的一种简单扩展 a d c b x1 x2

23 动态黑盒测试—最坏情况测试 最坏情况测试用例 a d c b x1 x2

24 动态黑盒测试— 健壮最坏情况测试 健壮最坏情况测试用例 a d c b x1 x2

25 动态黑盒测试——练习 1、写出三角形问题的边界值分析测试用例 2、写出NextDate函数的最坏情况测试用例

26 动态黑盒测试— 佣金问题的测试用例

27 动态黑盒测试— 佣金问题的测试用例 写出佣金问题的输出 边界值分析测试用例

28 动态黑盒测试— 佣金问题的测试用例 用例 枪机 枪托 枪管 销售额 佣金 注释 1 100 10 输出最小值 2 125 12.5
输出略大于最小值 3 130 13 4 145 14.5 5 500 50 中点 6 9 975 97.5 略低于边界点 7 970 97 8 955 95.5 1000 边界点 11 1025 103.75 略高于边界点 1030 104.5 12 1045 106.75 14 1400 160

29 动态黑盒测试— 佣金问题的测试用例 用例 枪机 枪托 枪管 销售额 佣金 注释 14 18 17 1775 216.25 略低于边界点 15
1770 215.5 16 1755 213.25 1800 220 边界点 19 1825 225 略高于边界点 1830 226 20 1845 229 21 48 4800 820 中点 22 70 80 89 7775 1415 输出略小于最大值 23 79 90 7770 1414 24 69 7755 1411 25 7800 1420 输出最大值

30 边界值测试的小结 这类测试方法是基于一种假设:输入的变量是真正独立的。 这些方法的区别是:正常值与健壮值;单缺陷与多缺陷。

31 动态黑盒测试—等价类测试 等价分配:是指分步骤地把过多(无限)的测试案例减小到同样有效的小范围的过程。
等价类别或者等价区间是指测试相同目标或者暴露相同软件缺陷的一组测试。 在寻找等价区间时,想办法把软件的相似输入、输出、操作分成组。这些组是等价区间。

32 动态黑盒测试—等价类测试 弱一般等价类测试用例 a g e d x1 x2 f b c

33 动态黑盒测试—等价类测试 强一般等价类测试用例 a g e d x1 x2 f b c

34 动态黑盒测试—等价类测试 弱健壮等价类测试用例 a g e d x1 x2 f b c

35 动态黑盒测试—等价类测试 强健壮等价类测试用例 a g e d x1 x2 f b c

36 动态黑盒测试—等价类测试 写出三角形问题的输入等价类和输出等价类 写出NextDate函数的输入等价类 写出佣金问题的输入和输出等价类
Windows文件名可以包含除了、/:*?“〈〉。文件名长度是1-255个字符。写出文件名创建测试用例。

37 三角形问题—弱强一般等价类测试用例 测试用例 a b c 预期输出 1 5 等边三角形 2 3 等腰三角形 4 不等边三角形 非三角形

38 三角形问题—弱健壮等价类测试用例 测试用例 a b c 预期输出 1 -1 5 a取值不在所允许的取值范围内 2
3 c 取值不在所允许的取值范围内 4 201 6 c取值不在所允许的取值范围内

39 三角形问题—强健壮等价类测试用例 测试用例 a b c 预期输出 1 -1 5 a取值不在所允许的取值范围内 2
3 c 取值不在所允许的取值范围内 4 a、b取值不在所允许的取值范围内 b、c取值不在所允许的取值范围内 6 c、a取值不在所允许的取值范围内 7 a、b、c取值不在所允许的取值范围内

40 等价类测试的小结 如果错误条件非常重要,则进行健壮性的测试是合适的。 如果输入数据以离散值区间和集合定义,则等价类测试是合适的。
等价类测试的弱形式不如对应的强形式的测试全面。 如果错误条件非常重要,则进行健壮性的测试是合适的。 如果输入数据以离散值区间和集合定义,则等价类测试是合适的。 在发现合适的等价类关系之前,可能需要进行多次尝试。

41 动态黑盒测试— 基于决策表的测试 在所有功能测试方法中,基于决策表的测试方法是最严格的,因为决策表具有逻辑严格性。
决策表很适合描述不同条件集合下采取行动的若干组合的情况。

42 动态黑盒测试— 基于决策表的测试 规则1 规则2 规则3、4 规则5 C1 C2 C3 T F A1 A2 A3 X

43 动态黑盒测试— 基于决策表的测试 桩 1 2 3 4 5 6 7 8 9 C1:a,b,c构成三角形? C2: a=b? C3: a=c?
C4: b=c? N - Y NY A1:非三角形 A2:不等边三角形 A3:等腰三角形 A4:等边三角形 A5:不可能 X

44 动态黑盒测试— 基于决策表的测试 条件 1 2 3 C1:月份在M1中? C2:月份在M2中? C3:月份在M3中? T - A1 A2

45 动态黑盒测试— 基于决策表的测试 条件 1 2 3 C1:月份在M1中? C2:月份在M2中? C3:月份在M3中? 规则条数统计 T -
4 A1 A2

46 C1:月份在M1中?C2:月份在M2中?C3:月份在M3中?
动态黑盒测试— 基于决策表的测试 条件 1 2 3 4 C1:月份在M1中?C2:月份在M2中?C3:月份在M3中? 规则条数统计 T F A1 A2

47 动态黑盒测试— 基于决策表的测试 条件 1 2 3 4 C1:月份在M1中? C2:月份在M2中? C3:月份在M3中? 规则条数统计 T
C1:月份在M1中? C2:月份在M2中? C3:月份在M3中? 规则条数统计 T F A1 X

48 动态黑盒测试— 基于决策表的测试 条件 1-4 5 6 7 8 9 C1 C2 C3 T - F A1 A2 X

49 动态黑盒测试— 基于决策表的测试 条件 1-4 5 6 7 8 9 C1 C2 C3 T - F A1 A2 X

50 动态黑盒测试— 基于决策表的测试 M1={月份:每月有30天}; D3={日期:日期=30}; M2={月份:每月有31天};
Y1={年:年是闰年}; Y2={年:年不是闰年}。

51 动态黑盒测试— 基于决策表的测试 条件 C1:月份在M1中? C2: 月份在M1中? C3: 月份在M1中? C4:日期在D1中?
C1:月份在M1中? C2: 月份在M1中? C3: 月份在M1中? C4:日期在D1中? C5: 日期在D1中? C6: 日期在D1中? C7: 日期在D1中? C8:年在Y1中? T A1:不可能 A2: NextDate

52 动态黑盒测试— 基于决策表的测试 M1={月份:每月有30天}; M2={月份:每月有31天}; M3={月份:此月是2月};
D1={日期:1≤日期≤28}; D2={日期:日期=29}; D3={日期:日期=30}; D4={日期:日期=31}; Y1={年:年=2000}; Y2={年:年是闰年}; Y3={年:年是平年}。

53 动态黑盒测试— 基于决策表的测试 1 2 3 4 5 6 7 8 C1:月份在 C2:日期在 C3:年在 规则条数统计 M1 D1 - D2
1 2 3 4 5 6 7 8 C1:月份在 C2:日期在 C3:年在 规则条数统计 M1 D1 - D2 D3 D4 M2 A1:不可能 A2:日期增1 A3:日期复位 A4:月份增1 A5:月份复位 A6:年增1 X ?

54 动态黑盒测试— 基于决策表的测试 9 10 11 12 13 14 15 16 17 C1:月份在 C2:日期在 C3:年在 规则条数统计
9 10 11 12 13 14 15 16 17 C1:月份在 C2:日期在 C3:年在 规则条数统计 M3 D1 Y1 1 Y2 Y3 D2 D3 - 3 D4 A1:不可能 A2:日期增1 A3:日期复位 A4:月份增1 A5:月份复位 A6:年增1 X

55 动态黑盒测试— 基于决策表的测试 M1={月份:每月有30天}; D2={日期:日期=28}; M2={月份:每月有31天,12月除外};
Y1={年:年是闰年}; Y2={年:年不是闰年}。

56 动态黑盒测试— 基于决策表的测试 1 2 3 4 5 6 7 8 9 10 C1:月份在 C2:日期在 C3:年在 M1 D1 - D2
1 2 3 4 5 6 7 8 9 10 C1:月份在 C2:日期在 C3:年在 M1 D1 - D2 D3 D4 D5 M2 A1:不可能 A2:日期增1 A3:日期复位 A4:月份增1 A5:月份复位 A6:年增1 X

57 动态黑盒测试— 基于决策表的测试 11 12 13 14 15 16 17 18 19 20 21 22 C1:月份在 C2:日期在
11 12 13 14 15 16 17 18 19 20 21 22 C1:月份在 C2:日期在 C3:年在 M3 D1 - D2 D3 D4 D5 M4 Y1 Y2 A1:不可能 A2:日期增1 A3:日期复位 A4:月份增1 A5:月份复位 A6:年增1 X

58 动态黑盒测试— 基于决策表的测试 1-3 4 5 6-9 10 C1:月份在 C2:日期在 C3:年在 M1 D1-D3 - D4 D5
1-3 4 5 6-9 10 C1:月份在 C2:日期在 C3:年在 M1 D1-D3 - D4 D5 M2 D1-D4 A1:不可能 A2:日期增1 A3:日期复位 A4:月份增1 A5:月份复位 A6:年增1 X

59 动态黑盒测试— 基于决策表的测试 11-14 15 16 17 18 19 20 21-22 C1:月份在 C2:日期在 C3:年在 M3
11-14 15 16 17 18 19 20 21-22 C1:月份在 C2:日期在 C3:年在 M3 D1-D4 - D5 M4 D1 D2 Y1 Y2 D3 D4-D5 A1:不可能 A2:日期增1 A3:日期复位 A4:月份增1 A5:月份复位 A6:年增1 X

60 动态黑盒测试— 基于决策表的测试 写出NextDate函数的决策表测试用例

61 基于决策表的测试的小结 决策表技术适用于具有以下特征的应用程序: If-then-else逻辑很突出 输入变量之间存在逻辑关系。
涉及输入变量子集的计算。 输入与输出之间存在因果关系。 很高的圈复杂度。 迭代会有所帮助,第一次不见得会成功。

62 动态黑盒测试—基于正交阵列 1 2 3 4 5 6 7 8 9

63 动态黑盒测试—基于正交阵列 Web浏览器(Netscape 6.2、IE6.0、Opera 4.0)
插件(无、RealPlayer、MediaPlayer) 应用服务器(IIS、Apache、Netscape Enterprise) 操作系统(Windows2000、Windows NT、Linux)

64 动态黑盒测试—基于正交阵列 1 2 3 4 无 IIS 1 w2000 RealPlayer Apache 2 W NT
Netscape IIS 1 w2000 RealPlayer Apache 2 W NT MediaPlayer 3 Enterprise 3 Linux) IE 2 Apache 5 1w2000 6 2W NT 7 Opera 8 9

65 动态黑盒测试—其他 即席测试 随机测试 半随机测试 探测性测试

66 动态黑盒测试的小结 边界值分析法 等价类测试 决策表测试 正交阵列测试 随机类测试

67 静态白盒测试 好处: 尽早发现软件缺陷。 为黑盒测试员提供思路。
静态白盒测试是在不执行的条件下有条理地仔细审查软件设计、体系结构和代码,从而找出软件缺陷的过程。 好处: 尽早发现软件缺陷。 为黑盒测试员提供思路。

68 静态白盒测试 审查是正式、严格、具有深度的技术评审,以便尽可能准确地确定问题之所在。 审查过程的目的: 在软件开发过程中尽可能早地发现问题。
确保对需要重做部分达成一致意见。 验证任何重做部分满足预先定义的准则。

69 静态白盒测试 一次审查一般需要5人至7人,这些角色是: 主审员:协调本次审查并主持讨论。 责任人:负责被审查的产品。
讲解员:在审查会上讲解被审查的产品。 审查员:审查产品。 记录员:记录在审查会议上讨论的问题。 经理:责任人的管理者。

70 静态白盒测试 选择要审查的代码模块的准则: 对于正确操作产品起关键作用的模块。 复杂度较高的模块 与过去发生错误率较高的模块功能类似的模块。
相对较新的或缺乏经验的软件程序师编写的模块。

71 静态白盒测试 为什么要坚持编码标准和规范? 可靠性。 可读性/维护性 移植性

72 静态白盒测试 大多数计算机语言和信息技术的国家和国际标准可以通过以下途径获得: 国际工程协议(IEC):www.iec.org
国际标准化组织(ISO): 信息技术标准国家委员会(NCITS): 计算机械联合会(ACM): 电子电气工程学会(IEEE):

73 静态白盒测试 通用代码审查清单 数据引用错误; 数据声明错误; 计算错误; 比较错误; 控制流程错误; 子程序参数错误; 输入/输出错误;
其他检查。

74 静态白盒测试 数据引用错误 是否引用了未初始化的变量? 数组和字符串的下标是整数值吗? 是否在应该使用常量的地方使用了变量?
变量是否被赋予不同类型的值? 为引用的指针分配内存了吗? 一个数据结构是否在多个函数或者子程序中引用,在每一个引用中明确定义结构了吗?

75 静态白盒测试 数据声明错误 所有变量都赋予正确的长度和类型了吗? 变量是否在声明的同时进行了初始化?
存在声明过、但从未引用或者只引用过一次的变量吗? 在特定模块中所有变量都显示声明了吗?

76 静态白盒测试 计算错误 计算中是否使用了不同数据类型的变量? 计算中是否了解和考虑到编译器对类型或长度不一致的变量的转换规则?
在数值计算过程中是否可能出现溢出? 除数/模是否可能为零? 变量的值是否超过有意义的范围? 对于包含多个操作数的表达式,求值的次序是否混乱,运算优先级对吗?

77 静态白盒测试 比较错误 比较得正确吗? 存在分数或者浮点值之间的比较吗?如果有,精确问题会影响比较吗?
每一个逻辑表达式都正确表达了吗?逻辑计算如期进行了吗?求值次序有疑问吗? 逻辑表达式的操作是逻辑值吗?

78 静态白盒测试 控制流程错误 如果程序包含begin…end和 do …while 等语句组,end是否对应?
程序、模块、子程序和循环能否终止? 可能存在永远不停的循环吗? 循环可能从不执行吗?

79 静态白盒测试 子程序参数错误 子程序接受的参数类型和大小与调用代码发送的匹配吗?
如果子程序有多个入口点,引用的参数是否与当前入口点没有关联? 常量是否当作形参传递,意外在子程序中改动?

80 静态白盒测试 输入/输出错误 软件是否严格遵守外部设备读写数据的专用格式? 文件或者外部不存在或者未准备好的错误情况有处理吗?
软件是否处理外部设备未连接、不可用,或者读写过程中存储空间占满等情况?

81 静态白盒测试 同行审查 仅在编写代码的程序员和充当审查者的其他一两个程序员和测试员之间进行。保证审查的高效率,注意审查的4个关键要素:
确定问题;遵守规则; 审查准备;编写报告。

82 静态白盒测试的小结 代码评审 同行审查 检查单

83 动态白盒测试 动态白盒测试的另一个常用名称是结构测试,因为软件测试员可以查看并使用代码的内部结构,从而设计和执行测试。
动态白盒测试是指利用查看代码功能和实现方式得到的信息来确定哪些要测试,哪些不要测试,如何开展测试。 动态白盒测试的另一个常用名称是结构测试,因为软件测试员可以查看并使用代码的内部结构,从而设计和执行测试。

84 动态白盒测试——路径测试 由于这种绝对化的基础,结构性测试方法支持严格定义、数据分析和精确度量。
结构性测试方法的突出特点,是它们都基于被测程序的源代码,而不是基于定义。 由于这种绝对化的基础,结构性测试方法支持严格定义、数据分析和精确度量。

85 动态白盒测试——路径测试

86 动态白盒测试——路径测试

87 动态白盒测试——路径测试

88 动态白盒测试——路径测试 定义 DD-路径是程序图中的一条链,使得: 情况1:由一个节点组成,内度=0。 情况2:由一个节点组成,外度=0。
情况3:由一个节点组成,内度≥2或外度≥2。 情况4:由一个节点组成,内度=1并且外度=1。 情况5:长度≥1的最大链。

89 动态白盒测试——路径测试

90 结构性测试覆盖指标 语句覆盖:选择足够的测试用例是程序中每个可执行语句至少执行一次
判定覆盖(分枝覆盖) :选择足够的测试用例,使得程序中每个判定至少都获得一次“真”值和“假”值 条件覆盖:设计若干测试用例,执行被测程序后是每个判定中每个条件的可能值至少满足一次

91 结构性测试覆盖指标 判定/条件覆盖:判定/条件覆盖要求设计足够的测试用例,使得判定中的每个条件的所有可能(真/假)至少出现一次并且每个判定本身的结果(真/假)也至少出现一次 条件组合覆盖:执行足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次,显然满足条件组合覆盖的测试用例一定满足“判定覆盖”、“条件覆盖”和“判定/条件覆盖” 路径覆盖:设计足够的测试用例要求覆盖程序中所有可能的路径

92 语句覆盖 1 PRINT “Hello you” 2 PRINT “The date is:”;Date&
3 PRINT “The time is:”;Time& 4 END

93 判断覆盖(分枝覆盖) 1 PRINT “Hello you” 2 IF Date=“01-01-2000”THEN
3 PRINT “Happy New Year” 4 END IF 5 PRINT “The date is:”;Date 6 PRINT “The time is:”;Time 7 END

94 条件覆盖 1 PRINT “Hello you” 2 IF Date=“01-01-2000”AND Time=“00:00:00”THEN
3 PRINT “Happy New Year” 4 END IF 5 PRINT “The date is:”;Date 6 PRINT “The time is:”;Time 7 END

95 动态白盒测试—基路径测试 原始 P1:A-B-C-E-F-H-J-K-M-N-O-最终 不等边三角形 在B处翻转P1
P2:A-B-D-E-F-H-J-K-M-N-O-最终 不可行 在F处翻转P1 P3:A-B-C-E-F-G-O-最终 在H处翻转P1 P4:A-B-C-E-F-H-I-N-O-最终 等边三角形 在J处翻转P1 P5:A-B-C-E-F-H-J-L-M-N-O-最终 等腰三角形

96 动态白盒测试——基路径测试 P1:A-B-C-E-F-H-J-K-M-N-O-最终 不等边三角形 P6:A-B-D-E-F-G-O-最终
非三角形 P4:A-B-C-E-F-H-I-N-O-最终 等边三角形 P5:A-B-C-E-F-H-J-L-M-N-O-最终 等腰三角形

97 动态白盒测试——循环测试 简单循环 其循环的最大次数为n 测试: 跳过整个循环 只循环一次 循环两次 循环m次其中m<n
分别循环n-1次,n次,n+1次

98 动态白盒测试——循环测试 串接循环 如两个串接循环是独立的,则可分别采用简单循环的测试方法测试
不独立第一个循环计数器是第二个循环的初值,则可采用嵌套循环方法进行测试

99 动态白盒测试——循环测试 嵌套循环 如果嵌套循环也采用简单循环的办法此时会随嵌套层数成几何级数增加导致不可测
Beizer提出一种减少测试级数的方法 从最内层循环开始测试,内层循环按简单循环策略所有外层循环次数设到最小数 由内向外一次向上回退一次嵌套循环回退后进行测试,本层循环的所有外层循环仍取最小值,本层循环嵌套的循环取一次“典型”值 继续向外回退,直到所有循环测试完毕

100 动态白盒测试——循环测试 非结构循环 按结构化程序设计思想首先将程序结构化再进行测试

101 动态白盒测试—数据流测试 早期的数据流分析常常集中于现在叫做定义/引用异常的缺陷: 变量被定义,但是从来没有使用。 所使用的变量没有被定义。
变量在使用之前被定义两次。

102 动态白盒测试—定义/使用测试 定义 节点n∈G(P)是变量v∈V的定义节点,记做DEF(v,n),当且仅当变量v的值由对应节点n的语句片段处定义。

103 动态白盒测试—定义/使用测试 定义 节点n∈G(P)是变量v∈V的使用节点,记做USE(v,n),当且仅当变量v的值由对应节点n的语句片段处使用。

104 动态白盒测试—定义/使用测试 定义 使用节点USE(v,n)是一个谓词使用(记做P-use),当且仅当语句n是谓词语句;否则,USE(v.n)是计算使用(记做C-use)。

105 动态白盒测试—定义/使用测试 定义 关于变量v的定义-使用路径(记做du-path)是PATHS(P) 中的路径,使得对某个v∈V,存在定义和使用节点DEF(v,m)和USE(v,n),使得m和n是该路径的最初和最终节点。

106 动态白盒测试—定义/使用测试 定义 关于变量v的定义清除路径(记做dc-path),是具有最初和最终节点DEF(v,m)和USE(v,n)的PATHS(P)中的路径,使得该路径中没有其他节点是v的定义节点。

107 动态白盒测试—定义/使用测试

108 动态白盒测试—定义/使用测试

109 动态白盒测试—定义/使用测试 变量 定义节点 使用节点 Lockprice Stockprice Barrelprice
Totallocks Totalstocks Totalbarrels Locks Stocks Barrels Locksales Stocksales Barrelsales Sales commission 7 8 9 10,16 11,17 12,18 13,19 15 24 25 26 27 31,32,33,36,37,38 16,21,24 17,22,25 18,23,26 14,16 17 18 28,29,33,34,37,38 32,33,37,41

110 动态白盒测试—定义/使用测试 Stocks的定义-使用路径 Locks的定义-使用路径 Total locks的定义-使用路径
sales的定义-使用路径 commission的定义-使用路径

111 动态白盒测试—定义/使用测试 T是拥有变量集合V的程序P的程序图G(P)中的一个路径集合。 定义
集合T满足程序P的全定义准则,当且仅当所有变量v∈V,T包含从v的每个定义节点到v的一个使用的定义清除路径。

112 动态白盒测试—定义/使用测试 定义 集合T满足程序P的全使用准则,当且仅当所有变量v∈V,T包含从v的每个定义节点到v的所有使用,以及到所有USE(v,n)后续节点的定义清除路径。

113 动态白盒测试—定义/使用测试 定义 集合T满足程序P全谓词使用/部分计算使用准则,当且仅当所有变量v∈V,T包含从v的每个定义节点到v的所有谓词使用的定义清除路径,并且如果v的一个定义没有谓词使用,则定义清除路径导致至少一个计算使用。

114 动态白盒测试—定义/使用测试 定义 集合T满足程序P全计算使用/部分谓词使用准则,当且仅当所有变量v∈V,T包含从v的每个定义节点到v的所有计算使用的定义清除路径,并且如果v的一个定义没有计算使用,则定义清除路径导致至少一个谓词使用。

115 动态白盒测试—定义/使用测试 定义 集合T满足程序P的全定义-使用路径准则,当且仅当所有变量v∈V,T包含从v的每个定义节点到v的所有使用,以及到所有USE(v,n)后续节点的定义清除路径,并且这些路径要么有一次的环经过,要么没有环路。

116 动态白盒测试—定义/使用测试 全定义-使用路径 全计算使用/部分谓词使用 全定义 全路径 全使用 全谓词使用/部分计算使用 全谓词使用 全边
1、定义/使用路径测试覆盖指标 2、全路径-全条件 全边-全判断 全节点-全语句 3、我们有了一种介于全路径指标和一般被认为是最低指标的全边之间的,更细化的结构性测试可能性。 4、定义/使用测试提供了一种检查缺陷可能发生点的严格和系统化方法。 全谓词使用 全边 全节点

117 动态白盒测试-基于程序片的测试 程序片是确定或影响某个变量 在程序某个点上的取值的 一组程序语句。

118 动态白盒测试-基于程序片的测试 定义 给定一个程序P和P中的一个变量集合V,变量集合V在语句n上的一个片,记做S(V,n),是P中对V中的变量值做出贡献的所有语句集合。

119 动态白盒测试-基于程序片的测试 定义 给定一个程序P和一个给出语句及语句片段编号的程序图G(P),以及P 中的一个变量集合V,变量集合V在语句片段n上的一个片,记做S(V,n),是P中在n以前对V中的变量值作出贡献的所有语句片段编号的集合。

120 动态白盒测试-基于程序片的测试 五种形式的使用 谓词使用 用在谓词(判断)中。 计算使用 用在计算中。 输出使用 用于输出。
定位使用 用于定位(指针、下标)。 迭代使用 迭代(内部计数器、循环指示)。

121 动态白盒测试-基于程序片的测试 标识两种定义节点: 输入定义 通过输入定义 赋值定义 通过赋值定义

122 动态白盒测试-基于程序片的测试 写出Stocks、locks、barrels的片
写出totalStocks、totallocks、totalbarrels的片 写出sales、commission的片

123 Sale与commission上的格 S31 S32 S37 S35 S36 S33 S34 S24 S23 S22 S21 S16 S13

124 小结 静态黑盒测试是指检查产品描述,并在投入软件编写之前查找问题。 动态黑盒测试是指在不了解软件如何工作的前提下进行测试。
静态白盒测试是指通过正式审查和检验检查代码的细节。 动态白盒测试是指在看到软件的工作方式时,根据获得的信息对软件进行测试。


Download ppt "第 3部分 软件测试技术."

Similar presentations


Ads by Google