白盒测试ppt课件
合集下载
软件工程--白盒测试技术 ppt课件
a >1 || c < 1 T 4
6} 7 c = b+c;
F 5
c=b+c
c=c/a c=c+1
输出:3.5 -2
5. 条件组合覆盖准则
设计足够的测试用例,使得判定中每个条件的所有 可能组合至少出现一次,并且每个判定结果也至少 出现一次。
7.6 白盒测试技术
白盒测试 的原则
对程序模块的所有独立 执行路径至少测试一次
对所有的逻辑判定取 “真”与取“假”的两种情况
都至少测试一次。
在循环的边界和可操作范围 内执行循环体
测试内部数据结构的有效性, 完成边界条件的测试。
执行路径:520个
循
环
近似为1014个
小
于
等 于
如果1ms完成一
20
个测试
No
测试用例
覆盖的判断条件
通过路径
1 a=2,b= -1,c= -2
T1,F2,T3,F4
?
2 A=-1,b=2,c= 3
F1,T2,F3,T4
?
虽然覆盖了所有条件,但不能保证多个判定 分支均被覆盖到
4、 判定—条件覆盖准则
设计足够测试用例,使得判定中的所有条件可 能取值至少执行一次,同时,所有判定的可能 结果至少执行一次。
值为假分支
条件中的取值有 被忽略的情况
a=2,b=1,c=3 a= -2,b=1,c= -3
a >0 && b > 0 T
c=c/a
判定覆盖仍是弱覆 盖标准!
F a >1 || c < 1 T
c=c+1
Bug
F c=b+c
白盒测试PPT课件
软件技术专业国家教学资源库——《软件测试》课程
3
本项目各任务的教学过程
➢ 项目概述 ➢任务一 ➢任务二 ➢任务三
软件技术专业国家教学资源库——《软件测试》课程
4
项目概述
引例
如何清理面包机?
不管内部,拿水从入口往下灌着冲洗 将面包机拆开一点点的查看有无锈迹污迹,逐个清理
白盒测试
测试者针对可见代码进行的一种测试
1
if((a+b<=c) || (a+c<=b) || (b+c<=a)){
2
printf("不能构成三角形");
3
}else{
4
if((a==b) ||(b==c)||(a==c)){
5
if((a==b)&&(b==c)){
6
printf("等边三角形");
7
}else{
8
printf("等腰三角形");
➢ 任务简介 ➢ 任务分析 ➢ 相关知识点 ➢ 任务实施 ➢ 任务小结 ➢ 拓展训练
软件技术专业国家教学资源库——《软件测试》课程
7
项目概述
待测程序说明
图形识别系统
根据输入的信息确定最终图形的种类
主要测试的程序片段---三角形问题
接受输入三个整数a、b、c,分别作为三角形的三条边,通 过程序判断这三条边是否能构成三角形?如果能构成三角形, 则判断三角形的类型(等边三角形、等腰三角形、一般三角 形)。要求输入三个整数a、b、c,必须满足以下条件: 1≤a≤200;1≤b≤200;1≤c≤200。
9
}
10
}else{
白盒测试课件
学习交流PPT
16
判定覆盖
• 要实现DoWork函数的判定覆盖,需要设计两个测试用例。
• 测试用例的输入为:{x=4、y=5、z=5};{x=2、y=5、z=5}
• 测试用例输入为:{ x=4、y=5、z=5 }
• 程序执行的路径是:abd
• 分析:
语句覆盖可以保证程序中的每个语句都得到执行,但 发现不了判定中逻辑运算的错误,即它并不是一种充分的 检验方法。例如在第一个判定((x>3)&&(z<10))中把“&&” 错误的写成了“||”,这时仍使用该测试用例,则程序仍会 按照流程图上的路径abd执行。可以说语句覆盖是最弱的逻 辑覆盖准则。
学习交流PPT
12
逻辑覆盖法(续)
组合覆盖
判断/条件覆盖
判断覆盖
条件覆盖
语句覆盖
学习交流PPT
13
逻辑覆盖法(续)
void DoWork (int x,int y,int z)
{
int k=0,j=0;
if ( (x>3)&&(z<10) )
{ k=x*y-1;
j=sqrt(k);
}
//语句块1
——满足判定/条件覆盖的测试用例一定同时满足判定覆盖 和条件覆盖。
➢组合覆盖:通过执行足够的测试用例,使得程序中每个判 定的所有可能的条件取值组合都至少出现一次。
——满足组合覆盖的测试用例一定满足判定覆盖、条件覆 盖和判定/条件覆盖。
➢路径覆盖:设计足够多的测试用例,要求覆盖程序中所有 可能的路径。
• 所有逻辑值均需测试真 (true) 和假 (false) 两种情况。
• 检查程序的内部数据结构,保证其结构的有效性。
软件测试教学PPT-白盒测试
基本路径法
基本路径测试法适用于模块地详细设计 与源程序。其步骤如下:
以详细设计或源代码为基本,导出程序 地控制流图;
计算得出控制流图G地环路复杂度V(G); 确定线性无关地路径地基本集; 生成测试用例,确保基本路径集中每条
路径地执行。
基本路径法
对于下面地程序,假设输入地取值范围是 1000<year<2001,使用基本路径测试法为变量 year设计测试用例,使满足基本路径覆盖地要 求。
基本路径法
根据源代码绘制程序地控制流图如下
基本路径法
通过控制流图,计算环路复杂度V(G)=区域数=4。 线形无关地路径集为: 1-3-8 1-2-5-8 1-2-4-7-8 1-2-4-6-8 设计测试用例: 路径1:输入数据:year=1999 预期结果:leap=0 路径2:输入数据:year=1996 预期结果:leap=1 路径3:输入数据:year=1800 预期结果:leap=0 路径4:输入数据:year=1600 预期结果:leap=1
从覆盖源程序语句地详尽程度,可以分为 语句覆盖 判定覆盖 条件覆盖 条件判定覆盖 条件组合覆盖 路径覆盖
逻辑覆盖法
语句覆盖 指地是代码中所有地语句都至少执行一
遍 虽然覆盖了可执行语句,但是不能检查
判断逻辑是否有问题 是很不充分地一种测试,是最弱地逻辑
覆盖准则 测试覆盖率工具:如
The End
白盒测试方法选择
选择白盒测试方法地几条经验: 在测试中,可采取先静态再动态地组合方式,先进
行代码检查与静态结构分析,再进行覆盖测试; 利用静态分析地结果作为引导,通过代码检查与
动态测试地方式对静态分析地结果做进一步确认; 覆盖测试是白盒测试地重点,一般可使用基本路
《白盒测试法》课件
结论
通过本课件的学习,您将了解到白盒测试法的特点和应用价值,以及如何利用它来提高软件质量和可靠性。
白盒测试法的应用场景
白盒测试法适用于需求明确、具有复杂逻辑结构或高风险的软件项目,可以有效发现隐藏的 代码错误和漏洞。
白盒测试法的测试对象
白盒测试法适用的测试对象
白盒测试法适用于各种类型的软件系统,包括
白盒测试法不适用的测试对象
白盒测试法通常不适用于硬件电路和不需要了解内 部实现的功能简单软件模块。
白盒测试法的测试方法
1
动态测试方法
2
通过运行程序并监视其行为,动态测试 方法可以评估测试用例对程序的覆盖情
况并验证其正确性。
静态分析方法
通过分析代码的控制流、数据流和符号 执行等方法,静态分析可以提供关于程 序结构和行为的静态信息。
《白盒测试法》PPT课件
欢迎参加《白盒测试法》课件!这是一个关于白盒测试法的详细介绍,并包 括其定义、应用场景、测试对象、测试方法、优缺点以及应用示例的内容。
什么是白盒测试法
白盒测试法的定义
白盒测试法是一种软件测试方法,通过了解被测试系统的内部实现和代码结构,设计测试用 例并验证系统的正确性和可靠性。
白盒测试法的优缺点
优点
• 可以发现代码错误和漏洞 • 能提高代码质量和可靠性
缺点
• 需要了解被测试系统的内部实现 • 测试难度大,测试成本高
白盒测试法的应用示例
代码示例分析
通过对一个实际代码段的分析,演示如何使用白盒测试法来设计测试用例和验证代码的正确性。
白盒测试用例设计实例
提供一个详细的实例,展示如何根据白盒测试法的原则和技巧来设计测试用例,并对被测试系统进行全面的测 试。
《白盒测试法》课件
优点
代码覆盖率高
白盒测试法能够深入到代码的 逻辑结构中,对代码进行详细 的覆盖,从而确保测试的全面
性。
测试质量高
由于白盒测试法能够深入了解 代码逻辑,因此能够发现更深 层次的代码错误和缺陷,提高 测试质量。
可针对需求定制
白盒测试法可以根据具体的软 件需求和设计进行定制化的测 试,从而更好地满足测试需求 。
04
白盒测试法的工具
JUnit
JUnit是一个Java语言的单元测试框架,用于编写和执行测试用例,验证代码的正确 性和可靠性。
JUnit提供了一系列的注解和断言方法,方便开发者编写测试代码,并且支持测试套 件和测试运行器的概念,可以方便地组织和管理多个测试用例。
JUnit还支持参数化测试和测试模板,提高了测试的灵活性和可维护性。
02
白盒测试法通常在软件开发过程 中,特别是在编码阶段进行,以 便在早期发现和修复潜在的错误 和缺陷。
白盒测试法的目的
01
02
03
验证代码的正确性
白盒测试法通过检查代码 的逻辑和结构,验证代码 是否符合设计要求,是否 能够正确实现功能。
提高代码质量
通过白盒测试,可以发现 代码中的缺陷和错误,并 及时修复,从而提高代码 的质量和稳定性。
《白盒测试法》ppt课件
目 录
• 白盒测试法简介 • 白盒测试法的主要技术 • 白盒测试法的实施步骤 • 白盒测试法的工具 • 白盒测试法的优缺点 • 白盒测试法的案例分析
01
白盒测试法简介
白盒测试法的定义
01
白盒测试法是一种软件测试方法 ,它要求测试人员对被测软件的 内部结构和工作原理有深入的了 解。
测试到。
循环覆盖
《ch白盒测试》PPT课件
结构性测试
只利用规格说明标识测试用例
只利用程序源代码标识测试用例
如果程序实现了未描述的行为,功 如果已描述的行为未能实现,结构
能测试无法意识到。
性测试无法意识到。
冗余度大,可能会有漏洞
具有覆盖率指标
精选ppt
6
结构测试定义
把测试对象看做一个透明的盒子 白盒测试是根据被测程序的内部结构设计测试
用例并完成测试的一种测试方法 白盒测试或逻辑驱动测试 基于一个应用代码的内部逻辑知识,测试覆盖
分两步走:
预先做准备工作; 举行会议并讨论;
精选ppt
16
代码走查与代码审查的优点
避免了桌面检查的问题; 一旦发现错误,就可以定位错误的位置和
性质,调试所需要化的代价低; 一次能够揭示一批错误,而不是一个错误; 避免了动态调试的一些问题;
精选ppt
17
代码走查与代码审查的优势
能够有效地发现30%~70%的逻辑设计和编码错误; IBM统计使用代码审查的方法,错误的检测效率高达
对用户的提示信息是否简单,清晰,准 确;
代码走查人员必须能够看懂代码及代码 编写人的思路。
精选ppt
31
程序所判断的路径是不是永远也走不到的路 径;
循环中的死循环;
需要预先预留空间的数据容器 (如:一般的 数组在初始化时就已经分配了足够的空间, 即使用不了,它所占用的空间也不能用做它 用);
全部代码、分支、路径和条件
精选ppt
7
结构测试特点
可以构成测试数据使特定程序部分得到测 试
有一定的充分性度量手段 可获得较多工具支持 通常只用于单元测试
精选ppt
8
结构测试的方法
静态测试方法: 程序结构分析
白盒测试PPT演示课件
开始 O
X>=80 and Y>=80
NO B
X+Y>=140 and (x>=90 or y>=90)
YES C
2->T
NO D
3->T
E
X Y 路径
结束
1 90 90 OAE
2 90 30 OBDE
测试用例设计: 3 90 70 OBCE 18
e0
n0
e1
n1 e3
e9
例3-2 e4 n2 e5
x1=-b/(2*a); printf(“one real root\n”);
x1=-b/(2*a); x2=sqrt(-mid)/(2*a); printf(“two complex roots\n”);
printf(“x1=%f,x2=%f\n”,x1,x2); (8)
结束
11
语句覆盖
优点: 直观、简单、易自动化
缺点: 发现错误能力很“弱” 对隐藏的条件和可能到达的隐式逻辑分支,
无法测试
12
语句覆盖
例:if-else结构 如右例所示: 当A=2 B=0 X=3时, 满足语句覆盖要求,但 abd分支未测试。
13
控制流覆盖准则
逻辑覆盖:常见的六种覆盖方法 语句覆盖 判定覆盖(也称分支覆盖) 条件覆盖(也称谓词覆盖) 判定/条件覆盖 条件组合覆盖 路径覆盖
x1=-b/(2*a); x2=sqrt(-mid)/(2*a); printf(“two complex roots\n”);
printf(“x1=%f,x2=%f\n”,x1,x2); (8)
结束
19
判定覆盖
优点: 发现错误能力比语句覆盖强
《软件白盒测试》课件
03 白盒测试的常用技术
代码覆盖技术
添加项标题
语句覆盖:确保每个语句都被执行至少一次
添加项标题
判定覆盖:确保每个判定(if、else、switch等)都被执行至少一次
添加项标题
条件覆盖:确保每个判定中的每个条件都被执行至少一次
添加项标题
路径覆盖:确保程序中的每个路径都被执行至少一次
添加项标题
循环覆盖:确保每个循环都被执行至少一次,包括循环体和循环条件
软件白盒测试
,
汇报人:
目录 /目录
01
点击此处添加 目录标题
04
白盒测试的实 践过程
02
软件白盒测试 概述
05
白盒测试的优 缺点
03
白盒测试的常 用技术
06
白盒测试工具 介绍
01 添加章节标题
02 软件白盒测试概述
定义和概念
软件白盒测试: 一种软件测试方 法,通过分析程 序的内部结构和 逻辑,验证程序 的正确性和完整 性。
感谢您的观看
汇报人:
添加项标题
数据流覆盖:确保程序中的数据流都被执行至少一次,包括输入、输出和内部数据流
路径覆盖技术
定义:通过执行所有可能的路径来测试软件 优点:能够全面覆盖软件的所有路径,提高测试覆盖率 缺点:需要大量的测试数据,可能导致测试时间过长 应用场景:适用于逻辑复杂的软件系统,如操作系统、数据库管理系统等
析和改进
测试用例设计
确定测试目标:明确测试的目的和范 围
设计测试用例:根据测试目标设计测 试用例
执行测试用例:按照测试用例执行测 试
记录测试结果:记录测试过程中的异 常情况和测试结果
分析测试结果:分析测试结果,找出 问题所在
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
10
控制流图: 为了更加突出控 制流的结构,需 要对程序流程图 做些简化,这种 简化了的流程图 称为控制流图。
11
控制流图
控制流图中的符号: ①节点:以标有编号的圆圈 表示,代表程序流程图中矩 形框所表示的处理、菱形表 示的分支及多选择结构点。 ②控制流线:以带箭头的直 线或弧表示,与程序流程图 中的数据流线是一致的,表 明了控制的顺序。控制流线 通常标有名字,如图中所标 的a、b、c等。
测试完成?
是
6
关闭测试任务
1,2 3,4 5 6
18
问题?
n 如果判断中的条件表达式是由一个或多个逻辑 运算符 (OR, AND, NAND, NOR) 连接的复合条件 表达式,则需要改为一系列只有单条件的嵌套的 判断。 例如:
1 if a or b 2x 3 else 4y 对应的逻辑为:
数据流分析
15
如何画控制流图
1. n 在选择或多分支结构中,分支的汇聚处应有 一个汇聚结点。
13 14
21
17
23
2. 选择的行号的代码都是出现了选择分支,循 环操作,判断等, 顺序执行的语句可以合并 。 这也是画控制流图的一般规则。
17
1
编写、修改测试用例
2
进入测试任务
3
执行测试用例
4
输入测试结果
否
5
23
控制流测试基本概念
一、基本概念 有向图 路径 完整路径 简单路径 基本路径 子路径 回路 无回路路径 连接 覆盖
24
有向图:有向图G=(V,E),V是顶点的集合,E是 有向边的集合。e=(T(e),H(e))∈E是一对有 序的邻接节点,T(e)是尾,H(e)是头。如果H(e) =T(e’),则e和e’是临界边。H(e)是T(e)的后继 节点,T(e)是H(e)的前驱节点,indegree(n)和 outdegree(n)分别是节点n的入度和出度。
引用了Y和Z。
3. 输入语句 READ X
定义了X。 4. 输出语句
WRITE X 引用了X。
22
数据流分析
错误
异常
程序中有两个错误: ①语句2使用了变量W,而在此之前并未对其定义。 ②语句5、6使用变量V,这在第一次执行循环时也未对其定义过。
程序中还包含两个异常: ③语句6对Z的定义从未使用过。 ④语句8对W的定义也从未使用过。
12
控制流图矩阵: 为便于表示和处理控制流图,可以把控制流图 表示成矩阵的形式,称为控制流图矩阵。 控制流矩阵:nxn, n为控制流图中节点数量。
13
控制流图矩阵
14
[例5-2] 程序中的判断句是多个条件语句组合的情况。画出程序 的控制流图。
10 Class test1 11 { 12 Public me(){ 13 Int t1; 14 IF ( a>10 or b<=20) 15 THEN 16 { 17 T1 = a – b ; 18 } 19 ELSE 20 { 21 T1 = a + b; } 23 system.out.println(“退出”) ;} 24 }
域测试、程序变异。
7
逻辑覆盖法
基于覆盖的测试技术: 白盒测试要求对被测程序的结构特性(程 序结构)做到一定程度的覆盖,并以软件 中的某类成分是否都已经得到测试为准则 来判断软件测试的充分性。
程序流程分析
程序结构分析是白盒测试的主要依据。 控制流分析 数据流分析
9
控制流分析
程序流程图: 程序流程图是一种 程序控制结构的图形 表示方式。在程序流 程图上的处理框内常 常标明了处理要求或 条件。
白盒测试
目·录
白盒测试基本概念 控制流分析 数据流分析 其他白盒分析方法
白盒测试概念
白盒测试(White Box Testing , Glass Box Testing) 又称为结构测试、逻辑驱动测试或基于程序的测试。 一般用来分析程序的内部结构。
白盒测试通过检查软件内部的逻辑结构,对软
件 方中设的立逻 检辑 查路 点径,进检应行查用覆程盖序程测的序试状;态在,程以序 确不 定同 实地 际
运行状态与预期状态是否一致。
3
测试人员把被测程序当作一个透明盒子。
4
白盒测试的特点:
依据软件设计说明书进行测试; 对程序内部细节的严密检验; 针对特定条件设计测试用例; 对软件的逻辑路径进行覆盖测试。
20
两个概念:
变量定义:如果程序中某一语句执行时能 够改变某个变量V的值,则称V是被该语句 定义的。
变量引用:如果程序中某一语句的执行引 用了内存中变量V的值,则说该语句引用 变量V。
21
数据流分析
例如:
1.语句 X:=Y十Z
定义了X,引用了Y和Z; 2.语句
if Y>Z then goto exit
其中e0是程序的源节点,ek是程序的汇 节点
27
简单路径:路径上所有的节点都是不同的, 称为简单路径。
e6
e2
e1
e3 e5
e7
e4
28
基本路径:任意有向边都在路径中最多出现 一次的路径。
e6
e2
e1
e3 e5
e7
e4
29
子路径:路径A=eueu+1…et是 B=e1e2…eq的子路径,如果满足1<=u <=t <=q。
尾节点
头节点
e6
e2
e1
e3 e5
e7
e4
路径覆盖关系举例 25
路径:如果P=e1e2…eq,且满足T(ei+1)=H (ei),则P为路径,q为路径长度。
注意:路径中前一个边的下标未必小于后一个
e6
e2
e1
e3 e5
e7
e4
26
完整路径:P是一条路径,且满足e1=e0, eq=ek,则P称为完整路径。
什么是数据流分析?
数在据ห้องสมุดไป่ตู้程分序析测最初试是中随,着找编译出系引统用要生未成定有义效变的目 标量码而等出类现型的,错这误类是方法很主重要要用的于代。码因优为化。这 用数常,据用常流以分是查析常找方如见法引程在用确序未认错定系义误统变的中量表也等得程现到序形成错式功误,的,运以 及如用来错查拼找名对未字曾、使名用字的变混量淆再或次赋是值丢等失数了据流 异语常的句情。况。
5
白盒测试的实施过程:
1.测试计划阶段: 2.测试设计阶段:
依据程序设计说明书,按照一定规范化的 方法进行软件结构划分和设计测试用例。 3.测试执行阶段: 4.测试总结阶段:
6
白盒测试方法
静态测试方法:代码检查法、静态结构分 析法、静态质量度量法
动态测试方法:逻辑覆盖法、基本路径测 试法、Z路径覆盖
控制流图: 为了更加突出控 制流的结构,需 要对程序流程图 做些简化,这种 简化了的流程图 称为控制流图。
11
控制流图
控制流图中的符号: ①节点:以标有编号的圆圈 表示,代表程序流程图中矩 形框所表示的处理、菱形表 示的分支及多选择结构点。 ②控制流线:以带箭头的直 线或弧表示,与程序流程图 中的数据流线是一致的,表 明了控制的顺序。控制流线 通常标有名字,如图中所标 的a、b、c等。
测试完成?
是
6
关闭测试任务
1,2 3,4 5 6
18
问题?
n 如果判断中的条件表达式是由一个或多个逻辑 运算符 (OR, AND, NAND, NOR) 连接的复合条件 表达式,则需要改为一系列只有单条件的嵌套的 判断。 例如:
1 if a or b 2x 3 else 4y 对应的逻辑为:
数据流分析
15
如何画控制流图
1. n 在选择或多分支结构中,分支的汇聚处应有 一个汇聚结点。
13 14
21
17
23
2. 选择的行号的代码都是出现了选择分支,循 环操作,判断等, 顺序执行的语句可以合并 。 这也是画控制流图的一般规则。
17
1
编写、修改测试用例
2
进入测试任务
3
执行测试用例
4
输入测试结果
否
5
23
控制流测试基本概念
一、基本概念 有向图 路径 完整路径 简单路径 基本路径 子路径 回路 无回路路径 连接 覆盖
24
有向图:有向图G=(V,E),V是顶点的集合,E是 有向边的集合。e=(T(e),H(e))∈E是一对有 序的邻接节点,T(e)是尾,H(e)是头。如果H(e) =T(e’),则e和e’是临界边。H(e)是T(e)的后继 节点,T(e)是H(e)的前驱节点,indegree(n)和 outdegree(n)分别是节点n的入度和出度。
引用了Y和Z。
3. 输入语句 READ X
定义了X。 4. 输出语句
WRITE X 引用了X。
22
数据流分析
错误
异常
程序中有两个错误: ①语句2使用了变量W,而在此之前并未对其定义。 ②语句5、6使用变量V,这在第一次执行循环时也未对其定义过。
程序中还包含两个异常: ③语句6对Z的定义从未使用过。 ④语句8对W的定义也从未使用过。
12
控制流图矩阵: 为便于表示和处理控制流图,可以把控制流图 表示成矩阵的形式,称为控制流图矩阵。 控制流矩阵:nxn, n为控制流图中节点数量。
13
控制流图矩阵
14
[例5-2] 程序中的判断句是多个条件语句组合的情况。画出程序 的控制流图。
10 Class test1 11 { 12 Public me(){ 13 Int t1; 14 IF ( a>10 or b<=20) 15 THEN 16 { 17 T1 = a – b ; 18 } 19 ELSE 20 { 21 T1 = a + b; } 23 system.out.println(“退出”) ;} 24 }
域测试、程序变异。
7
逻辑覆盖法
基于覆盖的测试技术: 白盒测试要求对被测程序的结构特性(程 序结构)做到一定程度的覆盖,并以软件 中的某类成分是否都已经得到测试为准则 来判断软件测试的充分性。
程序流程分析
程序结构分析是白盒测试的主要依据。 控制流分析 数据流分析
9
控制流分析
程序流程图: 程序流程图是一种 程序控制结构的图形 表示方式。在程序流 程图上的处理框内常 常标明了处理要求或 条件。
白盒测试
目·录
白盒测试基本概念 控制流分析 数据流分析 其他白盒分析方法
白盒测试概念
白盒测试(White Box Testing , Glass Box Testing) 又称为结构测试、逻辑驱动测试或基于程序的测试。 一般用来分析程序的内部结构。
白盒测试通过检查软件内部的逻辑结构,对软
件 方中设的立逻 检辑 查路 点径,进检应行查用覆程盖序程测的序试状;态在,程以序 确不 定同 实地 际
运行状态与预期状态是否一致。
3
测试人员把被测程序当作一个透明盒子。
4
白盒测试的特点:
依据软件设计说明书进行测试; 对程序内部细节的严密检验; 针对特定条件设计测试用例; 对软件的逻辑路径进行覆盖测试。
20
两个概念:
变量定义:如果程序中某一语句执行时能 够改变某个变量V的值,则称V是被该语句 定义的。
变量引用:如果程序中某一语句的执行引 用了内存中变量V的值,则说该语句引用 变量V。
21
数据流分析
例如:
1.语句 X:=Y十Z
定义了X,引用了Y和Z; 2.语句
if Y>Z then goto exit
其中e0是程序的源节点,ek是程序的汇 节点
27
简单路径:路径上所有的节点都是不同的, 称为简单路径。
e6
e2
e1
e3 e5
e7
e4
28
基本路径:任意有向边都在路径中最多出现 一次的路径。
e6
e2
e1
e3 e5
e7
e4
29
子路径:路径A=eueu+1…et是 B=e1e2…eq的子路径,如果满足1<=u <=t <=q。
尾节点
头节点
e6
e2
e1
e3 e5
e7
e4
路径覆盖关系举例 25
路径:如果P=e1e2…eq,且满足T(ei+1)=H (ei),则P为路径,q为路径长度。
注意:路径中前一个边的下标未必小于后一个
e6
e2
e1
e3 e5
e7
e4
26
完整路径:P是一条路径,且满足e1=e0, eq=ek,则P称为完整路径。
什么是数据流分析?
数在据ห้องสมุดไป่ตู้程分序析测最初试是中随,着找编译出系引统用要生未成定有义效变的目 标量码而等出类现型的,错这误类是方法很主重要要用的于代。码因优为化。这 用数常,据用常流以分是查析常找方如见法引程在用确序未认错定系义误统变的中量表也等得程现到序形成错式功误,的,运以 及如用来错查拼找名对未字曾、使名用字的变混量淆再或次赋是值丢等失数了据流 异语常的句情。况。
5
白盒测试的实施过程:
1.测试计划阶段: 2.测试设计阶段:
依据程序设计说明书,按照一定规范化的 方法进行软件结构划分和设计测试用例。 3.测试执行阶段: 4.测试总结阶段:
6
白盒测试方法
静态测试方法:代码检查法、静态结构分 析法、静态质量度量法
动态测试方法:逻辑覆盖法、基本路径测 试法、Z路径覆盖