1.5.4. 对比测试法
在某些应用软件中,可靠性是至关重要的。
用到的软件和硬件可能有冗余。
因为独立的开发队伍发展软件的独立版本,冗余软件和硬件就此产生。
使用相同的测试数据都测试软件每个版本,以确保所有版本的输出结果相同。
并行运行所有版本以得到实时比对结果。
即使最终的系统只会使用一个版本,对于一个关键应用可发展多个独立版本和使用对比测试法或反馈试验方法。
当不同版本的输入结果有不同时,每个版本都要检测以确定是否有缺陷。
对比测试方法不能发现规格设计上的错误。
1.6. 静态程序分析
1.6.1. 代码审查
软件质量保证已经覆盖这部分的工作。
1.6.2. 数学证明
如果编程语言的语义具有形式化的定义,程序可以看作是一个数学描述的集合。
可以尝试建立一套数学证明来验证在程序是正确地按照规格说明来执行的。
如果证明成立,这个程序通过了检查,而确认测试则不需要了。
验证程序正确性的方法有很多种,在这我们只考虑一种公认的方法:
(1)假定在点P(1),…,P(n)可以提出关于程序变量及它们之间关系的判断a(1)…,a(n)。
(2)判断a(1)是关于程序输入变量的,判断a(n)是关于程序输出变量的。
(3)令1≤k≤n-1,需要证明p(k)和p(k+1)之间的数学描述使判断a(k)转变为a(k+1)。
假设判断a(1)和a(n)为真,这一证明序列可以表明此程序段是正确的,如果程序正常结束,证明也就完成了。
1.6.3. 静态程序分析
静态分析工具可以扫描代码以检测错误。
不需要执行代码。
这种分析工具对于那些错误出现拼写错误的编程语言最适用。
可检查出:
1、语法
2、不可执行代码
3、循环中的无限制分支
4、未声明变量
5、未初始化变量
6、参数类型不匹配
7、没被调用的函数和过程
8、变量未被初始化就被使用
9、函数的输出结果不被使用
10、可能的数组边界错误
11、指针误用
1.7. 自动化测试工具
以下一系列的工具,可适用于程序员:
1、静态分析器
2、代码审查工具
3、判断处理器
4、测试文件生成器
5、测试数据生成器
6、测试校验器
7、输出比较器
到目前为止,我们已经学习测试的具体组成。
那么,这些组成是怎样组织起来的呢?
版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像。51testing软件测试网欢迎与业内同行进行有益的合作和交流,如果有任何有关内容方面的合作事宜,请联系我们。