用于项目测试部分的策略描述了测试任务的一般方法和目标。它包括那些要处理的测试阶段(单元、集成和系统)以及要执行的测试种类(功能、性能、装入和强度)。
策略用于定义:
-
要使用的测试技术和工具。
-
判断测试完成和成功将使用什么标准。例如,该标准可能允许软件在已成功执行 95% 的测试用例时进入验收测试。 另一个标准是代码覆盖。在安全至上的系统中,这个标准可能要求测试覆盖 100% 的代码。
-
特别考虑事项会影响资源需求或带有日程含义,例如:
某些组织已定义了企业测试策略,在这种情况下,您要将这些策略应用到您的具体项目。
计划测试特务应该侧重的最重要的方面如下:
-
您在什么迭代中以及该迭代的目标是什么?
-
您正在执行什么阶段的测试(单元测试、集成测试、系统测试)?您可能在一个迭代中执行所有阶段的测试。
现在来看一下测试任务的特征如何根据上述测试方面的不同而变化。有很多您可以查看的特征,例如所需的资源和花费的时间,但是此时请关注什么对于定义测试策略很重要,例如:
-
测试类型(功能、强度、数量、性能、可用性、分发等)
-
使用的评估标准(基于代码的测试覆盖、基于需求的测试覆盖、缺陷的数目、故障间的平均时间等)
-
使用的测试技术(手动的和自动的)
测试类型如何在测试周期中分发,是没有一般模式的。您根据迭代的数目、迭代的大小以及测试的项目类型,来关注不同类型的测试。
您会发现:系统测试阶段很注重确保覆盖以一组测试用例表示的所有可测试需求。这意味着您的完整性标准将侧重于满足基于需求的测试覆盖。在集成和单元测试阶段中,您会发现基于代码的测试覆盖是更为适合的完整性标准。下一个图显示了在开发新的软件迭代时,使用这两种类型的测试覆盖评估会如何变化。
-
测试计划应为单元测试、集成测试和系统测试定义多个系列的完整性标准。
-
您可以为单个迭代定义不同系列的完整性标准。
在项目中考虑尽可能地使测试自动化,特别是那种重复数次的测试(回归测试)。记住创建和维护自动化测试要消耗时间和资源。每个项目中总存在一定数量的手动测试。下图说明了您在何时以及在什么阶段的测试中可能执行手动测试。
示例
以下各表显示了何时确定不同类型的测试并提供了一个示例说明要定义的完整性标准。第一个表显示了“典型”的 MIS 项目。
迭代测试
|
系统测试
|
集成测试
|
单元测试
|
迭代 1
|
所有用例的自动性能测试。
· 已执行所有计划的测试。
· 已处理所有严重性为 1 的缺陷。
· 已重新执行所有计划的测试并且未找出新的严重性为 1 的缺陷。
|
无
|
非正式测试
|
迭代 2
|
用于所有新的用例的自动性能和功能测试以及作为回归测试的先前测试。
· 已执行所有计划的测试。
· 已处理所有严重性为 1 和 2 的缺陷。
· 已重新执行所有计划的测试并且未找出新的严重性为 1 或 2 的缺陷。
|
无
|
非正式测试
|
迭代 3
|
用于所有新的用例的自动功能和负面测试以及所有作为回归测试的先前测试;95% 的测试用例必须通过测试。
· 已执行所有计划的测试。
· 已找出所有严重性为 1、2 和 3 的缺陷。
|
自动测试,70% 代码覆盖。
|
非正式测试
|
迭代 4
|
用于所有用例的自动功能和负面测试、用于所有未自动化的部件的手动测试以及所有作为回归测试的先前测试。100% 的测试用例必须通过测试。
· 已执行所有计划的测试。
· 已处理所有严重性为 1、2 和 3 的缺陷。
· 已重新执行所有计划的测试并且未找出新的严重性为 1 或 2 的缺陷。
|
自动测试,80% 代码覆盖。
|
非正式测试
|
第二个表显示应用于典型的安全至上系统的测试类型和完成标准。
迭代测试
|
系统测试
|
集成测试
|
单元测试
|
迭代 1
|
用于所有用例的自动性能测试;100% 测试用例覆盖。
· 已执行所有计划的测试。
· 已处理所有严重性为 1 的缺陷。
· 已重新执行所有计划的测试并且未找出新的缺陷。
|
无
|
无
|
迭代 2
|
用于所有用例的自动性能、功能和负面测试;100% 测试用例覆盖。
· 已执行所有计划的测试。
· 已处理所有严重性为 1 或 2 的缺陷。
· 已重新执行所有计划的测试并且未找出新的缺陷。
|
自动性能测试
|
非正式测试
|
迭代 3
|
用于所有用例的自动性能、功能、负面可用性和文档测试;100% 测试用例覆盖。
· 已执行所有计划的测试。
· 已处理所有严重性为 1、2 和 3 的缺陷。
· 已重新执行所有计划的测试并且未找出新的缺陷。
|
自动性能测试和作为回归测试的先前测试
|
自动测试,70% 代码覆盖
|
迭代 4
|
用于所有用例的自动性能、功能、负面可用性和文档测试;100% 测试用例覆盖。
· 已执行所有计划的测试。
· 已处理所有严重性为 1、2 和 3 的缺陷。
· 已重新执行所有计划的测试并且未找出缺陷。
|
自动性能测试和作为回归测试的先前测试
|
自动测试,80% 代码覆盖
|
|