现代软件测试技术之美
上QQ阅读APP看书,第一时间看更新

1.1.2 测试左移的早期实践

为了解决缺陷发现滞后的问题,最早的测试左移(shift-left testing)概念被提了出来,此时的测试左移倡导各个测试阶段对应的测试活动应该尽早开展,测试工程师应该在开发提测前就介入,同时将测试活动前移至软件研发生命周期的早期阶段。具体来讲主要包含以下3方面的实践:

加强单元测试,并且对单元测试的覆盖率提出门禁要求,代码的实现问题尽可能在单元测试阶段都被发现;

在开展集成测试前,增大接口测试的占比,接口缺陷尽可能在接口测试阶段被发现;

将集成测试和系统测试的设计与分析工作前置,与实现设计、代码开发阶段并行开展。

测试左移的早期实践,可以提前发现部分缺陷,降低研发过程的不确定性和风险,具体效果如图1-3所示。

图1-3 测试左移早期实践的效果

随着实践的深入,我们发现,如果能有效控制代码开发阶段代码本身的质量,就能更好地实现质量内建。为此,我们在原有实践的基础上增加了以下3方面的实践:

在流程上增加需求解读与评审环节,避免存在需求理解的偏差和不完备性,争取一开始就把业务领域的问题理解透彻,避免后期返工;

在代码开发阶段引入静态代码检查机制,并且不断优化静态代码的扫描规则,将常见问题、代码“坏味道”、安全隐患和性能隐患逐步纳入扫描范围;

贯彻执行代码评审(code review)机制,同时确保避免代码评审的形式主义,并针对代码评审时发现的典型问题在开发团队内形成闭环学习机制。

以上3方面的实践,可以实现缺陷发现的进一步前置以及缺陷数量的降低。实施之后的效果如图1-4和图1-5所示。

如果你以为上面就是测试左移的全部,那你就把事情想简单了。其实这只是测试左移的“冰山一角”。

图1-4 代码开发阶段的质量内建效果(缺陷发现的进一步前置)

图1-5 代码开发阶段的质量内建效果(缺陷数量的降低)