基于模型的测试,即Model-Based-Testing ,简称MBT。
MBT,是自动化测试的一个分支。它是将测试用例的设计依托于被测系统的模型,并基于该模型自动生成测试用例的技术
只关注建立系统的正确性以及模型的规范性,再通过专门的MBT工具根 据不同的测试用例设计策略从系统模型生成可靠的测试用例
基本原理
建立被测系统的设计模型,然后结合不同的算法和策略来遍历该模型,以此生成测试用例的设计
MBT工具简介
BPM-X
BPM-X根据不同的标准(比如,语句、分支、路径、条件)从业务流程模型创建测试用例。
它还可以从多个建模工具导入模型,并可以将测试用例导出到Excel、HP Quality Center等。这个工 具,适用于业务流程比较清晰直观的场景。
fMBT
fMBT是一组免费的、用于全自动测试生成和执行的工具,也是一组支持高水平测试自动化的实用程序 和库,主要被应用在GUI测试中。
fMBT包括用于多平台GUI测试的Python库,用于编辑、调试、运行和记录GUI测试脚本的工具,以及用 于编辑和可视化分析测试模型和生成的测试工具。
GraphWalker
GraphWalker以有向图的形式读取模型,主要支持FSM、EFSM模型。它读取这些模型,然后生成测试 路径。GraphWalker除了适用于GUI测试外,更适合于多状态以及基于事件驱动的状态转换的后台系统。
另外,GraphWalker还支持从有限状态机中生成测试用例。
除此之外,市面上还有很多MBT测试工具,比如GSL、JSXM、MaTeLo 、MBT Suite等。这里就不再一 一介绍了,你可以自行百度了解它们的特点和适用场景,从而选取合适自己的工具
优势
MBT并不能算是一种新颖的测试技术,早在七八年前就已经被提了出来并且试图应用于软件产品 的测试工作中。但是,MBT在很长一段时间内,却一直停留在概念阶段,主要原因是一直没有普适的工 具支持,所以很少有成功实施的实际案例。同时,业界一直以来都缺乏高效的测试用例设计生成策略, 所以虽然大家都能看到MBT的优势,但能在实际项目中应用执行的却是寥寥无几
MBT的优点如下:
- 测试用例的维护更轻松。由于测试用例是基于被测系统的模型生成的,因此我们只需维护好模型即 可,而无需关注测试用例的细节。
- 软件缺陷发现得更早。由于我们在构建被测系统模型的过程中,已经对被测系统有了比较全面的理 解,加之要根据系统需求/说明完成建模过程,所以我们可以在早期建模时发现测系统可能存在 的明显缺陷,而不用等到执行了大量的测试用例以后才发现这些缺陷。
- 测试自动化的水平更高。由于MBT只需建好模型便可以自动生成测试用例,所以不再需要人工编写 测试文档。而更高级的应用,甚至可以直接生成可以直接执行的自动化测试脚本。
- 测试覆盖率变得更高,使得彻底的测试(即:穷尽测试)成为了可能.当然,是否有必要开展彻底的测试还是要由风险决定。这里的风险指的是,由于漏测导致产品问题 对业务的影响程度。MBT只是从技术上提供了可能性
- 基于模型间接维护测试用例的方式更高效
劣势
开展MBT的三大难点:
- 学习成本较高。MBT要求开发人员和测试人员都精通建模,这就需要一定的培训成本,需要让开发 人员去学习测试的技能,让测试人员去学习建模概念
- 使用MBT的初期投资较大。在很多情况下,我们并不能找到适合自己产品的建模工具,而需要自 行创建MBT工具
- 早期根据模型生成测试用例的技术并不是非常成熟。很多时候只是根据图论的算法来遍历模型,这 就会导致生成的很多测试用例在业务上根本没有任何实际意义,也因此阻碍了MBT在实际项目中的落地
如果一个应用的任何组件都可以通过模型来模拟、通过驱动程序来驱动,并可以通过测试结果来比较的 话,那么这个应用就是MBT的最佳候选者
文章链接 https://fangzongzhou.github.io/2021/01/26/计算机/软件测试/基于模型的测试/