[发明专利]一种基于状态迁移的自动测试方法及系统有效
申请号: | 202110456418.3 | 申请日: | 2021-04-27 |
公开(公告)号: | CN112988596B | 公开(公告)日: | 2021-08-03 |
发明(设计)人: | 曹雅鑫;崔岩;彭栋;张玙;韩兴邦;王振辉 | 申请(专利权)人: | 北京全路通信信号研究设计院集团有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京知联天下知识产权代理事务所(普通合伙) 11594 | 代理人: | 张迎新;史光伟 |
地址: | 100070 北京市丰台区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 状态 迁移 自动 测试 方法 系统 | ||
1.一种基于状态迁移的自动测试方法,其特征在于,包括以下步骤:
获取测试脚本,所述测试脚本包含一个或多个状态元素,所述状态元素用于表示测试动作和状态迁移关系;
解析测试脚本,将状态元素转化为状态对象,将状态对象存储在状态对象列表中;
执行自动测试,包括:
从状态对象列表中获取至少一个状态对象作为当前状态对象,根据当前状态对象执行相应的测试动作;
根据指定条件将当前状态对象迁移为状态对象列表中的其他状态对象,继续根据切换后的当前状态对象执行自动测试;
所述状态元素包括动作元素和迁移元素两个子元素;
通过所述动作元素定义测试动作,通过所述迁移元素定义满足指定条件时需要执行的下一个状态元素;
解析测试脚本时,为脚本中各个元素创建相应的对象,脚本中相应元素的属性映射为对象属性,包括:
将状态元素映射为状态对象,将迁移元素映射为迁移对象并存储在迁移对象列表中,将动作元素映射为动作对象并存储在动作对象列表中;
状态对象包含相应的动作对象列表和迁移对象列表。
2.根据权利要求1所述的基于状态迁移的自动测试方法,其特征在于,所述测试脚本还包括任务元素,所述任务元素包含一个或多个所述状态元素,作为该任务元素的子元素。
3.根据权利要求2所述的基于状态迁移的自动测试方法,其特征在于,所述测试脚本还包括任务组元素,所述任务组元素包含一个或多个所述任务元素,任务元素作为该任务组元素的子元素。
4.根据权利要求1所述的基于状态迁移的自动测试方法,其特征在于,所述动作元素的属性还包括变量引用符号,所述变量引用符号通过指定名称引用在前执行的状态元素的迁移元素中获取的变量。
5.根据权利要求2所述的基于状态迁移的自动测试方法,其特征在于,以并行方式执行一个测试脚本中的一组相关联的任务。
6.根据权利要求5所述的基于状态迁移的自动测试方法,其特征在于,以并行方式执行一个测试脚本中的一组相关联的任务包括:
采用任务对象列表存储任务元素所转换的任务对象;
执行时,从任务对象列表中获取多个任务对象,并行执行任务对象所代表的测试任务。
7.根据权利要求6所述的基于状态迁移的自动测试方法,其特征在于,并行执行任务对象所代表的测试任务包括:采用分时复用的方式周期性地轮询调度任务对象列表中的各个任务。
8.根据权利要求7所述的基于状态迁移的自动测试方法,其特征在于,采用分时复用的方式周期性地轮询调度任务对象列表中的各个任务包括:一个线程在每个周期内,处理任务组中的各个任务当前状态的动作和/或迁移,模拟多个任务的并发执行。
9.根据权利要求7所述的基于状态迁移的自动测试方法,其特征在于,采用分时复用的方式周期性地轮询调度任务对象列表中的各个任务包括:周期遍历任务对象列表中的任务,按照任务对象列表中任务的优先级依次判断各个任务的当前状态是否具备跳转条件;如果处理时刻该任务的当前状态中任一迁移条件满足,则更新该任务的当前状态,跳转至迁移指定的目标状态;一周期内对一个任务的跳转最多执行一次。
10.根据权利要求2所述的基于状态迁移的自动测试方法,其特征在于,执行自动测试包括:
从状态对象列表中获取至少一个状态对象作为当前状态对象,根据当前状态对象执行相应的测试动作;
获取当前状态的动作对象,按照动作对象向待测设备发送数据;
获取当前状态的迁移对象,按照迁移条件校验待测设备反馈的数据,并根据校验结果跳转至新的状态对象。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京全路通信信号研究设计院集团有限公司,未经北京全路通信信号研究设计院集团有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110456418.3/1.html,转载请声明来源钻瓜专利网。