基于模型的测试

基于模型的测试（英語：Model-based testing）属于软件测试领域的一种测试方法。按照此方法，测试用例可以完全或部分的利用模型自动产生。以上所说的模型通常是指对被测系统（SUT,system under test）某些（通常是功能性的）方面的描述。

模型一般都是对被测系统预期行为动作的抽象描述。这些测试用例的集合就是抽象测试套件（abstract test suite）。抽象测试套件不可以直接执行于需测试的系统，因为，他们不在同一抽象级别。

测试套件（test suites）是由模型生成，而不是由源代码生成。因此，基于模型的测试又常常被当作黑盒测试的一种形式。但从某种层面来说，这并不十分准确。毕竟，基于模型的测试是与源代码级的测试覆盖率，以及对代码的功能测试都有着很大的关系。

对于复杂的软件系统中，如何应用基于模型的测试还在探索中。

模型
目前，模型大多数使用手工创建。但同时，有很多使用自动化方式创建模型的尝试也在研究当中。建立新模型的一种重要方式是通过使用类似的语言进行"模型转换"。
目前也有很多工具是基于模型驱动的测试工具，使用模型驱动通过画积木图或者流程图的方式自动生成测试代码，可以直接进行自动化测试。

相關條目 

基於模型的設計
模型在環
领域特定语言
特定域建模
模型驱动架构
模型驱动工程
面向对象的系统分析
時間分割測試

相关链接
http://www.model-based-testing.org（英文）
http://www.goldpractices.com/practices/mbt/index.php  （关于基于模型测试的一个调查）（英文）
http://www.mdqa.org/  (also http://www.modelbasedtesting.info/ ) （一个关于基于模型测试 以及 模型驱动质量保证的站点)(英文)

延伸閱讀
OMG UML 2 Testing Profile;  

Practical Model-Based Testing: A Tools Approach, Mark Utting and Bruno Legeard, , Morgan-Kaufmann 2007.
Model-Based Software Testing and Analysis with C# , Jonathan Jacky, Margus Veanes, Colin Campbell, and Wolfram Schulte, , Cambridge University Press 2008.
Model-Based Testing of Reactive Systems  Advanced Lecture Series, LNCS 3472, Springer-Verlag, 2005. .

A Systematic Review of Model Based Testing Tool Support , Muhammad Shafique, Yvan Labiche, Carleton University, Technical Report, May 2010.

2011/2012 Model-based Testing User Survey: Results and Analysis. Robert V. Binder. System Verification Associates, February 2012 

软件测试