二、道与术
1、代码分析
解决:如何在保证质量前提下,缩减回归测试范围
why:了解其内部实现,让测试变得更精准
白盒测试优势:对程序内部实现的了解; 黑盒测试优势:对用户场景的把握
2、测试分析理论由来
黑白测试核心思想:
白盒:架构、设计、实现
黑盒:需求、用户
黑盒测试八招:
等价类、边界值、场景分析、因果图、判定表、错误推测、正交实验设计、功能图
在传统测试中非常实用,但弱点也很明显,黑盒符合二八原则,能发现80%左右的bug,20%的靠运气。
白盒测试方法(内在逻辑):
语句覆盖、分支覆盖或判断覆盖、条件覆盖、判断/条件覆盖、路径覆盖
在“快”重压下,做好白盒级别的测试很难。
既取黑盒厚重,且化繁为简--新方法产生:测分(测试分析)
建立在对需求本身及对应系统架构和实现细节的充分了解上,通过对数据流、状态变化、逻辑时序、功能/性能/兼容性等方面进行分析,得出详细的测试关注点的过程。
敏捷开发模式下,唯一不变的是变化。测分是道,帮助我们快速分析出应该测试什么,不该测试什么。
3、全面认识测试分析
1)基于需求的分析
- 对象:需求说明书
- 分析基础
对业务的熟悉
对用户使用场景的了解
产品功能矩阵
- 分析方法
业务流程分析:描述业务的正向流程
业务状态分析:描述业务对象的状态转换
测试范围分析:需求本身的功能模块/受影响的功能模块
受影响的模块,如果不了解开发实现,很难界定
2)基于开发实现的测试分析
- 理清用户/需求价值方向:对需求要解决什么问题有清晰的认识
- 理清架构/实现的细节:需求经理解转化为代码,代码的实现架构和细节就是产品的体现
分析测试关注点(界定内容、影响点):
- 功能测试详细分析:
涉及模块(文件)
模块交互时序
接口/类/函数设计
实现细节
- 性能测试详细分析:
基于系统资源的性能测试分析
基于响应时间的性能分析
- 接口测试分析:
针对本次功能需求,是否具有可测接口,描述清楚为什么要测及测哪些(接口测试覆盖的接口定义描述;接口内部实现的相关逻辑;接口测试涉及的实现方案)
针对本次需求功能,是否有接口变更,分析变更影响范围及测试内容(变更接口修改实现的相关逻辑细节;变更接口(函数)对模块内功能影响分析;变更接口(函数)对模块外功能影响分析)
- 稳定性测试分析:
稳定行测试场景设计(用例)
稳定性测试脚本设计
- 兼容性测试分析:
兼容性测试相关点
开发相关实现细节
兼容性场景设计、测试环境说明(实验室或众测)
* 从全面测试覆盖到追求不测:精准测试呼之欲出