1.1 什么是测试

从商业应用(例如:银行)到消费类产品(例如:汽车),软件系统已经成为人们生活的一部分。很多人都经历过软件没有按照预期工作的情况。软件没有正常工作会导致各种各样的问题,例如:金钱、时间或者商誉的损失,更有甚者会导致人员的伤亡。软件测试是评估软件测试并降低软件在运行过程中发生失效风险的一种方法。
对测试的一个常见误解是认为测试只包括测试执行,即执行软件并检查结果。正如1.4节中所描述的,软件测试是由多个不同测试活动组成的过程;测试执行(包括结果检查)只是这些活动中的一个。测试过程还包括很多活动,例如:测试计划、分析、设计和实现,报告测试进度和结果,以及评估测试对象的质量。
如果测试涉及被测试组件或系统的执行,该测试称为动态测试。如果测试不涉及被测试组件或系统的执行,这样的测试称为静态测试。因此,测试也包括评审工作产品,例如:需求、用户故事和源代码。
对测试的另外一个常见误解是它只关注需求、用户故事或者其它规格说明的验证。虽然测试确实涉及检查系统是否满足特定的需求,但是测试还涉及确认,即检查系统是否满足用户和其它利益相关者在其运行环境下的要求。
不同生命周期中,测试活动的组织和执行是不同的(见2.1节)。
1.1.1 典型的测试目标
针对任何给定项目,其测试目标包括:
• 评估工作产品,例如:需求、用户故事、设计和代码
• 验证是否已满足所有描述的需求
• 确认测试对象是否完整,并按照用户和其它利益相关者的预期工作
• 建立对测试对象质量级别的信心
• 预防缺陷
• 发现失效和缺陷
• 为利益相关者提供足够的信息帮助他们做出合适的决定,尤其是考虑测试对象的质量级别
• 降低软件质量低下的风险级别(例如:运行环境中出现了之前未被发现的失效)
• 符合合同、法律或者法规的需求或者标准,和/或验证测试对象符合这些需求或者标准
测试的目标可以有所不同,这取决于被测组件或系统的上下文、测试级别和软件开发生命周期模型。例如:
• 组件测试时,一个目标可能是发现尽可能多的失效,以便及早识别和修复潜在的缺陷。另一个目标可能是增加组件测试的代码覆盖率。
• 验收测试时,一个目标可能是确认系统按照预期工作并满足要求。测试的另一个目的可能是向利益相关者提供在指定时间发布系统的风险信息。
1.1.2 测试和调试
测试和调试是不同的。执行测试可以显示由软件缺陷造成的失效。调试是发现、分析和修复这些缺陷的开发活动。后续的确认测试检查该修复是否解决了缺陷。在某些情况下,测试人员负责初始测试和最终确认测试,而开发人员则负责调试和相关的组件测试。然而,在敏捷开发和其他一些生命周期中,测试人员可能参与调试和组件测试。
ISO标准(ISO/IEC/IEEE 29119-1)包括了软件测试概念的更多信息。

猜你喜欢

转载自blog.csdn.net/TBOKCN/article/details/82945342
1.1