静态测试

静态测试

 

1.1 静态分析技术

  静态分析是一种不通过执行程序而进行测试的技术。

  静态分析的关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义。它瞄准的是纠正软件系统在描述,表示和规格上的错误,因此是任何进一步测试执行的前提。静态分析覆盖程序语法的词汇分析,并研究和检查独立语句的结构和使用。

  

  主要有三种不同的程序测试可能性:

  1.程序内部检查完整性和一致性

  2.考虑预定义规则

  3.把程序和其相应的规格或文档进行比较

 

  虽然有些软件工程师认为静态分析的特点是可以被自动执行,例如在一些特定工具的辅助下完成,像语法分析器,数据流分析器等,但是用于测试的手工技术同样可以不需要程序的执行。图1例示了最重要的静态分析技术结构,这些技术在1975年到1994年的软件工程协会的文献中可以找到。

 

图1  静态分析技术结构

 

  语法分析器是一个基本的自动化静态分析工具,它把程序/文档文本分解成独立的语句。当在内部检查程序/文本的时候,语句的一致性被进行了检查。

 

  当对两个文本在不同的语义级别上执行的时候,例如一个程序针对其规格文档,那么程序的完整性和正确性能够被评价。这个技术瞄准的是检测规格到程序实现之间转换上的问题,这被称之为静态验证。验证器需要有形式化的规格和规格的形式化定义,静态验证比较程序提供的实际值和在规格文档中被预定义的目标值。然而,它不提供任何手段用于检查程序是否实际解决了给出的问题。静态验证过程的结果被描述成布尔语句,即一个语句要么是真,要么是假。静态验证的明显有点是它引导向目标和正确结果发展。但是,由于形式化规格是非常困难和耗时的,因此它一般用于对那些要求高可靠性的软件才进行。

 

  另外一个静态分析技术是符号执行器。它在符号短语中分析一个程序在给定的路径上做了些什么事情。它模拟程序的执行,计算在程序不同位置上变量的值。符号执行器非常适合用于数学算法的分析。由于用于符号执行的程序开发是非常昂贵的,因此它一般用于测试数学程序,这里成本/收益是可接受的。

 

  在静态分析技术中的一个最重要是手工技术是软件检视。

  检视的技术最初可以追溯到Fagan,他认为在软件开发生命周期的多个阶段必须执行这个活动来改进软件质量。在检视中,代码或者工作产品的文档被使用预先定义好的检视规则进行检查。检视过程一般是根据检查表进行的。

 

  走读是一个类似的同行评审过程,包括了程序的作者,测试人员,一个秘书和一个协调员。走读的参与者模拟计算机创建小部分数量的用例。它的目标是对源代码背后的逻辑和基本假设进行质疑,尤其是嵌入式程序中的接口。

 

posted @ 2016-07-10 12:47  Coffee_zq  阅读(1865)  评论(0编辑  收藏  举报