CN113704093B - 一种通用联锁软件测试用例生成方法 - Google Patents
一种通用联锁软件测试用例生成方法 Download PDFInfo
- Publication number
- CN113704093B CN113704093B CN202110896668.9A CN202110896668A CN113704093B CN 113704093 B CN113704093 B CN 113704093B CN 202110896668 A CN202110896668 A CN 202110896668A CN 113704093 B CN113704093 B CN 113704093B
- Authority
- CN
- China
- Prior art keywords
- state
- interlocking
- states
- quaternary
- test case
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000012360 testing method Methods 0.000 claims abstract description 98
- 230000010365 information processing Effects 0.000 claims abstract description 16
- 238000006243 chemical reaction Methods 0.000 claims description 37
- 230000008569 process Effects 0.000 claims description 29
- 230000007704 transition Effects 0.000 claims description 13
- 101100134058 Caenorhabditis elegans nth-1 gene Proteins 0.000 claims description 3
- 230000015607 signal release Effects 0.000 claims 1
- 238000013522 software testing Methods 0.000 abstract description 9
- 238000004088 simulation Methods 0.000 description 4
- 238000013515 script Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种通用联锁软件测试用例生成方法,涉及通用联锁软件测试技术领域,包括状态信息表生成步骤、状态信息处理步骤和测试用例生成步骤,本方案通过测试用例的自动生成可提供通用联锁软件的测试方法,采用状态机建立模型,状态机建模简单,状态之间的转换清晰,便于模型的识别和查错,可支持对联锁系统软件进行全方面测试,减少软件测试人员工作量,提高测试正确性,本方案是按照每个联锁功能进行建模的,针对每个独立的联锁功能都能验证到。
Description
技术领域
本发明涉及通用联锁软件测试技术领域,确切地说涉及一种通用联锁软件测试用例生成方法。
背景技术
如今,我国“四纵四横”的高速铁路网络已基本成型,成为世界上规模最大、最现代化的高铁网。中国高铁正在引领世界高速铁路发展,无愧为一张亮丽的国家名片。随着研发的不断投入和技术的持续演进,联锁工具软件的更新换代使得其功能更加强大。随着联锁工具软件的功能越来越复杂,软件测试工作的压力也越来越大,测试的成本也相应越来越高,传统的人工测试已经很难满足日益增长的软件测试需求。
软件测试是软件项目的一个重要环节,也是确保软件质量的一个重要手段,可以提高软件的质量与可靠性,特别联锁软件的测试是保证联锁软件质量的重要环节和依据,是保证软件质量和可靠性的重要手段。
即,联锁软件测试成本已明显增高,软件测试工作是一项费事费力的活动。因此如何高效、正确、快速的对软件进行测试逐渐成为研究的方向。
在现有技术中,如公开号为CN107992020A,公开时间为2018年5月4日,名称为“一种基于大数据的联锁自动测试系统及方法”的中国发明专利文献,公开了一种联锁自动测试系统及方法,该系统包括:联锁自动测试装置以及设置在各个运营车站处的数据采集装置;其中联锁自动测试装置有:仿真I/O设备、仿真命令控制设备和集中控制器;数据采集装置分别用于采集对应运营车站处的联锁系统的工作状态信息;集中控制器根据接收到的各运营车站处的联锁系统的工作状态信息设计用于测试待测试联锁机的测试用例,以及根据每条测试用例设计的测试内容控制所述仿真I/O设备、仿真命令控制设备向待测试联锁机进行相应的信息输入,并检测待测试联锁机的输出是否与测试用例中的目标输出结果一致以完成对待测试联锁机的测试。
现有技术中的方案在一定程度上提高了测试效率,但是仅针对某一种具体应用的联锁软件,既有的软件测试的手段主要为人工测试和自动化测试。传统的软件测试,即人工对软件进行测试,但是人工测试存在费时费力且效率低下,并且人工测试易产生主观错误等缺陷。当前市面上使用较多的自动化测试工具有QTP(Quick Test Professional,软件功能自动测试工具)、WinRunner(企业级的功能测试工具)、QA Run(应用的功能测试工具)以及Test Partner等。以QTP为例,自动化测试用来执行重复的手动测试,用以检测应用程序是否能够达到预期的功能及正常运行,达到省时、省力、效率高以及方便灵活的优点;但是这些现有技术方法也存在着一定的局限性和缺点,比如它们都适用于特定的软件环境,而且工具脚本维护起来比较麻烦,对于不同用例需要重新编译脚本,且无法测试部分联锁工具的软件需求,另外,也存在某些自动化测试工具在使用上有较强的门槛(脚本难以编写),或者个别自动化测试软件授权费用高昂。
发明内容
本发明的目的在于针对现有的线路区段划分技术方案的不足,提出一种结合计算机联锁技术条件、分析软件的功能需求将其转化为工具可识别的状态对象,并对识别的状态进行划分,形成若干四元组合,生成联锁状态转换的树形网状结构,通过对建立的树形网状结构解析,得到结构中若干四元组合的源状态、联锁条件和目标状态的关系和顺序,依据该关系和顺序,生成抽象的测试用例、根据预先写好定义的输入对每一组抽象用例进行反推、生成一系列的具体执行的测试案例的通用联锁软件的测试方法。
本发明的目的是通过以下技术方案实现的:
一种通用联锁软件测试用例生成方法,包括状态信息表生成步骤、状态信息处理步骤和测试用例生成步骤,具体的:
所述状态信息表生成步骤,根据通用联锁软件中描述的进路建立阶段、进路锁闭阶段、信号开放阶段、进路解锁阶段、联锁结合功能阶段和联锁接口功能阶段,以及在各阶段中所需要的联锁条件,罗列出每个阶段的所有状态以及状态之间的联锁条件,并通过联锁自动化工具将每个状态之间的联锁条件输出为状态信息表,即,所述状态信息表中包括所有状态的名称、初始状态和结果状态,以及每个状态下可执行的操作、操作对应的结果状态和操作对应的联锁条件;
进一步的,每个阶段有很多状态,需要指定哪些是初始状态,哪些是结果状态,其余的状态是描述的“操作对应的结果状态”,即,所述初始状态和结果状态是指从每个阶段中罗列出的所有状态中,指定一个初始状态作为后续搜索的起点和若干结果状态作为后续搜索的结束条件。
优选地,所述状态信息表生成步骤中,每个状态下可执行的操作和操作对应的结果状态,是通用联锁软件中根据先验阈值设定的适用于所有类型车站的通用判断条件和操作,是根据使用经验得到的标准的、常用的条件和操作,在本方案中,这些经验值要通过所述通用联锁软件描述为系统能够读取识别的通用格式的值,再结合具体站场的实际联锁逻辑变为具体的值来进行使用,简而言之,就是要用真实的、常用的判断条件和操作作为我们测试用例生成的中间数据,这样能够提高我们测试用例的准确性和高度真实还原度。
所述状态信息处理步骤,是根据所述状态信息表生成步骤中状态信息表所包含的所有状态的名称、初始状态和结果状态,以及每个状态下可执行的操作、操作对应的结果状态,得到联锁状态转换模型;
并且,所述状态信息处理步骤,具体的,包括状态及条件信息组合过程和联锁状态转换过程,状态及条件信息组合过程根据所述状态信息表生成若干个包括联锁条件、可执行的操作和结果状态的执行四元组合,所述联锁状态转换过程将所有执行四元组合拼接成树形网状结构的联锁状态转换模型;
更为具体的,所述状态及条件信息组合过程包括以下步骤:
入口四元组生成,将所述状态信息表中描述的初始状态作为入口点状态,识别初始状态下可执行的所有操作,并找到操作对应的状态结果,操作对应的转化条件,针对每一个操作生成一个入口四元组合,所述入口四元组合包括入口点状态、联锁条件、可执行的操作、结果状态;
出口四元组生成,将所述状态信息表中描述结果状态作为出口点状态,识别所有能转换到出口点状态下的操作所对应的状态及联锁条件,针对每一个操作生成一个出口四元组合,所述出口四元组合包括出口点状态、联锁条件、可执行的操作、结果状态;所述结果状态可能包含多个状态,为方便描述,这里将所有的结果状态用“结果状态1 ”、“结状态2”、…“结果状态n ”来描述;
并且,入口四元组生成和出口四元组生成中得到的每一个结果状态下也包含若干个可执行的操作,重复入口四元组生成和出口四元组生成过程,针对每一个结果状态下的每个操作生成一个执行四元组合(对应上述多个结果状态,可以描述为结果状态1、联锁条件、结果状态2),最终生成若干个执行四元组合:(结果状态n-1、联锁条件、可执行的操作、结果状态n);
对应的,所述联锁状态转换过程,将所述状态及条件信息组合过程中得到的所有执行四元组合拼接成一棵以入口点状态为起点、出口点状态为结束点、中间连接若干结果状态并带有联锁条件和可执行操作的树形网状结构,即为所述联锁状态转换模型;
更为具体的,如图2所示,所述联锁状态转换过程,具体的:
步骤S1,寻找所有包含入口点状态的四元组合,确定每个四元组合中的目标状态和源状态,定义任意一个四元组合中包含的第一个状态为源状态,第二个状态为目标状态;
步骤S2,将步骤S1中的每个四元组合中的目标状态作为搜索起点,在其他所有四元组合中搜索以该目标状态为源状态的四元组合,并记录搜索到的这些四元组合中的联锁条件和可执行操作;
步骤S3,若步骤S2中搜索到的四元组合中的目标状态是状态信息表中描述的结果状态,或者目标状态在步骤S2中记录的结果中出现,再或者源状态在S2中记录的结果中出现,则对该四元组合的搜索结束,将本次搜索的所有记录从初始状态开始一直到结果状态,按搜索顺序拼接起来形成一个分支;即,该分支包含的内容为作为搜索起点的四元组合1(包含初始状态)→四元组合2→四元组合3→……→四元组合n(包含结果状态),重复步骤S2和S3,直至步骤S1中所有的四元组合都完成搜索;
步骤S4,将步骤S3中得到的所有分支进行组合,形成一个由若干四元组合拼接成的树形网状结构。
所述测试用例生成步骤,解析所述状态信息处理步骤得到的联锁状态转换模型,生成包含若干四元组合的抽象测试用例,所述四元组合包括联锁条件、可执行的操作、结果状态以及入口点状态或出口点状态,定义任意一个四元组合中包含的第一个状态为源状态,第二个状态为目标状态;根据每个四元组合中包含的源状态、联锁条件、可执行操作和目标状态,注入实际车站数据,生成实例化的测试用例。
具体的,所述测试用例生成步骤中,解析所述状态信息处理步骤得到的联锁状态转换模型,是指对联锁状态转换模型的树形结构内容进行提取,得到分支信息及每条分支中的每个四元组合,得到每个四元组合中的源状态、联锁条件、可执行操作和目标状态信息等。
进一步的,所述测试用例生成步骤中,抽象测试用例是指对解析联锁状态转换模型的树形结构得到的每条分支中,不考虑可执行的操作和操作对应的转化条件,只考虑所有的目标状态和源状态,每条分支可形成一条抽象的测试用例。
更进一步的,所述测试用例生成步骤中,实例化的测试用例是指根据每一条抽象测试用例,中所包含的四元组合中的源状态、联锁条件、可执行操作和目标状态,注入实际车站数据,将抽象用例实例化,生成一条可以执行的实例化的测试用例。
更为优选地,所述测试用例生成步骤,具体的,包括以下步骤:
步骤s1,解析所述联锁状态转换模型得到的树形结构,以树形结构中每个四元组合的入口点状态为起点,取出每个入口点包含的所有分支;
步骤s2,解析步骤s1中的每条分支中包含的n个四元组合,其中第一个四元组合的源状态必须是入口点状态,第二个四元组合源状态为第一个四元组合的目标状态,第三个四元组合源状态为第二个四元组合的目标状态,依次类推,第n个四元组合的源状态为第n-1个四元组合的目标状态,第n个四元组合的目标状态为出口点状态或者第1个到第n-1个四元组合中出现过的目标状态或者源状态;
步骤s3,将步骤s2中每条分支得到的所有状态按四元组合出现的顺序组合在一起,构成一条抽象测试用例;
步骤s4,取出步骤s3中得到的抽象测试用例,取出抽象用例中得到所有状态信息,并结合树形结构,获取状态之间的联锁条件及可执行的操作;
步骤s5,解析步骤s4中抽象用例的联锁条件和可执行操作,注入实际车站数据,将适用于所有站的联锁条件和可执行操作以实际站的数据中描述的元素来替代;
步骤s6,将步骤s5中解析好的联锁条件和可执行操作按步骤s4中取出的抽象测试用例中的四元组合顺序条件到抽象用例的源状态和目标状态之间,构成一条可执行的实例化的测试用例。
与现有技术方案相比,本方案具有如下技术优点:
1、本方案通过测试用例的自动生成可提供通用联锁软件的测试方法,采用状态机建立模型,状态机建模简单,状态之间的转换清晰,便于模型的识别和查错。
采用本发明技术方案可支持对联锁系统软件进行全方面测试,减少软件测试人员工作量,提高测试正确性,本方案是按照每个联锁功能进行建模的,针对每个独立的联锁功能都能验证到。
附图说明
本发明的前述和下文具体描述在结合以下附图阅读时变得更清楚,其中:
图1为本发明有整体技术方案示意图;
图2为本发明中四元组合的搜索逻辑示意图。
具体实施方式
下面通过具体的实施例来进一步说明实现本发明目的技术方案,需要说明的是,本发明要求保护的技术方案包括但不限于以下实施例。
实施例1
作为本发明一种具体的实施方案,如图1,本实施例提供了一种通用联锁软件测试用例生成方法,包括状态信息表生成步骤、状态信息处理步骤和测试用例生成步骤。
具体的:
所述状态信息表生成步骤,根据通用联锁软件中描述的进路建立阶段、进路锁闭阶段、信号开放阶段、进路解锁阶段、联锁结合功能阶段和联锁接口功能阶段,以及在各阶段中所需要的联锁条件,罗列出每个阶段的所有状态以及状态之间的联锁条件,并通过联锁自动化工具将每个状态之间的联锁条件输出为状态信息表,即,所述状态信息表中包括所有状态的名称、初始状态和结果状态,以及每个状态下可执行的操作、操作对应的结果状态和操作对应的联锁条件。
即,根据计算机联锁技术条件中描述的进路建立、进路锁闭、信号开放、进路解锁、联锁结合功能和联锁接口功能各个阶段所需的联锁条件,列出每个阶段所有的状态及状态之间转换的条件,利用联锁自动化工具将这些状态和状态之间的联锁条件输出到状态信息表中,得到的状态信息表内容需包含状态名称、状态下可执行的操作、操作对应的结果状态、操作对应的转化条件、初始状态、结果状态,所述操作对应的转化条件和状态下可执行的操作是一个适用于所有站型的通用条件判断和操作,需要结合具体车站数据,将通用条件判断和操作描述用实际的站场元素来替代。
所述状态信息处理步骤,是根据所述状态信息表生成步骤中状态信息表所包含的所有状态的名称、初始状态和结果状态,以及每个状态下可执行的操作、操作对应的结果状态,得到联锁状态转换模型。
所述测试用例生成步骤,解析所述状态信息处理步骤得到的联锁状态转换模型,生成包含若干四元组合的抽象测试用例,所述四元组合包括联锁条件、可执行的操作、结果状态以及入口点状态或出口点状态,定义任意一个四元组合中包含的第一个状态为源状态,第二个状态为目标状态;根据每个四元组合中包含的源状态、联锁条件、可执行操作和目标状态,注入实际车站数据,生成实例化的测试用例。
实施例2
作为本发明一种优选地实施方案,如图1,本实施例提供了一种通用联锁软件测试用例生成方法,包括状态信息表生成步骤、状态信息处理步骤和测试用例生成步骤。
所述状态信息表生成步骤,根据通用联锁软件中描述的进路建立阶段、进路锁闭阶段、信号开放阶段、进路解锁阶段、联锁结合功能阶段和联锁接口功能阶段,以及在各阶段中所需要的联锁条件,罗列出每个阶段的所有状态以及状态之间的联锁条件,并通过联锁自动化工具将每个状态之间的联锁条件输出为状态信息表,即,所述状态信息表中包括所有状态的名称、初始状态和结果状态,以及每个状态下可执行的操作、操作对应的结果状态和操作对应的联锁条件,每个阶段有很多状态,需要指定哪些是初始状态,哪些是结果状态,其余的状态是描述的“操作对应的结果状态”,即,所述初始状态和结果状态是指从每个阶段中罗列出的所有状态中,指定一个初始状态作为后续搜索的起点和若干结果状态作为后续搜索的结束条件,每个状态下可执行的操作和操作对应的结果状态,是通用联锁软件中根据先验阈值设定的适用于所有类型车站的通用判断条件和操作,是根据使用经验得到的标准的、常用的条件和操作,在本方案中,这些经验值要通过所述通用联锁软件描述为系统能够读取识别的通用格式的值,再结合具体站场的实际联锁逻辑变为具体的值来进行使用,简而言之,就是要用真实的、常用的判断条件和操作作为我们测试用例生成的中间数据,这样能够提高我们测试用例的准确性和高度真实还原度。
即,根据计算机联锁技术条件中描述的进路建立、进路锁闭、信号开放、进路解锁、联锁结合功能和联锁接口功能各个阶段所需的联锁条件,列出每个阶段所有的状态及状态之间转换的条件,利用联锁自动化工具将这些状态和状态之间的联锁条件输出到状态信息表中,得到的状态信息表内容需包含状态名称、状态下可执行的操作、操作对应的结果状态、操作对应的转化条件、初始状态、结果状态,所述操作对应的转化条件和状态下可执行的操作是一个适用于所有站型的通用条件判断和操作,需要结合具体车站数据,将通用条件判断和操作描述用实际的站场元素来替代。
所述状态信息处理步骤,是根据所述状态信息表生成步骤中状态信息表所包含的所有状态的名称、初始状态和结果状态,以及每个状态下可执行的操作、操作对应的结果状态,得到联锁状态转换模型,具体的,包括状态及条件信息组合过程和联锁状态转换过程,状态及条件信息组合过程根据所述状态信息表生成若干个包括联锁条件、可执行的操作和结果状态的执行四元组合,所述联锁状态转换过程将所有执行四元组合拼接成树形网状结构的联锁状态转换模型。
如图2所示,所述状态及条件信息组合过程包括以下步骤:
入口四元组生成,将所述状态信息表中描述的初始状态作为入口点状态,识别初始状态下可执行的所有操作,并找到操作对应的状态结果,操作对应的转化条件,针对每一个操作生成一个入口四元组合,所述入口四元组合包括入口点状态、联锁条件、可执行的操作、结果状态。
出口四元组生成,将所述状态信息表中描述结果状态作为出口点状态,识别所有能转换到出口点状态下的操作所对应的状态及联锁条件,针对每一个操作生成一个出口四元组合,所述出口四元组合包括出口点状态、联锁条件、可执行的操作、结果状态;所述结果状态可能包含多个状态,为方便描述,这里将所有的结果状态用“结果状态1 ”、“结状态2”、…“结果状态n ”来描述。
并且,入口四元组生成和出口四元组生成中得到的每一个结果状态下也包含若干个可执行的操作,重复入口四元组生成和出口四元组生成过程,针对每一个结果状态下的每个操作生成一个执行四元组合(对应上述多个结果状态,可以描述为结果状态1、联锁条件、结果状态2),最终生成若干个执行四元组合:(结果状态n-1、联锁条件、可执行的操作、结果状态n)。
对应的,所述联锁状态转换过程,将所述状态及条件信息组合过程中得到的所有执行四元组合拼接成一棵以入口点状态为起点、出口点状态为结束点、中间连接若干结果状态并带有联锁条件和可执行操作的树形网状结构,即为所述联锁状态转换模型。
所述联锁状态转换过程,具体的:
步骤S1,寻找所有包含入口点状态的四元组合,确定每个四元组合中的目标状态和源状态,定义任意一个四元组合中包含的第一个状态为源状态,第二个状态为目标状态。
步骤S2,将步骤S1中的每个四元组合中的目标状态作为搜索起点,在其他所有四元组合中搜索以该目标状态为源状态的四元组合,并记录搜索到的这些四元组合中的联锁条件和可执行操作。
步骤S3,若步骤S2中搜索到的四元组合中的目标状态是状态信息表中描述的结果状态,或者目标状态在步骤S2中记录的结果中出现,再或者源状态在S2中记录的结果中出现,则对该四元组合的搜索结束,将本次搜索的所有记录从初始状态开始一直到结果状态,按搜索顺序拼接起来形成一个分支;即,该分支包含的内容为作为搜索起点的四元组合1(包含初始状态)→四元组合2→四元组合3→……→四元组合n(包含结果状态),重复步骤S2和S3,直至步骤S1中所有的四元组合都完成搜索。
步骤S4,将步骤S3中得到的所有分支进行组合,形成一个由若干四元组合拼接成的树形网状结构。
所述测试用例生成步骤,解析所述状态信息处理步骤得到的联锁状态转换模型,生成包含若干四元组合的抽象测试用例,所述四元组合包括联锁条件、可执行的操作、结果状态以及入口点状态或出口点状态,定义任意一个四元组合中包含的第一个状态为源状态,第二个状态为目标状态;根据每个四元组合中包含的源状态、联锁条件、可执行操作和目标状态,注入实际车站数据,生成实例化的测试用例。
具体的,解析所述状态信息处理步骤得到的联锁状态转换模型,是指对联锁状态转换模型的树形结构内容进行提取,得到分支信息及每条分支中的每个四元组合,得到每个四元组合中的源状态、联锁条件、可执行操作和目标状态信息等。
进一步的,所述测试用例生成步骤中,抽象测试用例是指对解析联锁状态转换模型的树形结构得到的每条分支中,不考虑可执行的操作和操作对应的转化条件,只考虑所有的目标状态和源状态,每条分支可形成一条抽象的测试用例。
更进一步的,所述测试用例生成步骤中,实例化的测试用例是指根据每一条抽象测试用例,中所包含的四元组合中的源状态、联锁条件、可执行操作和目标状态,注入实际车站数据,将抽象用例实例化,生成一条可以执行的实例化的测试用例。
更为具体的,所述测试用例生成步骤,包括以下步骤:
步骤s1,解析所述联锁状态转换模型得到的树形结构,以树形结构中每个四元组合的入口点状态为起点,取出每个入口点包含的所有分支;
步骤s2,解析步骤s1中的每条分支中包含的n个四元组合,其中第一个四元组合的源状态必须是入口点状态,第二个四元组合源状态为第一个四元组合的目标状态,第三个四元组合源状态为第二个四元组合的目标状态,依次类推,第n个四元组合的源状态为第n-1个四元组合的目标状态,第n个四元组合的目标状态为出口点状态或者第1个到第n-1个四元组合中出现过的目标状态或者源状态;
步骤s3,将步骤s2中每条分支得到的所有状态按四元组合出现的顺序组合在一起,构成一条抽象测试用例;
步骤s4,取出步骤s3中得到的抽象测试用例,取出抽象用例中得到所有状态信息,并结合树形结构,获取状态之间的联锁条件及可执行的操作;
步骤s5,解析步骤s4中抽象用例的联锁条件和可执行操作,注入实际车站数据,将适用于所有站的联锁条件和可执行操作以实际站的数据中描述的元素来替代;
步骤s6,将步骤s5中解析好的联锁条件和可执行操作按步骤s4中取出的抽象测试用例中的四元组合顺序条件到抽象用例的源状态和目标状态之间,构成一条可执行的实例化的测试用例。
Claims (7)
1.一种通用联锁软件测试用例生成方法,其特征在于,包括以下步骤:
状态信息表生成步骤,根据通用联锁软件中描述的进路建立阶段、进路锁闭阶段、信号开放阶段、进路解锁阶段、联锁结合功能阶段和联锁接口功能阶段,以及在各阶段中所需要的联锁条件,罗列出每个阶段的所有状态以及状态之间的联锁条件,并通过联锁自动化工具将每个状态之间的联锁条件输出为状态信息表,即,所述状态信息表中包括所有状态的名称、初始状态和结果状态,以及每个状态下可执行的操作、操作对应的结果状态和操作对应的联锁条件;
状态信息处理步骤,是根据所述状态信息表生成步骤中状态信息表所包含的所有状态的名称、初始状态和结果状态,以及每个状态下可执行的操作、操作对应的结果状态,得到联锁状态转换模型;具体的,包括状态及条件信息组合过程和联锁状态转换过程,状态及条件信息组合过程根据所述状态信息表生成若干个包括联锁条件、可执行的操作和结果状态的执行四元组合,所述联锁状态转换过程将所有执行四元组合拼接成树形网状结构的联锁状态转换模型;所述状态及条件信息组合过程,具体的包括:入口四元组生成,将所述状态信息表中描述的初始状态作为入口点状态,识别初始状态下可执行的所有操作,并找到操作对应的状态结果,操作对应的转化条件,针对每一个操作生成一个入口四元组合,所述入口四元组合包括入口点状态、联锁条件、可执行的操作、结果状态;出口四元组生成,将所述状态信息表中描述结果状态作为出口点状态,识别所有能转换到出口点状态下的操作所对应的状态及联锁条件,针对每一个操作生成一个出口四元组合,所述出口四元组合包括出口点状态、联锁条件、可执行的操作、结果状态;并且,入口四元组生成和出口四元组生成中得到的每一个结果状态下也包含若干个可执行的操作,重复入口四元组生成和出口四元组生成过程,针对每一个结果状态下的每个操作生成一个执行四元组合,最终生成若干个执行四元组合;对应的,所述联锁状态转换过程,将所述状态及条件信息组合过程中得到的所有执行四元组合拼接成一棵以入口点状态为起点、出口点状态为结束点、中间连接若干结果状态并带有联锁条件和可执行操作的树形网状结构,即为所述联锁状态转换模型;所述联锁状态转换过程,具体的:步骤S1,寻找所有包含入口点状态的四元组合,确定每个四元组合中的目标状态和源状态,定义任意一个四元组合中包含的第一个状态为源状态,第二个状态为目标状态;步骤S2,将步骤S1中的每个四元组合中的目标状态作为搜索起点,在其他所有四元组合中搜索以该目标状态为源状态的四元组合,并记录搜索到的这些四元组合中的联锁条件和可执行操作;步骤S3,若步骤S2中搜索到的四元组合中的目标状态是状态信息表中描述的结果状态,或者目标状态在步骤S2中记录的结果中出现,再或者源状态在S2中记录的结果中出现,则对该四元组合的搜索结束,将本次搜索的所有记录从初始状态开始一直到结果状态,按搜索顺序拼接起来形成一个分支;步骤S4,将步骤S3中得到的所有分支进行组合,形成一个由若干四元组合拼接成的树形网状结构
测试用例生成步骤,解析所述状态信息处理步骤得到的联锁状态转换模型,生成包含若干四元组合的抽象测试用例,所述四元组合包括联锁条件、可执行的操作、结果状态以及入口点状态或出口点状态,定义任意一个四元组合中包含的第一个状态为源状态,第二个状态为目标状态;根据每个四元组合中包含的源状态、联锁条件、可执行操作和目标状态,注入实际车站数据,生成实例化的测试用例。
2.如权利要求1所述的一种通用联锁软件测试用例生成方法,其特征在于:所述初始状态和结果状态是指从每个阶段中罗列出的所有状态中,指定一个初始状态作为后续搜索的起点和若干结果状态作为后续搜索的结束条件。
3.如权利要求1或2所述的一种通用联锁软件测试用例生成方法,其特征在于:所述状态信息表生成步骤中,每个状态下可执行的操作和操作对应的结果状态,是通用联锁软件中根据先验阈值设定的适用于所有类型车站的通用判断条件和操作,通过所述通用联锁软件描述为通用格式的值,再结合具体站场的实际联锁逻辑变为具体的值。
4.如权利要求1所述的一种通用联锁软件测试用例生成方法,其特征在于:所述测试用例生成步骤中,解析所述状态信息处理步骤得到的联锁状态转换模型,具体的,是指对联锁状态转换模型的树形结构内容进行提取,得到分支信息及每条分支中的每个四元组合,得到每个四元组合中的源状态、联锁条件、可执行操作和目标状态信息。
5.如权利要求1所述的一种通用联锁软件测试用例生成方法,其特征在于:所述测试用例生成步骤中,抽象测试用例是指对解析联锁状态转换模型的树形结构得到的每条分支中,不考虑可执行的操作和操作对应的转化条件,只考虑所有的目标状态和源状态,每条分支可形成一条抽象的测试用例。
6.如权利要求1所述的一种通用联锁软件测试用例生成方法,其特征在于:所述测试用例生成步骤中,实例化的测试用例是指根据每一条抽象测试用例,中所包含的四元组合中的源状态、联锁条件、可执行操作和目标状态,注入实际车站数据,将抽象用例实例化,生成一条可以执行的实例化的测试用例。
7.如权利要求1所述的一种通用联锁软件测试用例生成方法,其特征在于,所述测试用例生成步骤,具体的,包括以下步骤:
步骤s1,解析所述联锁状态转换模型得到的树形结构,以树形结构中每个四元组合的入口点状态为起点,取出每个入口点包含的所有分支;
步骤s2,解析步骤s1中的每条分支中包含的n个四元组合,其中第一个四元组合的源状态必须是入口点状态,第二个四元组合源状态为第一个四元组合的目标状态,第三个四元组合源状态为第二个四元组合的目标状态,依次类推,第n个四元组合的源状态为第n-1个四元组合的目标状态,第n个四元组合的目标状态为出口点状态或者第1个到第n-1个四元组合中出现过的目标状态或者源状态;
步骤s3,将步骤s2中每条分支得到的所有状态按四元组合出现的顺序组合在一起,构成一条抽象测试用例;
步骤s4,取出步骤s3中得到的抽象测试用例,取出抽象用例中得到所有状态信息,并结合树形结构,获取状态之间的联锁条件及可执行的操作;
步骤s5,解析步骤s4中抽象用例的联锁条件和可执行操作,注入实际车站数据,将适用于所有站的联锁条件和可执行操作以实际站的数据中描述的元素来替代;
步骤s6,将步骤s5中解析好的联锁条件和可执行操作按步骤s4中取出的抽象测试用例中的四元组合顺序条件到抽象用例的源状态和目标状态之间,构成一条可执行的实例化的测试用例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110896668.9A CN113704093B (zh) | 2021-08-05 | 2021-08-05 | 一种通用联锁软件测试用例生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110896668.9A CN113704093B (zh) | 2021-08-05 | 2021-08-05 | 一种通用联锁软件测试用例生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113704093A CN113704093A (zh) | 2021-11-26 |
CN113704093B true CN113704093B (zh) | 2024-07-05 |
Family
ID=78652013
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110896668.9A Active CN113704093B (zh) | 2021-08-05 | 2021-08-05 | 一种通用联锁软件测试用例生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113704093B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112882956A (zh) * | 2021-03-30 | 2021-06-01 | 中信银行股份有限公司 | 一种通过数据组合计算自动生成全场景自动化测试案例的方法、装置、存储介质及电子设备 |
CN113127366A (zh) * | 2021-04-28 | 2021-07-16 | 芜湖雄狮汽车科技有限公司 | 基于模型的矩阵自动化测试方法及计算机可读存储介质 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4991176A (en) * | 1989-06-07 | 1991-02-05 | At&T Bell Laboratories | Optimal test generation for finite state machine models |
US6941546B2 (en) * | 2001-08-01 | 2005-09-06 | International Business Machines Corporation | Method and apparatus for testing a software component using an abstraction matrix |
CN101968769B (zh) * | 2010-10-22 | 2012-01-25 | 中国人民解放军理工大学 | 一种基于行为模型的软件安全性测试用例生成方法 |
CN102073317A (zh) * | 2010-12-17 | 2011-05-25 | 清华大学 | 用于高速铁路列车控制系统功能测试的建模方法 |
CN103164337B (zh) * | 2013-02-28 | 2015-12-09 | 汉柏科技有限公司 | 基于有限状态机的云计算软件测试方法 |
CN104407977B (zh) * | 2014-12-08 | 2016-06-01 | 北京航空航天大学 | 基于模型检测的分阶段任务系统的自动化联调测试方法 |
CN107783893B (zh) * | 2016-08-26 | 2019-05-03 | 上海计算机软件技术开发中心 | 一种基于场景描述的自动测试系统及其实现方法 |
CN107566098B (zh) * | 2017-07-24 | 2019-10-18 | 清华大学 | 软件定义网络应用测试序列的生成方法与生成系统 |
CN112015639B (zh) * | 2020-07-31 | 2024-03-15 | 北京轩宇信息技术有限公司 | 一种星载软件测试用例的生成方法及装置 |
CN112286793A (zh) * | 2020-09-28 | 2021-01-29 | 马瑞利汽车零部件(芜湖)有限公司 | 基于状态机的车灯控制器测试用例自动生成方法 |
CN112612704A (zh) * | 2020-12-25 | 2021-04-06 | 卡斯柯信号有限公司 | 联锁软件自动测试方法 |
-
2021
- 2021-08-05 CN CN202110896668.9A patent/CN113704093B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112882956A (zh) * | 2021-03-30 | 2021-06-01 | 中信银行股份有限公司 | 一种通过数据组合计算自动生成全场景自动化测试案例的方法、装置、存储介质及电子设备 |
CN113127366A (zh) * | 2021-04-28 | 2021-07-16 | 芜湖雄狮汽车科技有限公司 | 基于模型的矩阵自动化测试方法及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113704093A (zh) | 2021-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100401265C (zh) | 关键字驱动的自动化测试系统及方法 | |
CN105760296B (zh) | 自动化测试控制方法、装置及终端 | |
CN106506283B (zh) | 银行和企业对接系统的业务测试方法和装置 | |
WO2011060655A1 (zh) | 软件业务功能覆盖率的统计方法及系统 | |
CN111176995B (zh) | 一种基于大数据测试用例的测试方法和测试系统 | |
CN102479152A (zh) | 基于Android平台获取工具自动测试结果的方法及装置 | |
CN116843107B (zh) | 一种基于bim技术的建筑信息智能管理系统 | |
CN106598843B (zh) | 一种基于程序分析的软件日志行为自动识别方法 | |
CN115328710A (zh) | 一种基于Qt的射频自动化测试方法 | |
CN109699023B (zh) | 高铁信号设备自动测试数据封装及处理方法 | |
CN110990282A (zh) | 一种自动化单元测试方法 | |
CN110968493A (zh) | 一种基于运行日志分析推演程序运行状态的方法及系统 | |
CN117787155B (zh) | 一种芯片可测性代码动态仿真测试系统及测试方法 | |
CN113704093B (zh) | 一种通用联锁软件测试用例生成方法 | |
CN111104309A (zh) | 一种综合测试流程快速实现方法 | |
CN111966575B (zh) | 一种航空机载显示软件的图形自动化测试方法 | |
CN112685316A (zh) | 代码执行路径的获取方法、装置、计算机设备及存储介质 | |
CN110286882B (zh) | 一种基于模型检测的前台系统设计与验证方法 | |
CN108803561B (zh) | 针对白车身线体控制程序的程序自动检查方法及系统 | |
CN109101355B (zh) | 一种提取错误现场特征测试激励的处理器调试方法 | |
WO2021171366A1 (ja) | 業務プロセス識別装置、業務プロセス識別方法及びプログラム | |
CN109669827B (zh) | 一种BIOS模块TurboMode功能的自动化测试方法 | |
CN115757143A (zh) | 一种单元测试自动执行方法及工具 | |
CN110843869B (zh) | 一种站场图显示配置自动解析方法 | |
CN118606168A (zh) | 一种平台自动化测试方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |