- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
白盒测试方法
白盒测试方法
博为峰软件制作BWFSOFTWARE
博为峰软件制作
BWFSOFTWARE
白盒测试方法
第一章程序结构分析
一、控制流分析二、数据流分析三、信息流分析
第二章逻辑覆盖
一、语句覆盖二、判定覆盖三、条件覆盖
四、判定-条件覆盖五、路径覆盖
六、最少测试用例数计算七、测试覆盖准则
第三章程序插装
一、方法简介二、断言语句
第四章其他白盒测试方法简介一、域测试
二、符号测试三、Z路径覆盖四、程序变异
白盒测试方法
在软件测试中,白盒测试是根据被测程序的内部结构设计测试用例的一种测试方法,具体的白盒测试方法有程序控制流分析、数据流分析、逻辑覆盖、域测试、符号测试、路径分析、程序插装及程序变异等。其中多数方法比较成熟,也有较高的实用价值,个别的方法仍有些问题没有得到圆满地解决。例如,符号测试和路径测试的分析方法都是很重要的,但在程序分支过多及程序路径过多时,已有的方法将会显示出它们的局限性。本文主要介绍程序结构分析、逻辑覆盖和程序插装,对其他的白盒测试方法只作简单介绍。
第一章程序结构分析
程序的结构形式是白盒测试的主要依据。本章将从控制流分析、数据流分析和信息流分析的不同方面讨论几种机械性的方法分析程序结构。自然,我们的目的总是要找到程序中隐藏的各种错误。
一、控制流分析
由于非结构化程序会给测试、排错和程序的维护带来许多不必要的困难,人们有理由要求写出的程序是结构良好的。70年代以来,结构化程序的概念逐渐为人们普遍接受。体现这一要求对于若干新的语言,如Pascal、C等并不困难,因为它们都具有反映基本控制结构的相应控制语句。但对于早期开发的语言来说,要作到这一点,程序编写人员需要特别注意,不应忽视程序结构化的要求。使用汇编语言编写程序,要注意这个问题的道理就更为明显了。
正是由于这个原因,系统地检查程序的控制结构成为十分有意义的工作。
1、控制流图
程序流程图(flowchart)又称框图,也许是人们最熟悉,也是最容易接受的一种程序控制结构的图形表示了。在这种图上的框内常常标明了处理要求或条件,这些在做路径分析时是不重要的。为了更加突出控制流的结构,需要对程序流程图做些简化。在图1中给出了简化的例子。其中(a)是一个含有两出口判断和循环的程序流程图,我们把它简化成(b)的形式,称这种简化了的流程图为控制流图(Control-flowgraph)。
在控制流图中只有两种图形符号,它们是:
①节点:以标有编号的圆圈表示。它代表了程序流程图中矩形框所表示的处理、菱形表示的两至多出口判断以及两至多条流线相交的汇合点。
②控制流线或弧:以箭头表示。它与程序流程图中的流线是一致的,表明了控制的顺序。为讨论方便,控制流线通常标有名字,如图中所标的a、b、c等。
为便于在机器上表示和处理控制流图,我们可以把它表示成矩阵的形式,称为控制流图矩阵(Control-flowgraphmatrix)。图5.2表示了图5.1的控制流图矩阵。这个矩阵有5行5列,是由该控制图中含有5个节点决定的。矩阵中6个元素a、b、c、d、e和f的位置决定于它们所联接节点的号码。例如,弧d在矩阵中处于第3行第4列,那是因为它在控制流图中联接了节点3至节点4。这里必须注意方向。图中节点4至节点3是没有弧的,矩阵中第4行第3列也就没有元素。
2531
2
5
3
1
1
a
2
c
b
3
d
4
e
5
a
c
b
d
e
f
(a)程序流程图 (b)控制流图
图1程序流程图和控制流图 图2控制流图矩阵
2、程序结构的基本要求
我们对于程序结构提出以下4点基本要求,这些要求是,写出的程序不应包含:
①转向并不存在的标号;
②没有用的语句标号;
③从程序入口进入后无法达到的语句;
④不能达到停机语句的语句。
显然,提出这些要求是合理的。在编写程序时稍加注意,做到这几点也是很容易的。这里我们更为关心的是如何进行检测,把以上4种问题从程序中找出来。目前对这四种情况的检测主要通过编译器和程序分析工具来实现。
二、数据流分析
数据流分析最初是随着编译系统要生成有效的目标码而出现的,这类方法主要用于代码优化。近年来数据流分析方法在确认系统中也得到成功的运用,用以查找如引用未定义变量等程序错误。也可用来查找对以前未曾使用的变量再次赋值等数据流异常的情况。找出这些错误是很重要的,因为这常常是常见程序错误的表现形式,如错拼名字、名字混淆或是丢失了语句。这里将首先说明数据流分析的原理,然后指明它可揭示的程序错误。
1、数据流问题
如果程序中某一语句执行时能改变某程序变量V的值,则称V是被该语句定义的。如果一语句的执行引用了内存中变量V的值,则说该语句引用变量V。例如,语句
X:=Y+Z
定义了X,引用了Y和
原创力文档


文档评论(0)