软件测试的目的、原则、基本测试原理及特性准则

1.软件测试的目的 

软件测试是以发现软件的存在的故障或缺陷,并藉此对软件的质量进行度量。为达此目的,测试活动的目标是最大可能的找出最多的错误。 
测试是从假定软 件含有缺陷和故障的假设而进行的,实现这个目标的关键是科学合理设计出最能 暴露问题的测试用例。
测试是程序执行过程,并限于执行处理有限的测试用例与情形,并发现了错误;
检测软件是否满足软件定义的各种需求目标;
执行的测试用例发现了未曾发现的错误,实现成功的测试。

2.  软件测试的原则

依据软件测试的目的,归纳出一些测试的原则。
尽早和及时的进行测试。测试活动应从软件产品开发初始阶段就开始;
测试用例要由测试数据与预期结果两部分组成,并包括测试前置条件或 后置条件;
测试根据其需求和风险,可由专业测试者进行或程序开发者自行检测;
需要严格执行测试计划,并排除测试工作随意性;
充分注意测试中的集群效应,经验表明软件约 80%的错误仅与 20%的 程序有关;
应对测试结果作核查,存档测试计划、测试用例、缺陷统计和分析报告等文档,为软件维护提供资料及条件。

3.软件测试基本测试原理

软件测试产生发展已达 40 多年,经过长期地实践,总结归纳出了一些基本 的测试原理与测试特性准则,并被业界普遍接受和遵循,对测试的设计、执行和 管理均具有工程的指导意义。
原理 1:测试可以证明缺陷存在,但不能证明缺陷不存在
测试可以证明软件系统(产品)是失败的,即说明软件中有缺陷。但测试不 能证明软件中没有缺陷。适当的软件测试可以减少测试对象中的隐藏缺陷。即使 在测试中没有发现失效,也不能证明其没有缺陷。
原理 2:穷尽测试是不可能的
测试若考虑所有可能的输入值及其组合,并结合所有的前置条件进行穷尽测 试是不可能的。实际测试过程中,对软件测试基本上是抽样测试。因此,必须根 据风险和优先级,控制测试工作量。
原理 3:测试活动应尽早开始
在软件生命周期中,测试活动应尽早实施,,并聚焦于定义的目标上,这样 可以尽早的发现缺陷。
原理 4:缺陷集群性
在通常情况下,缺陷并不是平均而是集群分布的,大多数的缺陷只存在于测 试对象的极小部分中。因此,如在一个地方发现了较多缺陷,通常在附近会有更 多的缺陷,这就是所谓的缺陷集群性,也就经常所说的‘8/2 现象’,80%的缺 陷集中在 20%的程序模块中。因此,在测试中,应机动灵活地应用这个原理。
原理 5:杀虫剂悖论
若同样的测试用例被一再重复执行,则会减少测试的有效性。先前没有发现的缺陷反复使用同样的测试用例也不会被重新发现。因此,为了维护测试的有效 性,战胜这种“抗药性”,应对测试用例进行修正或更新。这样软件中未被测试 过的部分或先前没有被使用过的输入组合会被重新执行,从而发现更多的缺陷。
原理 6:测试依赖于测试内容
测试必须与应用系统的运行环境及使用中固有的风险相适应。因此,没有两个系统可以完全相同的方式进行测试。对于每个软件系统,测试出口准则等应依据其使用的环境分别量体定制。例如,对安全起关键作用的系统与一个电商应用系统所要求的测试是不尽相同的。
原理 7:没有失效就是有用的系统是一种谬论
测试找到了导致失效的 Bug、并修正了缺陷,并不能保证整个系统达到了用 户的预期要求和需要。因此说,没有发现失效就是有用的系统是一种谬论。

4.测试特性准则

对任何软件(产品)系统都存在有限的充分测试集合
若一个软件系统在一个测试数据(测试用例)集合上的测试是充分的, 那么再测试执行一些测试用例也是充分的,这一特性称作测试的单调性
即使对软件所有的组成成分都进行了充分测试,也并不能表明整体软件 系统的测试已经充分,这一特性称作测试的非复合性
即使对软件系统整体的测试是充分的,也并不能证明软件系统中各组成 成分都已得到了充分测试,这个特性称作测试的非分解性
软件测试的充分性应与软件需求与软件实现相关软件越复杂,测试数据需用就越多,这一特性称为测试的复杂性
测试越多,进一步测试所获充分性增长就越少,这一特性称作测试回报 递减率
软件测试的特性准则对测试的设计与执行均具有工程指导意义。

发布了348 篇原创文章 · 获赞 2280 · 访问量 37万+

猜你喜欢

转载自blog.csdn.net/KamRoseLee/article/details/104658459