什么是基于模型的测试?

什么是基于模型的测试?

基于模型的测试是一种软件测试技术,其中根据模型的预测检查被测软件的运行时行为。模型是对系统行为的描述。行为可以用输入序列、动作、条件、输出和从输入到输出的数据流来描述。它应该是可实际理解的并且可以重复使用;可共享必须对被测系统有精确的描述。

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

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

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

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

基于模型的测试示例

基于模型的测试

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

MBT 类型

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

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

测试中的不同模型

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

有限状态机

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

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

考虑以下示例:

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

有限状态机

州图

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

例如 -

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

州图

统一建模语言 (UML)

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

UML 具有如下符号:

  • 游戏及活动
  • 演员
  • 业务流程
  • 组件
  • 编程语言

统一建模语言

基于模型的测试的挑战

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

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

模型测试的优点

MBT 的优点如下:

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

结语

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

基于模型的测试是一种新的方法 软件测试软件测试的发展历程如下:

软件测试的演进