1.测试策略
1.1从测试需求开始
50%以上的错误来源于需求的错误
需求,是软件设计与测试的来源,但是需求除了终端用户的功能需求外,还有设计性需求、可靠性需求、可测试性需求、性能需求、安全性需求等。
测试需求的识别是后续的测试工作的基础,也是起点。测试需求主要来源于业务需求。我们在拿到需求后,要能识别测试需求,接着是分析此测试需求,最后确定并提取出测试对象。
提取出了测试对象后,接下来需要确定对每一对象如何进行测试,拿出具体的方法及措施出来,这便是测试策略制定的问题。
完整的需求文档包括以下内容:参见《需求规格说明书模板》
- 功能需求
- 非功能性需求
- 性能需求
- 安全性需求
- 扩展性需求
- 可靠性需求
- 可移植性需求
- 易用性需求
- 兼容性需求
需求分析注意事项:
- 测试应该尽早的介入
- 不断变化的需求需要及时的收集和整理
- 没有需求文档时,需要测试人员不断的收集原始的客户需求
- 应有质疑、坚持精神,当需求不明确时,可以将需求追溯到终端客户
1.2测试策略制定
- 在分析了需求之后,我们要确认测试业务涉及的测试类别,例如:
功能测试
性能测试
安全性测试
兼容性测试
文档测试
安装卸载测试
其他专项测试 - 测试策略理解:指明方向,本项目用什么方法、什么工具、什么技术来进行测试,即所需的资源(人+机器+工具)。
- 测试策略需要确认测试使用的测试技术、测试过程的管理和控制、测试团队的组建。
- 根据测试的需要,选择测试技术,例如:
1、需不需要白盒测试?
2、自动化测试采用哪种工具?针对接口测试还是UI测试?
3、性能测试采用哪种工具?jmeter还是loadrunner?
4、兼容性测试如何做?手工测试还是使用平台测试?
……
2.测试方案
测试计划
- 测试计划理解:时间表,什么人、什么地点、做什么事情。
- 注意:测试的目标要明确,同时要确认跟踪机制。
2.1设计测试方案
- 测试方案理解:具体的、详细的说明如何使用工具、方法、技术来进行测试。
- 测试方案主要包括以下内容:
1、测试范围:由需求(用户需求/设计需求/可靠性需求/可测性需求/性能需求/安全性需求等等)分析而来。
2、测试策略:包括针对不同部分的测试方法、测试用例。
3、测试控制:包括测试流程,测试执行,缺陷跟踪。
4、其他:环境、版本管理等。
5、测试风险。
2.2风险分析
- 分析风险的目的:及时的调整测试内容和测试方案。
- 软件项目的风险主要来源于:需求、技术、成本和进度。
- 风险一般分类:
1、需求风险
2、计划编制风险
3、组织和管理风险
4、人员风险
5、开发环境风险
6、客户风险
7、产品风险
8、设计和实现风险
9、过程风险
2.3测试执行流程的设计
例如:
1、需求测试
需求的测试方法是基本的测试方法,而需求的质量直接影响到后续的开发和测试工作。
- 需求审核
- 需求测试
- 测试设计中进行需求测试
- 需求测试要素:正确性,必要性,完整性,一致性
- 需求测试应该尽早开始
2、内部发布版本测试(冒烟测试)
- 冒烟测试
- 版本测试中信息传递:修改内容,风险分析,配置管理
3、系统测试
- 根据测试用例一条一条的执行
- 缺陷管理
4、回归测试
- 确认回归内容
- 确认回归的方式:手工、自动化
- 用例的回归
- bug的回归
回归测试是自动化测试最好的用处
5、交叉测试
- 测试的枯燥性、重复性,引起的惰性
- 不同的思维模式
交叉测试多在测试的后期,功能基本稳定时进行
2.4测试报告的输出
在项目测试完毕后,需要出具测试报告:
- 测试概况
- 测试过程分析
- 缺陷分析
- 测试结论
- 缺陷清单
整个测试过程:
需求分析(需求串讲、验证、从设计需求中提取)–测试计划(测试方案、测试策略)-测试用例编写(需求测试)–测试执行(冒烟测试、系统测试、回归测试,交叉测试、自由测试)–测试报告(缺陷分析、测试结论)