软硬件综合系统软件需求建模及可靠性综合试验、分析、评价技术
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.1 静态测试技术

静态测试是不运行程序而寻找程序中可能存在的缺陷或评估程序的过程。静态测试可以由人工进行,也可以借助软件工具自动进行。静态测试具有以下特点。

第一,静态测试不必运行程序。

第二,静态测试可以由人工进行,充分发挥人的逻辑思维优势。由人的思维局限及交流障碍造成的逻辑错误,由人通过逻辑思维去解决是一种非常有效的办法。特别是在充分利用人的逻辑思维优势互补的条件时,检测出缺陷的水平很高。

第三,静态测试实施无需特别条件,容易开展。

静态测试技术包括主要由人工进行的代码审查、代码走查、桌面检查,以及主要由软件工具自动进行的静态分析。如果从广义上来理解静态测试技术,那么它还包括软件需求分析和设计阶段的技术评审。

代码审查(Code Inspection)和代码走查(Code Walkthrough)是由若干个程序员与测试员组成一个小组,集体阅读并讨论程序或用大脑“执行”并检查程序的过程。代码审查和代码走查分两步完成:首先做一定的准备工作,然后举行会议进行讨论。会议的主题是发现缺陷而不是修正缺陷。

桌面检查是指由程序员阅读自己所编写的程序,这是一种很陈旧的技术。它有几方面的缺点:第一,出于心理上的原因,程序员容易偏爱自己所编写的程序,没有发现缺陷的欲望(这和已经知道程序有缺陷从而读程序、找缺陷极为不同);第二,由于人的思维定式,有些习惯性的问题自己不易发现;第三,如果从根本上对功能理解错了,自己不易修正。所以桌面检查效率不高,可用于个人自行检查程序中明显的疏漏或笔误。

代码审查和代码走查不仅比桌面检查优越得多,而且与动态测试技术相比也具有其自身优势:第一,使用这种技术测试,一旦发现缺陷,就知道缺陷的性质和位置,因而调试所付出的代价低;第二,使用这种技术一次能揭示一批缺陷,而不是一次只揭示一种缺陷。动态测试技术通常仅用于揭示发生缺陷的征兆。

经验表明,通过代码审查和代码走查能够有效发现30%~70%的逻辑设计和编码缺陷。IBM的研究表明,使用代码审查技术,缺陷的检测率高达80%。Myers的研究发现,代码审查和代码走查平均可查出全部缺陷的38%。此外,有研究表明,对某类缺陷使用代码审查和代码走查技术比使用计算机测试技术更为有效,而对另一类缺陷情况正好相反。由此可见,代码审查和代码走查技术与计算机测试技术是互补的,缺少任何一种都会影响缺陷的检测率。