老徐最近翻译的Mercury“最佳功能测试实践”-第一部分
1 概述
本测试过程作为功能测试的最佳实践,用于实施不同机构的功能测试工作。它可以作为测试计划工作的基础,应用于每个软件开发的项目。在这个测试过程中描述的活动既可以用于新开发的组件,亦可以用于改进现有的回归测试。
2 测试管理
为了能顺利地获得测试的结果,将测试作为独立管理的过程是非常必要的。测试管理可以分为下面四个领域。
1)测试计划
2)测试执行
3)测试控制
4)测试过程改进
用于支持测试管理各个领域的工具可以采用TestDirector。
1.1测试策略和计划 1.1.1 需求 2)完整性 3)正确性 4)有效性 5)可维护性 6)模块性 7)可移植性 8)可靠性 9)可用性 业务功能的质量需求是依据业务的风险进行定义的。业务风险和技术复杂度的信息存储在测试的需求中。这两个参数决定了测试的程序和测试的工作量。另外,针对业务功能分配测试员,并且将测试活动的当前状态落实到纸面上。只有这样做才能在针对业务功能的整个测试过程中监控测试的状态。 1.1.2 测试阶段的定义 依据已经定义的质量目标,我们需要将测试阶段进行合理的划分。 通常情况有以下几个阶段: 1)开发员自测试阶段(不在我们的考虑范围之内) 下面的表中描述了每个测试阶段需要达到的质量目标: 业务功能测试和业务流程测试是在软件项目开发过程中完成的。而业务集成测试和系统集成测试则组合成回归测试,用于软件系统上线前或者发布为产品前来检验软件的质量。
下面的图中展示了每两个相邻阶段的质量门是如何设定的:
1)在业务功能测试之后 u 业务功能测试的测试用例执行了80%以上 u 业务功能测试的测试用例(A级风险)执行了100% u 少于5个服务器端错误 u 少于30个中级错误 u 无致命性缺陷 2)在业务流程测试之后 u 业务功能测试通过 u 业务流程执行了100% u 无业务流程完全失效,所有的错误都可以被修复 u 无致命性缺陷 3)在业务集成测试之后 u 业务流程测试通过 u 业务集成流程执行了100% u 无致命性缺陷 1.1.4 功能分解 1) 每个用户情形都是一个业务功能 2) 如果一组用户情形非常相似,那它们应该组合在一起形成一个业务功能 3) 如果一个用户情形非常大或者非常复杂,则应该将其分解为两个或者更多的业务功能 1.1.5.1 业务风险分析
|
1.1 测试准备
测试的准备是一个独立的、分离的阶段,测试员在这个阶段中基于需求文档准备测试(业务设计图)。测试的准备要依据标准的方法,并应基于本阶段的工作生成标准化的文档。
1.1.1 业务功能测试
基于风险评估,针对每个业务功能的不同风险级别都应有一个对应的测试过程和方法组合:
1)A级风险
利用等价类和组合进行系统性的测试完全自动化
2) B级风险
利用等价类进行系统性的测试完全自动化
3) C级风险
随意性测试手工执行,在TestDirector中提供文档化的执行过程
对于每个测试过程和方法组合,要提供一个标准的文档进行方法论级的阐述和规定,每个测试人员依据这些标准的测试过程和方法组合进行测试。
在TestDirector中要将测试用例的准备结果作为业务功能的附件。
1.1.2 业务流程测试
业务流程测试是将所有的业务功能组合在一起,使用同一组数据进行工作。
测试员的任务就是要确定每个业务功能的组合是否能连贯的执行。
判断的结果使用矩阵来表示,例如下图:
注:yes(+);no(-)
业务流程矩阵
|
|
1 |
2 |
3 |
4 |
5 |
|
|
登陆 |
航班 查询 |
航班 预定 |
退出 |
注册 |
|
后功能 前功能 |
|||||
1 |
登陆 |
- |
+ |
- |
+ |
+ |
2 |
航班查询 |
- |
+ |
+ |
+ |
- |
3 |
航班预定 |
- |
+ |
- |
+ |
- |
4 |
退出 |
+ |
- |
- |
- |
- |
5 |
注册 |
+ |
- |
- |
- |
+ |
1.1.3 业务集成测试
在业务集成测试阶段中的测试案例开发 | ||||||
|
|
1 |
2 |
3 |
4 |
|
|
|
预定一个航班 |
打印机票 |
|