白盒测试静态分析参考.docx

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

白盒测试一般会用到静态分析和动态分析两类技术。常用的有:

静态分析:控制流分析、数据流分析、信息流分析等

动态分析:逻辑覆盖测试(分支测试、路径测试等)、程序插装等

控制流

以下是几个相关概念

程序元素:一个程序元素通常是一个条件,一个简单的语句或者一块语句(多个连续语句)

控制流关系:一个程序的控制流关系(ControlFlowRelation)叙述了程序元素和它们执行的次序之间的联系

控制流图:对应于控制流关系的图被称为控制流图

控制流矩阵:由控制流图得到,反映相邻程序元素之间的先后顺序关系

控制流分析步骤

确定所有程序元素

根据程序元素之间的相互关系得到控制流图

将控制流图转换成控制流矩阵

通过数据结构的形式把控制流矩阵表示出来

借助算法对控制流进行分析,找出存在的问题

控制流矩阵:1:语句有先后顺序关系,0:语句无先后顺序关系

1

1

1

2

3 4 5 6

2

3

1

4

1

1

5

1

6

1

7

1

二维数组:A[6][6]

A[0][0]=A[1][1]=A[2][2]=A[3][3]=A[4][4]=A[3][5]=A[5][2]=1,其他为0

控制流分析能发现的问题

通过对控制流信息进行分析,确保写出的程序不应包含:

转向并不存在的标号;

没有用的语句标号;

从程序入口进入后无法达到的语句;

不能达到停机语句的语句。

数据流

数据流分析最初是随着编译系统要生成有效的目标码而出现的,这类方法主要用于代码优化。数据流分析法关键是数据的定义和引用。

数据的定义:如果程序中某一语句执行时能改变某程序变量V的值,则称V是被该语句定义的。

数据的引用:如果一语句的执行引用了内存中变量V的值,则说该语句引用变量V。

数据流分析步骤

根据代码得到数据流表

分析数据流表找到以下两种错误:

1、变量未定义但被引用

2、变量定义但未被引用

根据分析结果对代码进行修正和优化

1234

1

2

3

4

5

6

7

8

9

节点

被定义变量

被引用变量

1

X,Y,Z

2

X

W,X

3

X,Y

4

Y,Z

5

Y

V,Y

6

Z

V,Z

7

V

X

8

W

Y

9

Z

V

10

Z

Z

11

Z

11

问题:

节点2:W未定义被引用

节点5:V第一次未定义被引用

节点6:V第一次未定义被引用,Z定义未被引用节点8:W定义未被引用

信息流分析

信息流分析可以导出程序的信息流关系,为软件开发和确认提供了十分有益的工具。信息流分析法可以通过三个关系表给出,这三个关系为:

输入变量和语句关系:输入变量直接或间接影响语句的执行

语句和输出变量关系:语句执行直接或间接影响变量的输出

输入和输出变量关系:输入变量直接或间接影响输出变量

信息流分析步骤

根据代码得到三个关系表:输入变量和语句关系表、语句和输出变量关系表、输入和输出变量关系表

分析输入变量和语句关系表,查看对未定义的变量所有可能的引用,根据语句的执行情况来判断是哪个输入变量未定义

分析语句和输出变量关系表,查看所有可能会影响输出变量取值的语句,根据语句的执行情况来判断是哪句语句导致输出变量错误

分析输入和输出变量关系表,查看所有可能影响输出变量取值的输入变量,判断输

整除算法出变量会不会由一些非法的变量导出

整除算法

beginMNQRQR12

begin

M

N

Q

R

Q

R

1

2

3

Q:=0;

R:=M;

whileR=Ndobegin

1

2

1

2

MN

4

5

Q:=Q+1;R:=R-N

end

3

4

3

4

end

(b) (c)

整除算法中输入值、语句与输出值的关系

文档评论(0)

tianya189 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档