软件测试相关软件测试软件测试

HTSM - 启发式测试策略模型

2017-10-20  本文已影响8人  做测试的DanteYu

启发式测试二部曲

启发式测试计划语境模型 Heuristic Test Planning Context Model启发式测试策略模型 Heuristic Test Strategy Model都是来自于测试大师James Bach提出的框架模型用来指导测试计划和测试设计。

本文主要记录我对HTSM的学习和理解。

什么是HTSM

[图片上传失败...(image-88c12-1512727796871)]

上图是HTSM的概要,可以看到整个模型分为四个部分质量标准(Quality Criteria)、项目环境(Project Environment)、产品元素(Product Element)和测试技术(Test Techniques)。通过对前三个部分的考察,能够得应该选择的测试技术,从而执行测试,观察被测试出来的质量Perceived Quality)。

HTSM主要目的的通过提供大量关键词和启发式问题,帮助测试人员进行对特定项目和产品的测试设计。测试人员可以根据htsm了解产品的方方面面、项目的资源情况和限制、质量标准和可用的测试技术。所以说,htsm是一个可用于测试策略设计的参考模型。

HTSM的内容

质量标准(Quality Criteria)、项目环境(Project Environment)、产品元素(Product Element)和测试技术(Test Techniques)各自有自己的处于不同层次的指导词和提问来启发测试设计。下面简要总结如下

测试技术(Test Techniques)

测试技术用来启发创建测试。所有的技术都或多或少的与产品元素、项目环境和质量标准有关联。

下面列出了九种通用的测试技术。“通用的测试技术”是指技术是简单明了的且可以脱离复杂的上下文普遍适用的。很多特殊的技术都可以基于下面九种测试技术中一种或是多种。通过组合通用技术和本模型中其他的元素,我们能够得到很多特殊的测试技术。

项目环境(Project Environment)

项目环境包括项目资源、项目限制和其他一切都能影响测试的元素。有些时候测试人员需要挑战限制,有时需要接受它。测试总是受到项目环境的约束。有经验的测试人员会根据当前语境,选择合适的测试实践。

测试设计和测试执行是一个项目里测试活动最核心、最关键的部分,而这部分活动极易遭受项目环境的影响。我们的项目需要哪些测试?测试的内容应该是什么?每一部分的测试应该怎么执行?所以这些问题都需要了解到项目的情况。测试人员需要利用当前一切可以利用的资源来帮助测试活动的决定。下面列出一些关于项目环境关键词

产品元素(Product Element)

产品元素就是我们的测试对象。软件是复杂且不可见的,我们不能只是测试那些可见的部分。

产品最终会被已体验或是解决方案的形式呈现在客户面前。产品有很多维度,为了很好的测试,我们每个维度都需要检查。下面都是产品重要且唯一的维度。如果测试人员只专注在其中几个维度,很有可能有miss的重要bug

质量标准(Quality Criteria)

质量标准就是帮助测试人员判断产品是否有问题的规则和来源。质量标准定义了产品应该做什么。通过不同类型的标准,你可以更好的计划测试来快速挖掘重要的问题。下面列出的维度都可以被当做潜在的风险区域。

对于下面的维度,请先决定它是否对你所在项目的重要性,然后思考怎么识别产品是正确地的在工作。

观察到的质量(Perceived Quality)

观察到的质量就是测试结果。你永远不可能知道真实的软件产品质量是什么样的,但是你通过一系列的测试能做出评估。

怎么运用HTSM

HTSM由一组指导词组成,从四个不同的角度出发形成了一个模型框架。这个模型可以让测试人员对自己项目和产品有一个从高层抽象到底层细节的系统性思考。这些指导词的作用不是教你怎么测试,而是启发测试人员的思维,发掘测试对象和测试策略。

怎么才能高效的运用此模型来进行适合自己项目和产品的测试设计呢? 可以参考下面的建议:

  1. 通过HTSM先得出一个适用于自己项目的定制的HTSM。定制HTSM也是应用HTSM的过程。
    • HTSM是一个大而全的通用模型,并不适用于所有的IT项目。测试人员应该修改HTSM,以获得符合项目语境的模型。
    • 通常我们可以
      • 增加我们认为值得考虑的因素
      • 删除一些不适用于待测产品或项目的因素
      • 增加标记、注释、链接等元素。标记可以突显重要的元素,注释可以增加更多的细节,链接可以指向更详细的信息源
      • 对于每个因素,我们可以自问
        • 该元素与当前测试任务相关吗?
        • 针对该元素,产品会有什么样的风险?可能有什么样的缺陷?危害程度和发生可能性是多少? (风险驱动,分析每个元素的风险)
        • 需要什么样的测试可以发现这些缺陷?(针对每个风险,采取的测试手段是什么)
        • 依据当前的进度和资源,如何实施这些测试?
      • 结合多个元素,一起进行测试设计,开发测试策略
  2. 在项目启动阶段
    • 质量标准启发测试先知
    • 项目环境启发测试过程
    • 产品元素启发测试覆盖
    • 在制订测试计划时,它可以帮助测试人员完整地思考产品,从而产生系统性的测试计划
  3. 在测试分析阶段
    • 帮助测试人员组合测试想法、深入探索产品,以开发出强有力的测试策略
  4. 在测试执行阶段
    • 在回归测试中,它可以帮助测试人员确定测试范围,制定测试方案
  5. 在测试报告阶段
    • 每个测试技术实施后观察到的质量就是很好的测试报告

参考资料

上一篇 下一篇

猜你喜欢

热点阅读