基于模型的测试工具: Spec Explorer

    xiaoxiao2021-08-19  221

    一、什么是基于模型的测试

    Wiki的描述如下:基于模型的测试属于软件测试领域的一种测试方法。按照此方法,测试用例可以完全或部分的利用模型自动产生。以上所说的模型通常是指对被测系统(SUT,system under test)某些(通常是功能性的)方面的描述。

    模型一般都是对被测系统(SUT,system under test)预期行为动作的抽象描述。 这些测试用例的集合就是我们平时所称的抽象测试套件(abstract test suite). 抽象测试套件不可以直接执行于需测试的系统,因为,他们不在同一抽象级别。

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

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

    基于模型的测试是一个轻量级的,形式化的验证软件系统的方法。为什么这么说呢,因为首先,基于模型的测试对待测软件系统(通常被称为System Under Test,简称SUT)进行形式化的建模,设计出机器可读的模型;其次,和其他形式化方法比,基于模型的测试并不致力于让待测软件系统与规格说明在所有可能情况下都保持一致,而是系统化的从模型生成一组测试用例,使用这组测试用例测试待测软件系统,得到充分的证据说明待测系统的行为与模型期望是一致的。轻量级和重量级的方法的根本区别在于一个是充分证明,一个是完全证明。目前完全验证一致性的代价非常高,重量级的形式化方法往往难以被应用到实际工程中,而基于模型的测试在这方面体现了优势,并已被运用到很多大型项目中。

    二、基于模型测试工具Spec Explorer

    用户可以通过Spec Explorer对一个软件系统的期望行为进行建模,并自动生成能够在Visual Studio的测试框架下运行的测试代码。模型可以用当前主流的程序设计语言C#开发,然后通过Cord语言脚本对模型进行配置和裁剪。

    模型可以图形表达方式查看,帮助理解分析软件系统预期行为,或与其他人沟通。模型的大小可以通过正则表达式来界定,而产生的测试套件不仅能够在单独的Visual Studio测试框架中运行,也能够在其他单元测试框架中运行。

    本文来自云栖社区合作伙伴“doNET跨平台”,了解相关信息可以关注“opendotnet”微信公众号


    最新回复(0)