可以说,软件测试是一款软件产品质量的最后一道防线,是产品上线前必不可少、最重要的一个环节。每一款高质量的软件产品背后,都蕴含了大量的测试工作。而且,这些测试工作很可能是整个软件开发过程中最昂贵、劳动最密集的工作。
虽说从最简单的功能性黑盒测试,到涉及定理证明的复杂测试,已经有很多种方法可以帮助我们提高测试的可靠性和有效性。但是,在设计测试用例的过程中,总还是存在着这样那样的问题,使得软件测试的结果没那么理想。
为此,我们新引入了基于模型的测试,即Model-Based-Testing,简称MBT。
MBT,是自动化测试的一个分支。它是将测试用例的设计依托于被测系统的模型,并基于该模型自动生成测试用例的技术。其中,这个被测系统的模型表示了被测系统行为的预期,也可以说是代表了我们对被测系统的预期。
从质量保证的角度来看,我们可以制定测试内容,但却无法保证测试会覆盖所有可能的组合。而MBT则允许软件开发人员和测试人员,只关注建立系统的正确性以及模型的规范性,再通过专门的MBT工具根据不同的测试用例设计策略从系统模型生成可靠的测试用例。
那么,MBT的原理是什么,而什么样的应用又适合进行MBT呢?
MBT的基本原理
MBT的基本原理是通过建立被测系统的设计模型,然后结合不同的算法和策略来遍历该模型,以此生成测试用例的设计。
用下面的一张图片,为你描述了MBT的过程: