UML状态机 测试用例生成实例

1 背景

UML状态机(State machine)可以直观的进行系统建模,描述系统对事件的响应行为。根据使用目的不同,UML状态机图既可以作为设计阶段的输出,也可以用于开发阶段,将状态机作为一种功能实现手段,通过代码生成将状态机图转换为实现代码。

UML状态机是一种扩展有限自动机,支持并发、层次、事件、历史等特性,可以对复杂系统行为进行建模。UML状态机蕴含的复杂性,使得对状态机的测试成为一个问题,其关键是如何获得满足覆盖目标测试用例集。

OneLogic支持结构化自然语言需求用例生成、UML活动图用例生成,也具备一定的UML状态机图用例生成能力。本文给出OneLogic针对一个具体状态机的用例生成实例。

2 状态机的覆盖目标

状态机有不同的覆盖目标,带来不同的用例生成复杂度。

(1)状态覆盖:状态机中的每个状态至少访问一次;状态覆盖是最基本的覆盖目标。

(2)迁移覆盖:状态机中的每个迁移至少触发一次;迁移覆盖包含状态覆盖,实现迁移覆盖则必然实现了状态覆盖。

(3)状态格局覆盖:由于UML状态机包含层次、并发结构,在状态机运行的某个时刻,可能有多个状态处于激活状态,它们构成一个状态格局(state configuration)。实现状态格局覆盖,意味着被测系统所有可能的状态组合被覆盖。实现状态格局覆盖,必然实现了状态覆盖。

(4)状态格局迁移覆盖:即状态格局之间所有迁移至少触发一次。

除上述状态机覆盖目标外,还可进一步对迁移守卫条件(guard)进行覆盖,包括对guard的判定覆盖、MC/DC覆盖等。

3 实例

本文对上述UML状态机进行用例生成。该状态机具有如下特点。

3.1 含有并发结构

状态机中,顶层状态washer包含如上图所示的3个正交区域(orthogonal region)。同一个父状态下的多个区域是并发执行的。当父状态washer开始执行时,三个区域都开始执行。

3.2 含有层次结构

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UML(统一建模语言)是一种标准化的图形化工具,用于描述软件系统的结构、行为和交互。在UML中,有多种类型的图可以用来表示不同方面的系统设计。以下是几种常用的UML图以及它们的实例。 1. 用例图(Use Case Diagram):用例图描述了系统的功能和用户之间的关系。它由用例(表示系统功能)和参与者(表示系统的用户)组成。例如,一个银行系统的用例图可能包括“登录账户”、“转账”和“查询余额”等用例以及“用户”和“系统管理员”等参与者。 2. 类图(Class Diagram):类图描述了系统中的类、接口、属性和方法之间的关系。它展示了系统的静态结构。例如,在一个图书馆管理系统中,类图可以包含“图书”和“借阅者”类,以及它们之间的关系,如“借阅者可以借阅多本图书”。 3. 时序图(Sequence Diagram):时序图描述了系统中不同对象之间的交互顺序。它用于表示消息的传递和对象之间的时序关系。例如,在一个在线购物系统中,时序图可以展示“顾客选择商品”、“系统查询库存”和“生成订单”等消息的交互顺序和时序关系。 4. 活动图(Activity Diagram):活动图描述了系统中的业务流程和控制流。它用于表示操作的顺序和条件分支。例如,一个用户注册流程可以用活动图来表示,包括“输入用户名和密码”、“验证用户名是否可用”和“创建用户账户”等活动和决策。 5. 状态图(State Diagram):状态图描述了对象或系统在不同状态下的行为和转换。它用于表示系统的状态机。例如,一个电梯的状态图可以包括“停止”、“上升”和“下降”等状态,以及它们之间的转换条件和动作。 以上是几种常用的UML图及其实例。不同类型的UML图可以用来描述系统的不同方面,同时它们也可以结合使用来完整地描述一个系统的设计和行为。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值