第六章
获得并交流见解:计划测试工作
6.1 测试规划过程
步骤序号 | 步骤内容 | 完成? |
1. | 研究,设计,收集测试子项目的战略,战术和内部工作方式,并编写相关的文档 |
|
2 | 商议在测试子项目和总体项目之间的协调工作,并编写相关的文档 |
|
3 | 最后确定剩余的后勤工作和计划的细节,并编写相关的文档,例如对于测试子项目本身的风险,测试项目组的定义。 |
|
4 | 公布这份计划供私下(脱线)评阅,首先在测试组内进行,然后扩大到更广大范围的渉众和参与者集体中。收集反馈信息,并修正计划,根据需要重复步骤1-3。评估规划过程导致的对于预算的进度和预算的任何修改(那些超过设置的宽松值或不可预见值),并得到管理层对于这样修改的支持。 |
|
5 | 公布这份计划供大家评阅。举行一次所有渉众参加的会议。收集所有需要的最后的调整,并得到承诺;在评估会议上同意的任何修正执行之后,这份计划应该是记录测试子项目的计划。 |
|
6 | 根据从规划过程中得到的新知识,包括对于资源的使用,修正估算的进度表和预算。如果这个结果导致了进度的推迟或预算的超支,而且超过了任何保留的宽松值或意外事件,将它提交到管理层以得到解决。谈判新的预算和进度表可能会导致重复前面的步骤,或者重做预算。 |
|
7 | 将测试计划检入到项目库或配置管理系统中,将文档置于变更控制之下。 |
|
项目中的风险,不可预见事件和风险降低的方法
风险 | 不可预测措施/降低风险 |
最后一分钟,影响的再需求,设计,功能或开发计划的其他部分修改 | 由于变动引起不完整的测试,接受增加的质量风险。 或通过人员的增加或外包来在最后一分钟完成足够的测试,就受增加的预算风险。 或接受由于推迟交货的日期而增加的进度风险。 |
在开始测试周期后发现不良的测试版本 | 进行smoke 测试,以探测不良的版本; 在“扩张的”周期中停止测试转换成最近已知的好的测试版本,并继续测试,接受计划好的测试的实现标准的降低和效率的下降。 |
测试覆盖率的空隙 | 探索性测试(游击性)测试使测试能够覆盖在计划好的测试中没有覆盖的地方。和 可能使用结构化分析技术,现场失败分析和文档数据来找出需要填补的空隙。这应该可能在可用的资源的基础上在测试设计和开发中决定。 |
在开发进度上的延迟影响了在计划日期时进入判据的准备程度 | 坚持进入判据,通过延迟测试和总体项目的进度来减少提交的功能块的数量,并让最后的增量中功能下降。 或 破坏进入判据,并接受由于没有足够的时间来发现和修正错误而增加的低质量的风险。这也可能造成项目的失败。 |
6.2 过程之外:测试计划的关键考虑因素
6.2.1选择测试的策略
测试策略(Test Strategy)
根据测试项目和测试小组的目标或任务选择的方法和作出的决定。任务通常是有效和高效的测试,而策略是支持这个任务通用的政策,规则和原理。而测试战术是特定的政策,技术,过程和执行测试的方法。
对于一个项目的早期测试趋向于静态的,接着是结构性的,然后是行为性的,而最后是实时的测试。
测试粒度(Test Granularity)
测试过程中的精细程度或粗糙度。在精细粒度的测试中,测试人员能够检查低层次的细节,特别是实现的代码;静态的和结构的测试时精细的粒度的。粗粒度的测试给测试人员提供了一半系统操作和需求的信息;行为和现场的测试时粗粒度的。
6.2.2一种特殊情况:回归风险的管理策略
回归(regression)
作为对系统的一次修改,一次新的系统修正的结果Sn+1,包含在以前修正S1-Sn中没有出现过一个错误,从而引起了一些以前正确的错做不正常,这时就称一个系统表现出回归性(或已经回归了)。
回归(regression testing)
为了捕获回归的错误而执行的测试。
回归测试间隙(regression test gap)
对于任何给定的变更或修正,由整个测试集提供的测试覆盖的区域与在真正重新运行测试时提供的测试覆盖区域之间的差别。对于顾客版本,回归测试的间隙也可以被考虑为在用整个测试集版本进行测试的过程中没有测试到的范围。
| 由测试发现 | 由用户发现 |
新的行为或功能 | 为了达到要求的质量,增加了费用并造成了系统发布的推迟 | 没有能够提供承诺的版本内容,在现场修复错误的成本。可能对公司的形象产生破坏。 |
现有的行为或功能 | 预见和探测这样的回归需要大量的费用。为了达到要求的质量,增加费用并造成发布产品的推迟。由于职员的变动可能会很难修复。 | 系统现有方面的破坏,其中的有些可能是顾客工作流程中的整体部分。在现场修复错误的成本,通常是用一种昂贵的紧急补丁形式。严重地破坏公司的形象。而且还要负法律责任。 |
测试遗漏(test escape)
任何现场报告的错误,这种错误按理应该已经在测试过程中发现,但事实上没有。这个术语也可以指应该在前面的测试阶段中发现,但还是进入到了后继阶段中的错误。
降低回归风险的最常见的策略是重复测试。存在各种各样的方法可以用来找出需要重复的正确测试,以及重复这些测试的频率。
6.2.3理解测试环境的执行资源
测试假象(test artifacts)
测试环境的随意性引起的行为,或测试过程与系统与在使用时的行为偏离引起的行为,由测试系统报告的误导性的行为或不正确的结果。
6.2.4管理测试系统和环境的配置