CI & CD (持续交付)
[NOT FINISH]
1 CI
- Code Style;
- UT, ST, FT, Onebox;
- Debug, Release, Asan(Memleak), Coverage;
- X86, Arm, Mips;
- Code Review; Member, Owner;
- Automation, High Frequency;
2 Benefits
- 调试更少;
- 增强需求实现、发布的信心;
- 更高频率的发布;
3 Google
每个自动化测试有两个维度:资源占用和验证范围;
- 小型测试:单个进程中执行;
- 中型测试:单台计算机运行;
- 大型测试:
测试最重要的是速度和确定性。
3.1 硬件引入
- 定义IDC数据中心环境、测试规范,主要需求;
- 完整的ODM流程;
- Hermetic Servers : https://testing.googleblog.com/2012/10/hermetic-servers.html
4 Microsoft
Evolving Test Practices at Microsoft - Azure Devops
开发人员把代码扔给SDETs(Software Design Engineer Test)。SDETs把自动化测试扔给 STEs(Software Test Engineer)。不断壮大STE应对,但STE升职机会有限。测试成为了瓶颈,导致了产品的延时。
Devops:
- NAR(Nightly Run), FAR(Full Automation Run);
- L0/L1 Unit Tests; Like as traditional UT;
- L2/L3 Functional Tests
- L2 功能测试类,需要部署服务,但部分依赖服务会通过特定方式断开;
- L3 生产环境中的受限测试,需要完整的产品部署。
5 CD
- One branch;
6 References
- Google: Building Secure and Reliable Systems