如何在MagicDraw中强制测试用例顺序并便捷插入新测试步骤?
问题:MagicDraw中测试步骤的顺序管控与便捷插入方案
问题背景
计划将DOORS中遗留的基于文本的测试计划/结果迁移至MagicDraw,采用表格展示。已自定义TestSection(对应DOORS的章节,支持展开/折叠)和TestStep构造型,TestSection包含1个及以上TestStep,通过Generic表格呈现。
核心需求矛盾:
- 多数测试步骤必须严格按顺序执行,乱序会导致测试失败
- 需要方便未来插入新测试步骤,同时不能丢失与需求的追溯性
已尝试方案
- 方案1:优先使用表格的「上移行/下移行」按钮调整顺序,但误点列标题会丢失自定义排序,且排序仅对当前表格有效,多表格需手动重复操作,未找到禁用列标题排序的设置
- 方案2:在
TestSection构造型中添加包含TestStep列表的属性,虽可排序,但需通过自定义列和元链导航提取步骤,导致测试步骤挤在单行,无法直接操作数据 - 方案3:目前使用自动编号生成唯一测试ID,考虑新增属性作为测试步骤编号后通过列排序管控顺序,但在中间插入新测试时操作繁琐
- 方案4:用带控制流的序列或活动图记录顺序,但构建图耗时且无法直接生成适合测试人员使用的简洁表格
推荐解决方案
1. 优化顺序字段,实现灵活插入
给TestStep构造型新增**sequenceOrder**整数属性(默认值设为0):
- 插入新步骤时,直接在目标位置的上下步骤之间设置中间序号(比如在序号10和20的步骤之间插入新步骤,设为15),无需批量修改后续步骤的序号
- 在Generic表格的「Configure Table」中,将
sequenceOrder设为唯一排序键,同时禁用其他列的排序权限,避免误操作打乱顺序 - 可编写简单的MagicDraw脚本,实现选中步骤后自动按当前位置生成连续序号,解决序号碎片化的问题
2. 利用有序包含特性固化顺序
修改TestSection与TestStep的关联为有序包含(Ordered Containment):
- 在自定义UML Profile中,将
TestSection对TestStep的聚合关系设置为ordered - 展开
TestSection时,TestStep会自动按模型中包含的顺序显示,无需依赖排序列 - 调整顺序时,直接选中
TestStep行使用「上移/下移」按钮,顺序会直接保存到模型结构中,不会因点击列标题丢失 - 插入新步骤时,在目标位置右键选择「Create Child Element > TestStep」,新步骤会自动插入到当前选中行的下方,天然保持顺序
3. 规避列标题误排序的小技巧
如果无法找到全局禁用列排序的设置,可通过表格配置锁定:
- 在「Configure Table」中,将所有列的排序选项设为「Not Sortable」,仅保留管控顺序的列(如
sequenceOrder或有序包含对应的列)可排序 - 将配置好的表格保存为自定义模板,所有测试表格统一使用该模板,避免重复设置
内容的提问来源于stack exchange,提问作者220Subsonic
相关产品推荐
相关产品推荐

