- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.1.4静态分析技术 什么是静态分析? 静态分析是借助工具进行白盒测试的一种技术。静态分析并不要求在计算机上执行所测试的程序,而是通过运行静态分析工具对程序进行分析和测试。 3.1.4静态分析技术 静态分析的目的: 静态分析的结果可以对需求和设计文档以及编码进行检查,主要进行程序逻辑和编码检查、一致性检查、接口分析、I/O规格说明分析、数据流、变量类型检查和模块分析等。静态分析结果可以作为动态测试和其他测试的必要准备。 静态分析方法: 1.生成引用表 2.程序错误分析 3.接口分析 1.生成引用表 静态分析后,可以生成各种引用表: 循环层次表; 变量交叉引用表; 标号交叉引用表; 子程序引用表; 等价表; 常数表; 操作符统计表; 操作数统计表。 生成引用表的目的: 1.直接从表中查出说明、使用错误。 例如循环层次表、变量交叉引用表、标号交叉引用表。 2.为用户提供辅助信息。 例如子程序引用表、等价表、常数表。 3.用来做错误预测和程序复杂度的计算。 例如操作符和操作数的统计表。 (1) 标号交叉引用表: 列出各模块出现的全部标号。 其顺序可以是按标号出现的先后顺序,也可以按字典顺序。 在表中标出标号的属性:已说明,未说明、已使用、未使用。 在表中还可以包括模块外的全局标号、计算标号。 (2)变量交叉引用表: 变量交叉引用表也称变量定义与引用表。 在表中,变量的顺序可以是按变量出现的先后顺序,也可以按字典顺序,还可以按他们的类型排序。 表中应标明各个变量的属性:已说明、未说明、私有/公有说明,以及类型和使用情况。 (3)子程序、宏和函数表: 在表中列出各个子程序、宏和函数的属性,包括: 已定义、未定义、定义类型; 已引用、未应用、引用次数; 输入参数的个数、类型、顺序; 输出参数的个数、类型、顺序。 (4)等价表: 在表中列出在等价语句或等值语句中出现的全部变量和标号。 (5)常数表: 在表中列出全部的数字常数和字符常数,并指出他们在哪些语句中首先被定义。 2.程序错误分析 程序错误分析目的: 用于确定在源程序中是否有某类错误或危险结构。 (1) 变量类型和单位分析 (2) 引用分析 (3) 表达式分析 (1)变量类型和单位分析 : 为了强化对源程序中数据的检查,在程序设计语言中扩充一些新的数据类型,例如,仅能在数组中使用的“下标”类型及在循环语句中当作控制变量使用的“计数器”类型。这样就可以静态预处理程序,分析程序中的类型错误。 (2)引用分析 : 在静态错误分析中,最广泛使用的技术就是发现引用异常。 什么是引用异常? 如果沿着程序的控制路径,变量在赋值以后未被引用,这就发生了引用异常。 (2)引用分析 : 如何分析引用异常? 为了检测引用异常,我们需要检查通过程序的每一条路经。可以用类似深度优先算法的方法来遍历程序流程中的每一条路径。 建立引用异常的探测工具。这种工具包括两个表:定义表和引用表。每张表中都包含一组变量名。未引用的表中包括已被赋值,但未被引用的一些变量。 (2)表达式分析 对表达式进行分析,可以发现和纠正在表达式中出现的错误。由于在表达式中 不正确使用括号造成的错误。 数组下标越界造成的错误。 除数为零造成的错误。 对负数开平方。 最复杂的一类表达式分析是对浮点数计算的误差进行检查。 3. 接口一致性分析 接口一致性分析的目的: 检查模块之间接口的一致性和模块与外部数据库之间接口的一致性。 3. 接口一致性分析 接口一致性分析的内容: 检查形参与实参在类型、数量、维数、顺序、使用上的一致性; 检查全局变量和公共数据区在使用上的一致性。 3.1.5动态测试技术 什么是动态测试? 动态测试也是借助工具进行白盒测试的一种技术。动态测试就是通过运行动态测试工具,选择适当的测试用例,实际运行被测程序,比较实际运行结果和预期结果,以便找出错误。 3.1.5动态测试技术 动态测试的内容: 语句覆盖测试; 分支覆盖测试; 路径覆盖测试。 动态测试工具功能 动态测试工具功能应该能使被测程序有控制地运行,自动地监视、记录、统计程序的运行情况。 动态测试工具实现方法 在所测试的程序中插入检测各语句的执行次数、各分支点、各路径的探针,以便统计各种覆盖情况。 重新对语句进行编号,以便能标识各个分支和路径。 统计各个语句执行的CPU时间,以便对花费时间最多的语句或程序段进行优化。
原创力文档


文档评论(0)