|
|
|
|
移动端

1.3.1 输入域与软件正确性

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

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

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


1.3.1 输入域与软件正确性

如果一个软件对所有可能的测试输入都能如预期的一样运行,则被认为是正确的。通常情况下,由于所有可能的输入太多,不可能对每一个输入都进行测试。例如,假设在一台整数范围为-32768~32767的机器上测试上文所述的程序max。为了测试max对所有可能整数的运行情况,需要对它输入范围在-32768~32767内的所有整数对,将对max执行232次。假设用于测试的机器执行一次完整的测试(即输入整数对、执行max、判断输出是否正确)需要1ns(10-9s)的话,完成所有可能的测试将花费4.2s。

对软件所有可能的输入都进行的测试又称作穷举测试。

测试人员常常需要确定所有可能的输入究竟包含些什么。要确定所有可能的输入,首先就是检查软件需求。假如需求是完整的、无二义性的,就有可能确定所有可能输入的集合。在举例说明确定过程之前,先给出一个定义。

输入域

对软件P的所有可能输入的集合被称作P的输入域,或输入空间。

例1.4根据例1.3中的需求1,我们发现程序max的输入域是所有整数对的集合,其中整数对中的每个整数的取值范围为-32768~32767。

例1.5根据例1.3中的需求2,不可能确定程序sort的输入域。假设需求2被修改成:

 编写一个程序,输入一个整数序列,输出按升序或降序排序后的该整数序列。输出的序列是按升序排列还是按降序排列由一个输入选择参数决定,当参数为“A”时,按升序排列,当参数为“D”时,按降序排列。在向程序输入数据时,首先输入选择参数,然后再输入待排序的整数序列,整数序列以句号表示结束。

根据以上修改后的需求2,程序sort的输入域就是一个二元偶的集合。每个二元偶的第一个元素是个字符,第二个元素是个以句号为结束标志的整数序列,该序列可以为空。例如,以下是sort输入域中的3个元素:

 

第一个元素包含一个由4个整数组成的序列,要求按升序排列;第二个元素包含一个由2个整数组成的序列,要求按降序排列;第三个元素包含的整数序列为空,要求按升序排列。

现在给出软件正确性的定义。

软件正确性

如果软件针对其输入域中的每个元素都如期望的那样运行,则称该软件是正确的。

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

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

读 书 +更多

SOA概念、技术与设计

在本书中,Thomas ERL呈现了第一部端对端的教程,提供了从基层开始的面向服务的建模与设计的逐步指导。通过逐步的、清晰生动的、良好的SOA...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊