什么是基于模型的测试?

什么是基于模型的测试?

基于模型的测试是一种软件测试技术,通过将待测软件的运行时行为与模型预测进行比较来检查。模型是对系统行为的描述。行为可以用输入序列、动作、条件、输出以及数据从输入到输出的流动来描述。它应该易于理解且可重用;可共享的系统必须对被测系统有精确的描述。

有许多可用的模型,它们描述了系统行为的不同方面。模型的例子有:

  • 数据流
  • 控制流
  • 依赖图
  • 决策表
  • 状态转换机

基于模型的测试描述了系统如何响应某个动作(由模型决定)。提供动作,然后查看系统是否按预期响应。

这是一种轻量级的形式化方法,用于验证系统。这种测试可应用于硬件和软件测试。

基于模型的测试示例

Model Based Testing

上述模型解释了在记事本中编写诗歌的简化方法以及与每个步骤相关的可能操作。对于每个操作(如开始、输入诗歌、保存),都可以生成测试用例,并验证输出。

MBT的类型

基于模型的测试框架有两种类型:

  1. 离线/先验:在执行测试套件之前生成测试套件。测试套件仅仅是测试用例的集合。
  2. 在线/即时:在测试执行期间生成测试套件。

测试中的不同模型

为了理解MBT,有必要了解下面解释的一些模型。让我们逐一 살펴보:

有限状态机

此模型帮助测试人员根据所选输入评估结果。输入的各种组合可以导致系统处于相应的状态。

系统将具有一个特定状态和当前状态,这些状态由测试人员给出的一组输入控制。

考虑以下示例:

有一个系统允许员工登录应用程序。现在,员工的当前状态是“退出”,一旦他登录系统,状态就变为“进入”。在“进入”状态下,员工可以查看、打印和扫描系统中的文档。

Finite State Machines

状态图

它是有限状态机的扩展,可用于复杂和实时系统。状态图用于描述系统的各种行为。它具有确定的状态数量。系统行为以每个状态的事件形式进行分析和表示。

例如 –

缺陷在缺陷管理工具中以“新建”状态提出。一旦开发人员修复,状态必须更改为“已修复”。如果缺陷未修复,则将状态更改为“重新打开”。状态图应设计成在每个状态下都调用一个事件。

State Charts

统一建模语言(UML)

统一建模语言 (UML) 是一种标准化的通用建模语言。UML 包含一套图形符号技术,用于创建可视化模型,这些模型可以描述系统非常复杂的行为。

UML 具有以下符号:

  • 活动
  • 参与者
  • 业务流程
  • 组件
  • 编程语言

Unified Modeling Language

基于模型的测试的挑战

在每个组织中部署MBT显然需要大量的投资和精力。以下是MBT在软件工程中的缺点。

  • 测试人员所需的必要技能
  • 学习曲线时间会更长
  • 难以理解模型本身

模型测试的优点

以下是MBT的优点

  • 易于测试用例/套件维护
  • 成本降低
  • 提高测试覆盖率
  • 可以在N台机器上运行不同的测试
  • 早期缺陷检测
  • 缺陷数量增加
  • 节省时间
  • 提高测试人员的工作满意度

结论

测试人员无论如何都会在测试过程中构建心理模型。这些心理模型可以转化为纸面模型。这有助于测试人员实现可读性和可重用性。

基于模型的测试是一种新的软件测试方法。软件测试的演变如下所示:

Evolutoin Of Software Testing