仲夏叶 | Stornado

生命就是用求知的欲望燃烧自己

测试陷阱分类

什么是测试陷阱

测试陷阱是指不必要的并且可能意外导致测试不那么有效,高效或者更令人沮丧的表现的决策、思维、行为或不作为。基本上,测试陷阱是一个经常发生的搞砸测试的方式,当测试人员、管理人员、需求工程师和其他测试利益相关者犯了测试相关的错误,并由此产生意想不到的负面后果时,项目就陷入了测试陷阱。

从某种意义上说,测试陷阱的描述构成了测试反模式。然而,术语“陷阱”是专门选择,为那些粗心大意或外行的人唤起隐蔽或不易识别的陷阱的形象。与任何陷阱一样,最好是避免测试陷阱,而不是陷入陷阱后将自己和项目挖出来。

陷阱分类

许多测试陷阱发生在软件依赖系统和软件应用的开发或维护期间。虽然可能没有项目是如此糟糕地管理和执行,从而体验这些缺陷中的大多数,但大多数项目将遭受其中几个。同样,虽然这些测试陷阱并不保证失败,但它们必然带来需要管理的严重风险。

在测试过程中经常观察到的92种陷阱。这些缺陷分类如下:

  • 一般测试陷阱
    • 测试计划和进度陷阱
    • 利益相关者的参与和承诺陷阱
    • 管理相关测试陷阱
    • 人员配备陷阱
    • 测试过程陷阱
    • 测试工具和环境陷阱
    • 测试沟通陷阱
    • 需求相关测试陷阱
  • 测试类型相关陷阱
    • 单元测试陷阱
    • 集成测试陷阱
    • 专业工程测试陷阱
    • 系统测试陷阱
    • 系统的系统测试陷阱
    • 回归测试陷阱

共同的负面后果

虽然不同的测试陷阱有不同的负面后果,它们都趋向于促进以下总体最终问题:

  • 测试有效性较低。
    • 更多遗留缺陷躲过测试进入交付系统。
    • 尽管付出额外的成本和时间,软件依赖系统仍然带有比预期的或者必要的更多的遗留缺陷交付并投入运行。
  • 测试效率较低。
    • 要达到没有陷阱能达到的相同质量,需要更多的时间和精力。
    • 因为在开发后期花费额外的、计划外的时间和精力去发现并修复缺陷,系统交付延迟并且超出预算。
    • 测试人员必须不可持续地长时间工作,这使他们变得筋疲力尽,因此,会犯过多的错误。
    • 一些缺陷发现的时间比应该发现时间晚,使得缺陷更难定位和修复。
  • 测试人员的士气受到影响。
    • 糟糕的测试效率和有效性,使得测试人员的工作比需要的更长、更困难。
    • 糟糕的测试有效性和由此带来的遗留缺陷的增加削弱了测试人员对工作的自豪感。

一般建议

除了在下文缺陷描述中提供的单个缺陷相关的建议之外,以下建议普遍适用于大多数常见的测试陷阱。

  • 预防建议。这些一般建议可以在最初防止落入陷阱。
    • 更新测试过程。测试人员、首席工程师和过程工程师更新测试过程以帮助项目避免落入测试陷阱,若做不到这一点,那么在已经落入陷阱时能够及时发现。
    • 将陷阱当做风险。当相关时,陷阱应该正式在项目的风险库中识别为风险,并做相应管理。
    • 正式要求解决方案。客户代表在适当的文档中正式要求测试陷阱的解决方案,如需求建议书、合同和工作说明书。
    • 内部强制要求解决方案。管理人员、首席工程师(开发团队领导)或者首席测试人员(测试团队领导)在相应的文档中明确强制要求测试陷阱的解决方案,如系统工程管理计划、系统开发计划、测试计划文档或测试策略。
    • 提供培训。首席测试人员或培训人员给相关人员(如采购人员、管理层、测试人员和质量保证人员)提供适当数量和水平的测试培训,涵盖潜在的测试陷阱和如何预防、检测及应对。
    • 确保管理层的支持。管理人员明确说明(并提供)对测试的支持,以及避免经常发生的测试陷阱的必要性。
  • 检测建议。以下一般建议使得识别和诊断现有的陷阱成为可能。
    • 评估文档。评审、审查或走查测试相关的文档(例如,测试计划和开发计划的测试部分)。
    • 确保监督。测试过程执行时提供采购方、管理层、质量保证和同行的监督。
    • 考虑度量指标。收集、分析并向利益相关者(例如,采购方、管理人员、技术领导或首席工程师和首席测试人员)报告相关的测试指标。
  • 应对建议。一旦检测到陷阱,以下一般建议有助于缓解。
    • 拒绝不充分的测试文档。客户代表、管理人员和首席工程师拒绝接受测试相关的文档,指导已识别的陷阱得到解决。
    • 拒绝交付。客户代表、管理人员和首席工程师拒绝接受被测系统或软件,直到已识别的陷阱(例如,测试环境、测试过程或测试用例)得到解决。然后对相关缺陷进行优先级排序和修复后重新运行测试。
    • 提供培训。首席测试人员或培训人员给相关人员(如采购人员、管理人员、测试人员和质量保证人员)提供适当数量和水平的补救测试培训,涵盖以观察到的测试陷阱和如何预防、检测及应对测试陷阱。
    • 更新过程。首席工程师、首席测试人员或过程工程师更新测试过程文档(例如,流程、指南、模板、工具手册),以最大限度地减少观察到的测试陷阱再次出现的可能性。
    • 报告陷阱的发生。测试人员应向项目管理团队报告陷阱的发生,包括测试经理、项目经理和技术负责人。
    • 将陷阱当做风险。如果相关时,陷阱应该正式在项目的风险库中识别为风险,并做相应管理。

摘抄自《测试反模式——有效规避常见的92种测试陷阱》(美)Donald G. Firesmish