1.首先,需要将测试设计领域分层:系统、服务、单元
对应的测试结构:UI测试、接口测试、单元测试
- UI测试关注功能场景测试,易用性测试和可执行性测试
- 接口测试关注不同数据的循环,对接口的性能和错误恢复能力
- 单元测出测试关注算法的正确性和性能
ROI尽可能大就是让每层测试尽可能做自己能做的全部事情,自己不擅长的时间交给其他擅长的层级去做。
2.每层对应的ROI:
单元测试:无法手工,运行次数多,维护成本低,开发成本低->ROI高
接口测试:手工运行时间中,运行次数多,维护成本中,开发成本中->ROI中
UI测试:手工运行时间长,运行次数少,维护成本高,开发成本中->ROI低
3.从ROI出发看,对应自动化测试顺序:优先单元测试,再做接口测试,最后完成UI测试.
但是,实际上,很多公司没有资源和时间做所有的测试,所以我们进一步分析,如何选择最优ROI策略呢?
1.分析需求
- 功能性:特性、功能、安全性
- 易用性:人性化因素、帮助、文档
- 可靠性:故障频率、可恢复性、可预测性
- 性能:响应时间、吞吐量、准确性、有效性、资源利用率
- 可支持性:适应性、可维护性、国际性、可配置性
2.测试类型和需求结合
3.分析每个层面的测试能力
- UI层面:功能性最强,所有测试需求都可以做
- 接口层面:功能性减弱,技术性增强
- 单元层面:技术型最强,主要体现在数据的处理,算法逻辑上
4.整体最优ROI【核心原则】
- 每个需求都收有效的
- 每个测试需求都是优先寻找自动化ROI高的层面去丝线
- 每个层面的验证不重复
遵循核心原则,根据公司情况去选择具体的自动化测试策略。不是单元测试ROI最高一定就能达到对应的要求,每一层的测试对人员和公司的要求都不尽相同。
备注:
不管是做哪一层,都需要逐步去做。感受到好处,再持续补充和扩展,形成良性循环。