软件测试基础知识之软件测试应尽早开始的原则

前言

软件测试应遵循尽早开始原则,通过早期测试发现和暴露潜在风险,降低测试成本,加快项目进度。缺陷雪崩现象表明缺陷若未及时修复,将引发更多问题。随着开发阶段推进,修复成本急剧上升。因此,测试应贯穿整个软件周期,与开发并行进行。

根据《软件测试的目标》可知,软件测试不同阶段有不同的目标,早期测试是预防错误,开发阶段测试是发现并修复错误和缺陷

1.1 尽早测试

尽早测试原则是在早期测试和开发测试阶段,通过对需求、架构、设计文档和代码的测试,尽早的发现和暴露软件系统潜在的质量风险,来达到降低测试成本、加快项目进度、改进和提高项目质量的目标。

尽早和高效地审视并识别出需求、架构和设计中的潜在缺陷:

(1)程序员对架构、设计、需求错误产生的bug进行修复并总结;

(2)测试员积极参与bug的根因定位分析并总结;

1.2 缺陷雪崩

NO 阶段 描述
1 需求 正确需求,错误需求
2 设计 正确设计、错误设计、错误需求
3 开发 正确实现、错误实现、错误设计、错误需求
4 测试 常见缺陷、难以修复缺陷、被隐藏的缺陷
5 交付 已发现、未发现、已修复、未修复、客户发现、客户遗漏

软件测试中的缺陷雪崩是指在软件开发和测试过程中,由于一个或多个初始缺陷(bug)未被及时发现和修复,导致后续产生更多相关问题或缺陷的连锁反应现象。这种现象类似于自然界中的雪崩,即一个小的触发因素能够引发大规模的崩溃。

比如,从需求开始就有错误,并且未被发现和修复,然后导致设计、开发、测试和交付出错。随着软件开发的进行,潜在的缺陷越积越多,出现缺陷雪崩现象,即缺陷的放大效应

需求阶段:有正确和错误需求,错误需求引发缺陷;

设计阶段:有正确和错误设计,正确需求可能产生错误设计,错误需求导致错误设计,最终,错误设计引发缺陷;

开发阶段:有正确和错误实现,正确设计可能产生错误实现,错误设计导致错误实现,最终,错误实现引发缺陷;

测试阶段:发现常见缺陷、难修复的缺陷和未被发现的缺陷;

交付阶段:测试未发现、开发未修复、客户遗漏缺陷;

1.3 测试成本

NO 阶段 修复1个缺陷的相对成本(倍)
1 需求分析 1
2 系统设计 3-6
3 编码实现 10
4 开发测试 15-40
5 系统测试 30-70
6 交付客户 40-1000

上表数据,假设需求分析发现的缺陷,修复1个的成本为1,后续阶段的成本相对于需求修复1个缺陷的成本。

测试成本,即缺陷发现和修复的成本随着软件开发阶段的逐步推进而迅速攀升。在早期的开发阶段,如代码审查(Code Review)和研发项目测试阶段,修复缺陷的成本相对较低,因为此时问题尚未扩散至整个系统,修复起来相对简单。然而,随着开发进入后期阶段,如测试人员测试阶段以及发布后的客户反馈阶段,修复缺陷的成本会急剧上升。这是因为此时缺陷可能已经影响到系统的多个部分,修复需要更多的时间和精力,甚至可能需要重构部分代码或重新设计系统架构。

1.4 使用原则

(1)软件测试应该尽早开始

(2)软件测试应该与软件开发或维护工作并行,并持续进行,贯穿整个软件周期。