Chapter 2 全程测试:闪光的思想

软件质量其实是在软件开发生命周期中慢慢形成的,或者说,软件质量是内建的(Quality is built in),而不是测试测出来的。

贯穿于软件开发全过程的测试,不仅可以在第一时间内发现缺陷,降低缺陷带来的成本(劣质成本),而且能有效的预防缺陷的产生,构建更好的软件产品质量。

2.1 测试的左移和右移

测试左移:将测试计划与设计提前进行,以及开展需求评审、设计评审、代码评审等。

测试右移:将测试延伸到研发阶段之后的其他阶段,一般主要指产品上线后的测试,包括在线测试、在线监控和日志分析,包括alpha测试、beta测试。

2.2 测试驱动开发

“测试驱动开发(Test Driven Development,TDD)”——测试在先,编码在后。

1.UTDD(Unit Test Driven Development):在编码之前先写测试脚本,可以称为单元测试驱动开发。

2.ATDD(Assurance TDD):在需求分析时就确定需求(如用户故事)的验收标准,即验收测试驱动开发。

3.BDD(Behavior Driven Development):从ATDD演化出来一种具体落地的开发模式就是行为驱动开发,将验收标准更加明确化,可以看作ATDD的实例化。GWT(Given When Then)

4.RBE(Requirement By Example):BDD再往前推进一步,就是需求实例化,更加明确需求的具体表现。

2.3 传统研发模式的测试环

从软件工程来看,经过需求评审、设计评审、代码评审与单元测试、集成测试、系统测试和验收测试,再到产品缺陷根因分析、产品改进计划(提出新的产品需求)阶段,再进入下一个循环。

从项目管理角度看,经过测试分析、测试计划、测试设计、脚本开发、测试件评审、测试执行与监控、测试过程与结果评估、测试与西凉报告和项目总结阶段,形成项目过程环。

2.4 敏捷研发中的测试环

持续设计、持续编程、持续构建、持续集成、持续测试、持续交付。

2.5 DevOps与测试

2017年,作为一个软件工程实践,DevOps旨在统一软件开发和运维,与业务目标紧密结合,在软件构建、集成、测试、发布到部署和基础设施管理中大力提倡自动化和监控,目标是缩短开发周期,增加部署频率,更可靠的发布。

特征:

1.打通用户、PMO、需求、设计、开发、测试、运维等各上下游部门或不同角色。

2.打通业务、架构、代码、测试、部署、监控、安全、性能等各领域工具链。

2.6 小结

全程软件测试,强调软件测试不再是一个阶段,而是贯穿整个软件开发与维护的生命周期,只要软件研发项目一启动,软件测试就介入,从需求评审开始,直到产品交付后的在线测试。测试左移——TDD;测试右移——DevOps。

posted @ 2020-06-23 21:03  Huie  阅读(406)  评论(0编辑  收藏  举报