查看原文
其他

测试中不可或缺的:启发式测试策略

Test Ninja 软件质量报道 2022-11-10
【测试策略在测试工作中很重要,但不少同学会有不同的理解,常常是错误的理解,为此准备多写几篇文章讨论测试策略,提升认知,提高测试效能。】
在测试中,我们常常采用启发式测试策略模型(Heuristic Test Strategy Model,HTSM),如图1所示,即启发我们进行测试策略分析的工具,更强调如何更好地适应上下文的变化。而且,在敏捷开发中上下文变化是正常的,不变是不存在的,这对敏捷测试提出了更大的挑战,更需要启发式测试策略。
可以学习我国古代军事名著《孙子兵法》,从中获得一些灵感,帮助我们实施上下文驱动的启发式测试策略,比如 “审时度势”“知彼知己,百战不殆”“能因敌变化而取胜者,谓之神”,以及“用兵之法,十则围之,五则攻之,倍则分之,敌则能战之,少则能逃之,不若则能避之”等。2012 年,我和几个同事写的《完美测试》一书,其中一章就讨论了如何在测试中应用孙子兵法 36 计,引用了其中的十六计,包括“欲擒故纵”“趁火打劫”“连环计”“顺手牵羊”“偷梁换柱”“无中生有”“借尸还魂”等。
图1 启发式测试策略模型示意图
启发式测试策略是根据质量标准、项目背景、产品元素来选择合适的测试技术,最终交付给用户可接受的质量。启发式测试策略是综合考虑质量标准、项目背景、产品元素等3个方面众多的影响因素,如图2所示(第3层折叠起来了),选择合适的测试技术,这样制定出来的测试策略,这样更客观、科学,从而能正确地指导具体的测试工作,让测试做得又快又好。 

图2 完整的HTSM示意图


每个团队都处在特定的行业(如汽车电子、金融、物流等)、开发特定的产品(某产品线上),这样就决定了这个团队所面临的特定质量标准、特定行业背景、特定产品类型等,质量标准、项目背景、产品元素等某些因素是不需要考虑的,某些因素相对固定,可能只有少量因素是动态的而且在当前项目中比较特殊,是值得我们特别关注的
例如,开发某个车载系统(属于汽车电子行业),则需要考虑 ISO 26262 标准,而且涉及典型的 V2X 网络,不仅要考虑这种网络的安全性,还要考虑实时性要求,包括时间同步等方面的验证。在测试技术上,会引入网络接口测试工具、仿真技术等。借助这些测试技术,让测试不依赖于硬件(汽车),而且测试执行速度会更快、可以覆盖更多的异常场景。
在项目上,也要特别了解本项目的进度是否特别紧?处在什么阶段?如果还是尝试阶段,那么就不会直接上线,对安全性、兼容性等质量要求会低一些。在产品元素方面,也可以了解是否分层?有哪些 API?API 文档定义是否已完成等?
这样就可以完成该项目特有的启发式测试策略模型(HTSM),如图3所示。
 图3  定制的HTSM示意图
定制HTSM的过程是应用HTSM的过程,也是训练我们系统思维、创造性思维的过程,不断思考、启发、再思考的过程,快速地在深度和广度探索,及时捕获调整上下文因素、风险,产生好的想法。这种练习经常做,思维自然会更敏捷,操作起来也会更快。上一个版本定制的HTSM也可以直接借用,然后在上面调整、优化,达到测试资产的复用,这样测试策略制定是不是更快些?而且是一个完善、优化的过程,形成更有价值的测试资产。

参考链接:


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存