5月15日参加持续交付、敏捷、DevOps的理念实践讲座,其中一些内容非常有启发作用。整理了几个观点(理念、原则)进行分享。
- 敏捷迭代中开发的连续性,不应与明显的迭代分界(开始或结束): http://lzhted.iteye.com/blog/2211955
- 自动化测试策略和交付管道
- 部署模式:http://lzhted.iteye.com/blog/2213844
本文介绍第二点:自动化测试策略。其中一些基本的原则和实践包括,
- 给测试用例分层,如LLT、HLT、SIT等。
- 测试与开发合作编写与维护测试用例。
- 所有人都可以运行测试用例。
- Test are the first class code。
关于测试分层,正常情况下是一个金字塔结构,如下图所示,越底层是越基础的测试,占比也越大。但一般实际情况是以冰淇淋结构居多,即低层次的自动化测试较少,而高层次的人工测试较多。而这会造成我们测试和定位问题的成本偏高,版本发布的时间较长。
结合持续交付的理念和自动化测试策略,提出一个交付管道的概念。将测试分为五层:Unit Tests, Integration Tests, Application Tests, System Tests, SIT。前三层一定是自动化测试,最后一层有部分手工测试,因此从特性开发完成到上线激活就可以看成一条流水线或管道,如下图所示:
将系统划分成多个APP,每个APP的管道相对独立,如下图所示:
面临的挑战:
- 手工测试与自动化测试之间的重复。
- 已经存在的代码——需要补充很多测试用例(建议只从增量代码开始写测试用例)。
- 需要较多时间维护测试用例。