[发明专利]面向动态场景的测试序列生成方法及系统有效
申请号: | 201110375722.1 | 申请日: | 2011-11-23 |
公开(公告)号: | CN102521122A | 公开(公告)日: | 2012-06-27 |
发明(设计)人: | 李开成;魏国栋;袁磊;刘雨;付强 | 申请(专利权)人: | 北京交通大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王莹 |
地址: | 100044*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 动态 场景 测试 序列 生成 方法 系统 | ||
技术领域
本发明涉及数据处理技术领域,尤其涉及一种面向动态场景的测试序列生成方法及系统。
背景技术
列车运行控制系统或者航空航天系统等相关系统都是按照某些特定的动态场景来实施相应的控制,在不同的场景下控制系统完成的功能以及执行的结果都是不同的。为了保证系统运行安全,对控制系统必须进行全功能的测试,而测试序列的生成是进行系统测试不可避免的一个重要环节。
由于这些控制系统在不同的条件下要完成不同的场景功能,因此系统包含的需求条目非常多,想要达到系统级全功能的覆盖测试是非常困难的。目前,通用的测试序列生成方法是通过捕获场景运行数据作为测试序列脚本,然后将该脚本在测试系统中运行,从而对系统进行全功能或者回归测试。
目前基于动态场景的测试序列生成没有一套完备的方法,通用的做法是捕获场景运行数据将其作为脚本,然后将该脚本在测试系统中运行。这种方法一方面由于场景运行比较固定,有些比较少见的场景难以捕获,导致测试序列不完备;另外一方面,由于测试序列脚本是以一个整体出现,测试脚本内部前后联系比较紧密,难以提取测试序列脚本中的部分内容进行复用。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:提供一种面向动态场景的测试序列生成方法及系统,该系统和方法适用于具有动态场景的控制系统或者软件系统的测试序列快速生成;利用本系统和方法可以使测试序列的生成模块化和标准化,提高了测试序列的生成效率和复用程度,而且能够确保对系统的全功能覆盖。
(二)技术方案
为解决上述问题,一方面,本发明提供了一种面向动态场景的测试序列生成方法,包括以下步骤:
S1:对系统的测试案例按照不同的动态场景进行分类,形成不同场景的测试案例集;
S2:对所述不同场景的测试案例集按照执行的先后顺序进行串联,形成每个场景下的测试子序列;
S3:将所述测试子序列按照其入口条件和出口条件进行标准化设计,组合生成能够在测试系统中执行的测试序列。
优选地,所述步骤S1中将所述测试案例分成三类:
初始场景,对应于系统上电开始一直到运行至一个特定的状态为止,与系统外部各个接口的连接以及系统内部初始化的内容归类为所述初始场景;
过程场景,对应于所述初始场景结束后直到结束场景开始前为止,将系统依据不同的输入或者处于不同时刻所执行的不同内容归类为所述过程场景;
结束场景,对应于系统正式运行结束后直到系统断电为止,将系统完成与外部接口的断链以及系统内部信息的保存或删除处理的内容归类为所述结束场景。
优选地,依据系统运行过程的不同,将所述过程场景对应地拆分成多个不同的过程场景。
优选地,步骤S2中对所述不同场景的测试案例集按照执行的先后顺序进行串联,形成每个场景下的测试子序列的步骤具体包括:
S21:根据各场景的输入条件,分别确定各场景的标准输入接口信息和输入状态信息,并且依据这些信息,筛选出符合这些接口信息和状态信息的测试案例分别作为各场景中的每一条子序列的第一个测试案例;
S22:从步骤S21筛选出的测试案例中获取一个未被执行过的测试案例,如果不能获取,则转至步骤S24;如果能够获取,则将该测试案例置为已执行,并转到步骤S23;
S23:检验步骤S22获取的测试案例所在的场景中还未被排序测试案例的输入接口信息和状态信息是否与本场景子序列的上一个测试案例匹配:
如果是,则将与上一个测试案例匹配的测试案例排在该子序列的上一个测试案例之后,然后判断其输出接口信息和输出状态信息是否属于本场景结束条件:如果属于则该测试案例作为本子序列的最后一个测试案例,并执行步骤S22;如果不属于则重新执行步骤S23;
如果不是,则重新执行步骤S23的内容;
S24:全部场景的测试子序列已经串联完毕。
优选地,所述步骤S3中将所述测试子序列按照其入口条件和出口条件进行标准化设计具体为:依据不同子序列的入口条件和出口条件,按照标准格式标识出每一条子序列的输入和输出接口以及状态信息,供后面生成测试序列使用。
优选地,所述步骤S3中组合生成能够在测试系统中执行的测试序列的步骤具体包括:
S31:检查初始场景中是否还有未处理的子序列,如果没有,则说明执行完毕,跳到步骤S34;如果有,则从初始场景包含的未处理子序列中选取一条子序列作为本测试序列的第一条子序列,然后执行步骤S32;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京交通大学,未经北京交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110375722.1/2.html,转载请声明来源钻瓜专利网。