Page 79 - 计算机应用软件开发技术研究
P. 79

第二章  软件开发研究



             明”,所以使用黑盒法设计的测试完全是根据程序的功能说明来设计的。
                 例如用白盒法,则需要了解程序内部的结构,此时的测试是根据程序的内部
             逻辑来设计的,如果想用白盒法发现程序中所有的错误,则必须使程序中每种可

             能的路径都执行一次。实际上这是不可能的,即使测遍所有的路径,仍不一定能
             保证程序符合相应的功能要求。关于黑盒测试和白盒测试下面还将详细介绍。
                 静态测试一般是指人工评审软件文档或程序,借以发现其中的错误,由于
             被评审的文档或程序不必运行,所以称为是静态的。人工评审的手段虽然比较简

             单,而事实证明这是一个相当有效的检验手段。由于评审人的能力所限,静态测
             试显然不可能发现所有的错误。
                 动态测试和静态测试只能发现错误而不能证明程序中不存在错误,只有借助
             于程序正确性证明才有可能证明程序的正确性。程序证明最常用的方法是归纳断

             言法,它对程序提出一组命题,如能用数学方法证明这些命题成立,就可保证程
             序中不存在错误,即它对所有的输入都会产生预期的正确输出。但目前正确性证
             明尚处于理论研究阶段,其技术尚不成熟,并未达到实用化阶段。因此前两种测
             试手段仍然是有效的手段。

                 (一)静态测试与动态测试
                 1.静态测试
                 静态测试包括代码检查、静态结构分析、代码质量度量等。静态测试可以由
             人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行。经验表

             明,使用人工测试能够有效地发现 30% 到 70% 的逻辑设计和编码错误。
                 代码检查主要检查代码和设计的一致性,包括代码的逻辑表达的正确性,
             代码结构的合理性等方面。这项工作可以发现违背程序编写标准的问题,程序中
             不安全、不明确和模糊的部分,找出程序中不可移植部分、违背程序编程风格的

             问题,包括变量检查、命名和类型审查、程序逻辑审查、程序语法检查和程序结
             构检查等内容。代码检查包括代码审查、代码走查、桌面检查、静态分析等具体
             方式。
                 代码审查:小组成员集体阅读、讨论检查代码。

                 代码走查:小组成员通过用“脑”研究、执行程序来检查代码。
                 桌面检查:由程序员自己检查自己编写的程序。程序员在程序通过编译之
             后,进行单元测试之前,对源代码进行分析、检验,并补充相关文档,目的是发



                                                                                  ·67·
   74   75   76   77   78   79   80   81   82   83   84