现如今,市面上有太多关于测试技术的文章。网上随便就可以搜到各种自动化、以及各种高大上的框架,然而关于测试思维和测试方法却鲜有人提及。诚然测试人员不能缺少代码相关的硬技术,但同时也不应忽略测试思维等“软素质”,这个系列将重点探讨测试策略及测试设计相关的知识。今天先聊一聊启发式测试策略。
01
启发式测试策略模型(Heuristic Test Strategy Model,简称HTSM)是测试专家James Bach提出的一组帮助测试设计的指南(guideline),如下图所示。启发式测试策略模型是这样一个框架,需要根据质量定义(Quality Criteria)、项目环境(Project Environment)和产品元素(Product Elements)来选择测试技术(Test Techniques)进行测试,并最终得到可感知的产品质量(Perceived Quality)。
项目环境:资源、约束和其他影响测试的项目元素。比如产品的成熟度、需求的质量、测试人员的能力,研发模式等。有经验的测试人员会根据当前语境(Context),在约束条件下充分运用资源,以高效地测试。
产品元素:需要测试的对象,它通常会包含产品的物理结构、功能覆盖、数据逻辑处理、外部依赖元素及日常操作等内容,需要测试人员根据产品特性做针对性的分析、拆解。在定义产品元素的过程中,加深对产品的理解
质量定义:产品在不同的阶段需要对质量做不同的定义,高质量注入意味着高成本(时间成本、技术成本、人力成本),当下我们追求的是合适的质量。所以需要在制定测试策略的时候和团队一起定义好质量,包含研发质量和交付质量目标是什么。
测试技术:基于前面三者信息,测试人员需要针对性地选择不同的测试技术,功能测试、性能测试、安全测试、兼容性测试、探索性测试、容量测试、安装测试等等一系列测试活动的选择,都将基于以上三个要素进行选择。
可感知的产品质量:最终交付给用户的产品质量。经过前面4个步骤,执行过后,能够被客户认可和感知的质量,是经过分析、执行后得到的最终产物。
02
HTSM中指导性词汇是测试的指南,其作用不是教导如何具体地测试,而是启发测试人员的思维,发掘测试对象和测试策略,重点在于"启发式”。HTSM对于测试设计的意义:
(1)测试设计以风险驱动。测试人员分析质量标准、项目环境、产品元素中的风险,设计有针对性的测试策略。
(2)在测试设计时,质量标准启发测试经验,项目环境启发测试过程,产品元素启发测试覆盖,观察到的质量启发测试报告。
(3)对于测试,HTSM强调测试策略的多样性,平衡代价和收益,利用启发式方法充分发挥测试人员的技能。
在制定测试计划初稿时,测试人员可以更完整的地思考产品的方方面面,从而产生系统的测试计划。
在测试过程中,它也可以帮助测试人员组合测试想法、深入探索产品,以开发出强有力的测试策略。
在回归测试中,它同样可以帮助测试人员确定测试范围,制定测试方案。
03
HTSM是层次结构,其顶层元素(质量标准、项目环境、产品元素、测试技术)可以分解为次层元素,而这次层元素可进一步分解为第三层元素,对于第三层元素,团队可以根据团队特性和测试人员的认知能力,逐步去完善和修改,没有具体的约束。James Bach也给出了自己的思考和建议,形成了一张导图,把众多需要思考的小节点都给出对应的说明,有兴趣的同学可以学习下,值得借鉴,但不需要被它所固化,我们需要有更多的思考和总结,结合更新的测试技术能力和质量要求,不断改进它。
04
测试能力不仅仅是代码能力的比拼,还有众多的测试策略和理论体系需要去学习和补充。还有哪些好玩的测试理论呢?漫游测试和情景测试是什么,如何在实际的项目中应用呢?测试设计有哪些方法论和框架支撑?笔者会结合自己的测试经验,对测试理论做一次梳理,敬请期待。