一、主要内容
软件测试主要工作内容是验证(verification)和确认(validation),下面分别给出其概念:
验证(verification)是保证软件正确地实现了一些特定功能的一系列活动, 即保证软件以正确的方式来做了这个事件(Do it right)。
确认(validation)是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件做了你所期望的事情。(Do the right thing)。
1.静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性。
2.动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。
二、黑盒测试与白盒测试
黑盒测试
也称功能测试、数据驱动测试,它将被测软件看作一个打不开的黑盒,主要根据功能需求设计测试用例,进行测试。
概念:黑盒测试是从一种从软件外部对软件实施的测试,也称功能测试或基于规格说明的测试。其基本观点是:任何程序都可以看作是从输入定义域到输出值域的映射,这种观点将被测程序看作一个打不开的黑盒,黑盒里面的内容(实现)是完全不知道的,只知道软件要做什么。因无法看到盒子中的内容,所以不知道软件是如何实现的,也不关心黑盒里面的结构,只关心软件的输入数据和输出结果,在接口进行测试。
内容:
- 检测软件功能能否按照需求规格说明书的规定正常工作,是否有功能遗漏;
- 检测是否有人机交互错误,是否有数据结构和外部数据库访问错误,是否能恰当地接收数据并保持外部信息(如数据库或文件)等的完整性;
- 检测行为、性能等特性是否满足要求等; 检测程序初始化和终止方面的错误等。
优点:
- 与软件具体实现无关,如果软件实现发生了变化,测试用例仍可用;
- 设计黑盒测试用例可以和软件实现同时进行,因此可压缩项目总开发时间。
缺点
不可能进行完全的、毫无遗漏的输入测试,有一些软件Bug或人为设置的故障,通过黑盒测试是无法检测出来的。正是因为黑盒测试的测试数据来自规格说明书,这一方法的主要缺点是它依赖于规格说明书的正确性。实际上,人们并不能保证规格说明书完全正确。如在规格说明书中规定了多余的功能,或是漏掉了某些功能,这对于黑盒测试来说是完全无能为力的。
黑盒测试常用方法
- 等价类划分;
- 边界值分析;
- 因果图
- 决策表分析
(还有错误推测法、综合策略、正交分析法)
等价类划分
完全不考虑程序的内部结构,只根据程序规格说明书对输入范围进行划分,把所有可能的输入数据,即程序输入域划分为若干个互不相交的子集,称为等价类,然后从每个等价类中选取少数具有代表性的数据作为测试用例,进行测试。
划分原则:区间、数值、数值集合、限制条件或规则、细分等价类。
边界值分析
边界值和等价类密切相关,输入等价类和输出等价类的边界是要着重测试的边界情况。在等价类的划分过程中产生了许多等价类边界。边界是最容易出错的地方,所以,从等价类中选取测试数据时应该关注边界值。
在等价类划分基础上进行边界值分析测试的基本思想是,选取正好等于、刚刚大于或刚刚小于等价类边界的值作为测试数据,而不是选取等价类中的典型值或任意值做为测试数据。
对于一个n变量的程序,边界值分析测试会产生4n+1个测试用例。
例如:假设函数F有两个变量x1,x2,两个变量的取值范围:.a <=x1<=b, c<=x2 <=d。用输入变量的最小值min,略大于最小值min+,正常值nom,略小于最大值max-,最大值max,来设计测试用例.