|
|
|
|
移动端

1.5.5 评价被测软件运行结果的正确性

《软件测试基础教程》第1章软件测试的基本知识,本章作为一个导引,其目的在于让读者熟悉与软件测试相关的基本概念,建立起全书的框架。在本书后续章节中将要详细阐述的问题,首先在这里被提了出来。读完这章之后,读者就能够在软件测试和软件质量方面提出一些有意义的问题。本节为大家介绍评价被测软件运行结果的正确性。

作者:王峰/郭长国/陈振华 等译来源:机械工业出版社|2011-09-16 21:07

技术沙龙 | 6月30日与多位专家探讨技术高速发展下如何应对运维新挑战!


1.5.5 评价被测软件运行结果的正确性

软件测试的一个重国步骤,就是测试人员判断观察到的被测软件运行结果是否正确。这个步骤又可进一步分为两个小步骤。第一,观察并记录被测软件的运行结果。第二,分析观察到的被测软件运行结果,判断其是否正确。对于小型程序,如例1.3中的程序max,这些步骤都不难,但对于大型分布式软件系统,这些步骤就特别复杂。由一个被称作测试预言(oracle)的工具来完成判断被测软件运行结果正确性的工作。图1-7说明了被测软件与测试预言之间的关系。

 
图1-7被测软件与测试预言之间的关系。
测试预言给出的结论可能是Yes或No,或更为复杂,
比如是对为何测试预言发现观察到的运行
结果与预期结果一致或不一致的解释

测试人员常常充当测试预言的角色,此时称作“人工测试预言”(human oracle)。例如,为了验证一个计算矩阵相乘程序的正确性,测试人员可能会输入两个2×2矩阵,然后检查程序输出的结果是否与手工演算的结果一致。另外一个例子,考虑对一个文本处理程序的检查,人工测试预言可能需要肉眼检查显示器屏幕,确认当处理某段文本时斜体命令是否工作正常。

通过人工来检查软件运行结果有一些缺点。第一,容易出错,因为人工测试预言在分析时可能会犯错误。第二,人工分析的速度可能比软件计算结果的速度慢。第三,可能只对简单的输入/输出(I/O)操作进行了检查。然而,不管这些缺点如何,人工判断常常是最有效的判断。

测试预言可以是专门设计的程序工具,用来检查别的程序的运行结果。例如,可以采用矩阵相乘程序来检查矩阵求逆程序的正确性。假设给定矩阵A,矩阵求逆程序计算出其逆矩阵为B。可以用矩阵相乘程序来检查在一定条件下A×B=I是否成立。另一个例子,检查程序sort输出的有效性。假设程序sort按升序排列输入的数据,测试预言需检查程序sort的输出是否真正是按升序排列的。

采用程序工具来充当测试预言,在速度、准确度、容易度上都有很多优点,可以检查复杂的计算。正如上文所述,采用矩阵相乘程序来充当矩阵求逆程序的测试预言,相比人工测试预言,可以更快、更准确地检查更大规模矩阵求逆程序的正确性。

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

网络管理员考试全真模拟试题与解析

本书是按照全国计算机技术与软件专业技术资格(水平)考试《网络管理员考试大纲》的要求,参照《网络管理员教程》及近年来考试试题编写的。...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊