文档介绍:软件工程
电子教案
王树林
Chapter 16 SOFTWARE TESTING TECHNIQUES
软件系统的开发包括一系列生产活动。
软件测试是软件质量保证的关键元素。代表了规约、设计和编码的最终检查。软件开发组织把30%--40%的时间和精力花在测试上是不足为怪的。
软件测试基础
从心理角度说,测试是摧毁性的,而不是建设性的。测试要求开发者放弃刚开发的软件是正确的观念,并克服发现错误时的心理矛盾。
Chapter 16 SOFTWARE TESTING TECHNIQUES
测试目标
测试目标规则:
(1)测试是一个为了寻找错误而运行程序的过程。
(2)一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例。
(3)一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。
Chapter 16 SOFTWARE TESTING TECHNIQUES
测试原则
在设计有效的测试用例之前,软件工程师必须理解软件测试的基本原则。
(1)所有的测试都应追溯到用户需求。
(2)应该在测试工作真正开始前的较长时间内就进行测试计划。
(3)Pareto原则应用于软件测试。Pareto原则:测试发现的错误中的80%很可能起源于程序模块中的20%。
(4)测试应从“小规模”开始,逐步转向“大规模”。
Chapter 16 SOFTWARE TESTING TECHNIQUES
(5) 为了达到最佳效果,应该由独立的第三方来构造测试。
可测试性
软件的可测试性就是一个计算机程序能够被测试的容易程度。
Chapter 16 SOFTWARE TESTING TECHNIQUES
测试用例设计
产品在出厂前都是要经过严格测试的。
下面我们考虑两种对任何产品都适用的一般测试方法:
(1)若了解产品的功能,则构造测试,以证实各功能完全可执行,同时在各功能中寻找错误;这种方法被称为黑盒测试。
(2)若了解产品的内部构造,则构造测试,以确保“所有齿轮吻合”,即内部操作依据规约执行,而且所有的内部构件被充分利用。这种方法被称为白盒测试。
Chapter 16 SOFTWARE TESTING TECHNIQUES
在计算机软件界,黑盒测试指在软件界面上的测试,虽然设计黑盒测试是为了发现错误,但他们却被用来证实软件功能的可操作性,证实能很好地接受输入,并正确地产生输出;以及证实对外部信息完整性的保持。他测试系统的一些基本特征,很少涉及软件的内部逻辑结构。
Chapter 16 SOFTWARE TESTING TECHNIQUES
软件的白盒测试依赖于对程序细节的严密测试,使用特定的条件和循环集的测试用例,对软件的逻辑路径进行测试,在不同的点检验“程序的状态”以判定预期状态或待验证状态与真实状态是否相符。
但是,一个很小的程序的逻辑程序路径也可能异常庞大,不可能进行完全的穷举测试。但白盒测试仍然是非常有用的。我们可以在重要的逻辑路径上进行穷举测试。
Chapter 16 SOFTWARE TESTING TECHNIQUES
白盒测试
白盒测试是一种测试用例设计方法,使用程序的控制结构导出测试用例。
测试用例: (1)保证一个模块中的所有独立路径至少被使用一次;(2)对所有逻辑值均需测试TRUE和FALSE;(3)在上下界及可操作范围内运行所有循环;(4)检查内部数据结构以确保其有效性。
Chapter 16 SOFTWARE TESTING TECHNIQUES
基本路径测试
对程序中的每一条语句至少执行一次。
流图符号
流图也称为程序图,每一种结构化构成元素有一个相应的流图符号。