1.2 为什么需要测试?
测试作为一种质量控制形式,有助于在设定的范围、时间、质量和预算限制内实现商定的目标。测试对成功的贡献不应仅限于测试团队的活动。任何利益相关方都可以利用他们的测试技能使项目更接近成功。测试组件、系统和相关文档有助于识别软件中的缺陷。
1.2.1 测试对成功的贡献
测试间接地提高测试对象的质量。
测试提供了在软件开发生存周期(SDLC)的各个阶段直接评估测试对象质量的方法。有助于做出进入软件开发生存周期(SDLC)下一阶段的决策,例如决定版本是否发布。
测试为用户提供了开发项目的间接代表,测试人员确保他们对用户需求的理解贯穿于整个开发生存周期。另一种方法是让用户代表参与开发项目,但由于成本高且缺乏合适的用户,通常是不好操作。
为了满足合同或法律要求,或遵守监管标准,也可能需要进行测试。
1.2.2 测试和质量保证(QA)
“测试”和“质量保证”(QA)并不相同。测试是质量控制(QC) 的一种形式。
质量控制(QC)是以产品为导向的纠正方法,侧重于支持实现适当质量级别的活动。测试是质量控制的主要形式,而其他方法包括形式化方法(模型检查和正确性证明)、模拟和原型设计。
质量保证(QA)是以过程为导向的预防性方法,侧重于过程的实施和改进。
测试结果会被质量保证(QA)和质量控制(QC)使用。在质量控制(QC)中,测试结果用于修复缺陷,而在质量保证(QA)中,测试结果 供关于开发和测试过程执行情况的反馈。
1.2.3 错误、缺陷、失效和根本原因
人会犯错误(error、mistake),从而产生缺陷(defect、fault,bug),进而导致失效(failure)。人犯错的原因多种多样,例如时间压力、工作产品的复杂性、过程、基础设施或交互,或者仅仅是因为疲劳或缺乏足够的培训。
缺陷可以在文档(如需求规格说明或测试脚本)中找到、在源代码中或者在支持工件中(例如构建文件)找到。软件开发生存周期(SDLC)早期生成的工件中的缺陷,如果未被发现,通常会导致生存周期后期产生带有缺陷的工件。如果代码中的缺陷被执行,系统可能无法按照应有的方式执行,或者执行了不应该执行的操作,从而导致失效。某些缺陷在执行时总是会导致失效,而另一些缺陷只会在特定情况下导致失效,有些缺陷可能永远不会导致失效。
错误和缺陷并不是导致失效的唯一原因。失效也可能是由环境因素引起的,例如辐射或电磁场引起固件中的缺陷。
根本原因是问题发生的根本原因(例如,导致错误的情况)。通过根本原因分析来识别根本原因,通常在发生失效或识别出缺陷时进行根本原因分析。一般认为,通过解决根本原因,例如消除根本原因,可以防止类似失效或缺陷,或降低其出现的频率。
原创文章,作者:iTestCat,保留所有权利,禁止转载,如若转载,请联系作者!