根据ISO 29119 - 1的术语定义,测试策略也是一个简短的文档,其说明了组织内所有项目开展测试的通用要求,提供了如何开展测试的详细信息。测试策略应该与测试方针保持一致,同时,组织内可以有多个测试策略以满足不同的项目周境。当然,测试策略也可以理解为是组织层面的文档,根据不同的项目周境,对测试策略进行合理的裁剪。假如出现与测试策略不符的内容,需要清楚地记录在项目的测试计划中。

根据TMMi关于测试策略的描述,我们可以认为其策略主要是基于风险的视角开展的,即属于基于风险的测试策略。其基础是前文提到的“已开发/评估的通用产品风险”,因此,关于测试策略的最简单理解:测试过程中所有的测试活动,都应该是从风险的角度进行进行,例如测试计划、分析、设计和执行等。假如是基于需求的测试策略,那么测试活动应该是按照需求的角度进行的。主要关注点包括:

1)缓解风险的测试活动应该贯穿于整个开发生命周期,以典型V模型为例,定义适合项目周境的与软件开发过程并行的测试过程。ISTQB基础级定义的测试过程可以作为参考:测试计划与监控、测试分析与设计、测试实现与执行、测试结束活动。

2)选择不同的测试级别与开发相对应,例如:组件测试、集成测试、系统测试和验收测试。分别定义每个测试级别的测试目的、职责和主要任务。例如:

1>组件测试:验证被测单元是否按照组件设计说明规定运行,是否达到要求的代码覆盖率;

2>集成测试:验证被测对象是否按照整体设计说明规定运行,是否达到要求的接口覆盖率;

3>系统测试:验证被测对象是否按照需求规格说明规定运行,是否达到要求的需求覆盖率;

4>验收测试:验证被测对象是否满足已定义的验收准则,确认被测对象是否适合使用;是否达到要求的用户需求覆盖率;

3)选择针对不同测试活动的测试技术。例如:

1>选择合适的评审技术,例如:非正式评审、走查、技术评审或审查;

2>选择测试用例设计技术,例如:黑盒技术、白盒技术或基于经验的技术,或者是它们的综合应用;

3>选择自动化方法,例如:录制/回放方法、数据驱动的测试自动化,或关键字驱动的测试自动化;

4>选择回归测试方法,例如:全面回归测试、基于风险的回归测试、基于关键域的回归测试等;

4)选择每个测试级别的测试类型,按照ISTQB基础级大纲的分类,可以包括:功能测试(例如:准确性测试、安全性测试、互操作性测试等)、非功能测试(例如:性能测试、可靠性测试、易用性测试、可移植性测试等)、基于结构的测试(例如:语句覆盖、判定覆盖等)、基于变更的测试(例如:确认测试和回归测试等);

5)为每个测试级别定义不同的测试入口准则和出口准则。以针对测试执行阶段定义的准则为例,罗列开始测试执行必须满足的条件作为入口准则,例如:开发团队进行自测试、提交被测软件版本说明等;针对测试执行阶段的出口准则,罗列可以结束测试执行要满足的条件即为出口准则,例如:满足覆盖率、执行率、通过率等要求;

6)其他需要定义的内容,例如:测试所需的测试环境要求、测试独立性级别、测试必须要遵守的标准;

测试策略不是一成不变的,随着测试过程中不断的反馈和改进信息,在需要时应该重新评审和修订测试策略。

08-25 22:38