您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 白盒测试静态分析参考
白盒测试一般会用到静态分析和动态分析两类技术。常用的有:•静态分析:控制流分析、数据流分析、信息流分析等•动态分析:逻辑覆盖测试(分支测试、路径测试等)、程序插装等控制流以下是几个相关概念•程序元素:一个程序元素通常是一个条件,一个简单的语句或者一块语句(多个连续语句)•控制流关系:一个程序的控制流关系(ControlFlowRelation)叙述了程序元素和它们执行的次序之间的联系•控制流图:对应于控制流关系的图被称为控制流图•控制流矩阵:由控制流图得到,反映相邻程序元素之间的先后顺序关系控制流分析步骤•确定所有程序元素•根据程序元素之间的相互关系得到控制流图•将控制流图转换成控制流矩阵•通过数据结构的形式把控制流矩阵表示出来•借助算法对控制流进行分析,找出存在的问题控制流矩阵:1:语句有先后顺序关系,0:语句无先后顺序关系1234562131411516171二维数组: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、变量定义但未被引用•根据分析结果对代码进行修正和优化问题:节点2:W未定义被引用节点5:V第一次未定义被引用节点6:V第一次未定义被引用,Z定义未被引用节点8:W定义未被引用信息流分析信息流分析可以导出程序的信息流关系,为软件开发和确认提供了十分有益的工具。信息流分析法可以通过三个关系表给出,这三个关系为:•输入变量和语句关系:输入变量直接或间接影响语句的执行•语句和输出变量关系:语句执行直接或间接影响变量的输出•输入和输出变量关系:输入变量直接或间接影响输出变量信息流分析步骤•根据代码得到三个关系表:输入变量和语句关系表、语句和输出变量关系表、输入和输出变量关系表•分析输入变量和语句关系表,查看对未定义的变量所有可能的引用,根据语句的执行情况来判断是哪个输入变量未定义•分析语句和输出变量关系表,查看所有可能会影响输出变量取值的语句,根据语句的执行情况来判断是哪句语句导致输出变量错误•分析输入和输出变量关系表,查看所有可能影响输出变量取值的输入变量,判断输9123101165784节点被定义变量被引用变量1X,Y,Z2XW,X3X,Y4Y,Z5YV,Y6ZV,Z7VX8WY9ZV10ZZ11Z出变量会不会由一些非法的变量导出12345beginQ:=0;R:=M;whileR=NdobeginQ:=Q+1;R:=R-Nendend整除算法整除算法中输入值、语句与输出值的关系QR1√2√√3√√4√5√√QRM√√N√√MN12√3√√4√√5√√(a)(b)(c)
本文标题:白盒测试静态分析参考
链接地址:https://www.777doc.com/doc-4772142 .html