[go: up one dir, main page]

CN112416736B - 一种生成测试套件的方法、装置、服务器及可读存储介质 - Google Patents

一种生成测试套件的方法、装置、服务器及可读存储介质 Download PDF

Info

Publication number
CN112416736B
CN112416736B CN201910774609.7A CN201910774609A CN112416736B CN 112416736 B CN112416736 B CN 112416736B CN 201910774609 A CN201910774609 A CN 201910774609A CN 112416736 B CN112416736 B CN 112416736B
Authority
CN
China
Prior art keywords
test
state
states
state machine
target
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
Application number
CN201910774609.7A
Other languages
English (en)
Other versions
CN112416736A (zh
Inventor
陈锐
王阳
张银红
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910774609.7A priority Critical patent/CN112416736B/zh
Publication of CN112416736A publication Critical patent/CN112416736A/zh
Application granted granted Critical
Publication of CN112416736B publication Critical patent/CN112416736B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4498Finite state machines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种生成测试套件的方法、装置、服务器及可读存储介质,用于自动生成测试套件,并满足有限状态机测试完备性和准确性的要求。本申请方法包括:获取有限状态机的测试模型,所述测试模型包括有限状态机的状态和状态间的转换动作;根据所述测试模型和预设准则生成测试路径,所述测试路径由测试状态开始,测试动作和测试状态相间排列构成,所述测试状态为所述有限状态机的状态中的任意一个状态,相邻两个测试状态之间的测试动作为所述相邻两个测试状态对应的转换动作;获取所述测试路径中各测试状态对应的测试用例和各测试动作对应的测试用例;根据所述测试路径、各测试状态对应的测试用例和各测试动作对应的测试用例生成测试套件。

Description

一种生成测试套件的方法、装置、服务器及可读存储介质
技术领域
本申请涉及软件测试技术领域,尤其涉及一种生成测试套件的方法、装置、服务器及可读存储介质。
背景技术
有限状态机是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。
有限状态机在应用前,都需要进行测试。目前,测试的方法主要是,测试人员先梳理有限状态机的所有状态和状态之间的动作,然后根据梳理结果和个人经验确定测试套件,最后利用测试套件对有限状态机进行测试。
由于测试套件是测试人员根据个人经验确定的,会造成测试的完备性和准确性较差。
发明内容
本申请实施例提供了一种生成测试套件的方法、装置、服务器及可读存储介质,能够自动生成测试套件,并满足有限状态机测试完备性和准确性的要求。
有鉴于此,本申请实施例第一方面提供一种生成测试套件的方法,包括:
获取有限状态机的测试模型,所述测试模型包括有限状态机的状态和状态间的转换动作;
根据所述测试模型和预设准则生成测试路径,所述测试路径由测试状态开始,测试动作和测试状态相间排列构成,所述测试状态为所述有限状态机的状态中的任意一个状态,相邻两个测试状态之间的测试动作为所述相邻两个测试状态对应的转换动作;
获取所述测试路径中各测试状态对应的测试用例和各测试动作对应的测试用例;
根据所述测试路径、各测试状态对应的测试用例和各测试动作对应的测试用例生成测试套件。
在本申请实施例的第一方面的第一种实现方式中,所述预设准则包括随机算法和结束条件;
所述根据所述测试模型和预设准则生成测试路径包括:
从所述有限状态机的状态中选取一个状态作为起始状态;
从所述有限状态机的状态中选取一个未遍历的状态作为目标状态;
根据所述测试模型、所述起始状态、所述随机算法和所述目标状态随机生成测试路径;
将所述目标状态确定为新的起始状态;
重复执行上述步骤,直到满足所述结束条件。
在本申请实施例的第一方面的第二种实现方式中,所述预设准则包括随机算法和结束条件;
所述根据所述测试模型和预设准则生成测试路径包括:
从所述有限状态机的状态中选取一个状态作为起始状态;
从所述有限状态机的转换动作中选取一个未遍历的转换动作作为目标转换动作;
根据所述测试模型、所述起始状态、所述随机算法和所述目标转换动作随机生成测试路径;
将所述有限状态机执行所述目标转换动作后的状态确定为新的起始状态;
重复执行上述步骤,直到满足所述结束条件。
在本申请实施例的第一方面的第三种实现方式中,所述预设准则包括最短路径算法和结束条件;
所述根据所述测试模型和预设准则生成测试路径包括:
从所述有限状态机的状态中选取一个状态作为起始状态;
从所述有限状态机的状态中选取一个未遍历的状态作为目标状态;
根据所述测试模型、所述起始状态、所述最短路径算法和所述目标状态确定最短的测试路径;
将所述目标状态确定为新的起始状态;
重复执行上述步骤,直到满足所述结束条件。
在本申请实施例的第一方面的第四种实现方式中,所述预设准则包括最短路径算法和结束条件;
所述根据所述测试模型和预设准则生成测试路径包括:
从所述有限状态机的状态中选取一个状态作为起始状态;
从所述有限状态机的转换动作中选取一个未遍历的转换动作作为目标转换动作;
根据所述测试模型、所述起始状态、所述最短路径算法和所述目标转换动作确定最短的测试路径;
将所述有限状态机执行所述目标转换动作后的状态确定为新的起始状态;
重复执行上述步骤,直到满足所述结束条件。
在本申请实施例的第一方面的第五种实现方式中,所述测试模型的数量为至少两个;
所述测试路径中的测试状态包含于各个测试模型中。
在本申请实施例的第一方面的第六种实现方式中,所述结束条件为边覆盖率为预设第一覆盖率或点覆盖率为预设第二覆盖率。
本申请实施例第二方面提供一种生成测试套件的装置,包括:
第一获取单元,用于获取有限状态机的测试模型,所述测试模型包括有限状态机的状态和状态间的转换动作;
第一生成单元,用于根据所述测试模型和预设准则生成测试路径,所述测试路径由测试状态开始,测试动作和测试状态相间排列构成,所述测试状态为所述有限状态机的状态中的任意一个状态,相邻两个测试状态之间的测试动作为所述相邻两个测试状态对应的转换动作;
第二获取单元,用于获取所述测试路径中各测试状态对应的测试用例和各测试动作对应的测试用例;
第二生成单元,用于根据所述测试路径、各测试状态对应的测试用例和各测试动作对应的测试用例生成测试套件。
在本申请实施例的第二方面的第一种实现方式中,所述预设准则包括随机算法和结束条件;
所述第一生成单元用于:
从所述有限状态机的状态中选取一个状态作为起始状态;
从所述有限状态机的状态中选取一个未遍历的状态作为目标状态;
根据所述测试模型、所述起始状态、所述随机算法和所述目标状态随机生成测试路径;
将所述目标状态确定为新的起始状态;
重复执行上述步骤,直到满足所述结束条件。
在本申请实施例的第二方面的第二种实现方式中,所述预设准则包括随机算法和结束条件;
所述第一生成单元用于:
从所述有限状态机的状态中选取一个状态作为起始状态;
从所述有限状态机的转换动作中选取一个未遍历的转换动作作为目标转换动作;
根据所述测试模型、所述起始状态、所述随机算法和所述目标转换动作随机生成测试路径;
将所述有限状态机执行所述目标转换动作后的状态确定为新的起始状态;
重复执行上述步骤,直到满足所述结束条件。
在本申请实施例的第二方面的第三种实现方式中,所述预设准则包括最短路径算法和结束条件;
所述第一生成单元用于:
从所述有限状态机的状态中选取一个状态作为起始状态;
从所述有限状态机的状态中选取一个未遍历的状态作为目标状态;
根据所述测试模型、所述起始状态、所述最短路径算法和所述目标状态确定最短的测试路径;
将所述目标状态确定为新的起始状态;
重复执行上述步骤,直到满足所述结束条件。
在本申请实施例的第二方面的第四种实现方式中,所述预设准则包括最短路径算法和结束条件;
所述第一生成单元用于:
从所述有限状态机的状态中选取一个状态作为起始状态;
从所述有限状态机的转换动作中选取一个未遍历的转换动作作为目标转换动作;
根据所述测试模型、所述起始状态、所述最短路径算法和所述目标转换动作确定最短的测试路径;
将所述有限状态机执行所述目标转换动作后的状态确定为新的起始状态;
重复执行上述步骤,直到满足所述结束条件。
本申请实施例的第三方面提供一种服务器,包括:存储器、收发器、处理器以及总线系统;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,以执行如本申请实施例的第一方面中任一项所述的方法。
本申请实施例的第四方面提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如本申请实施例的第一方面中任一项所述的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
先获取有限状态机的测试模型,测试模型包括有限状态机的状态和状态间的转换动作;然后根据测试模型和预设准则生成测试路径,测试路径由测试状态开始,测试动作和测试状态相间排列构成,测试状态为限状态机的状态中的任意一个状态,相邻两个测试状态之间的测试动作为相邻两个测试状态对应的转换动作;再获取测试路径中各测试状态对应的测试用例和各测试动作对应的测试用例;最后根据测试路径、各测试状态对应的测试用例和各测试动作对应的测试用例生成测试套件;
本申请实施例根据测试模型自动生成测试路径,并可以通过预设准则保证测试路径的完备性和准确性,从而保证有限状态机测试的完备性和准确性,而不需要测试人员根据经验设计测试路径,测试人员只需要负责细化测试用例的内容,因此测试路径的生成不受测试人员水平的影响,并且节省时间;当有限状态机重构或变动的情况下,只需要修改测试模型,并修改部分测试用例的内容甚至不需要修改测试用例的内容,便可以生成重新生成测试套件,方便快捷。
附图说明
图1本申请实施例中测试有限状态机的场景示意图;
图2为本申请实施例中生成测试套件的方法一个实施例示意图;
图3为本申请实施例中测试模型的一个实施例示意图;
图4为本申请实施例中生成测试路径的第一实施例示意图;
图5为本申请实施例中生成测试路径的第二实施例示意图;
图6为本申请实施例中生成测试路径的第三实施例示意图;
图7为本申请实施例中生成测试路径的第四实施例示意图;
图8为本申请实施例中生成测试套件的装置的一个实施例示意图;
图9为本申请实施例提供的服务器的一个结构示意图。
具体实施方式
本申请实施例提供了一种生成测试套件的方法、装置、服务器及可读存储介质,能够自动生成测试套件,并满足完备性和准确性的要求。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应理解,本申请应用于软件测试的场景,具体地,可以应用于有限状态机测试的场景,如图1所示,先生成测试套件,然后将测试套件输入到有限状态机中,使得有限状态机执行该测试套件,将有限状态机执行测试套件后呈现出的状态与预期状态比较,以对有限状态机进行测试。
需要说明的是,本申请实施例中的方法主要应用于有限状态机的测试,也可以应用于其他软件的测试,在此不做限定。
为了便于理解,下面将对生成测试套件的方法进行具体介绍。
请参阅图2,图2为本申请实施例中生成测试套件的方法一个实施例示意图,如图所示,本申请实施例提供一种生成测试套件的方法的一个实施例,包括:
101,获取有限状态机的测试模型,测试模型包括有限状态机的状态和状态间的转换动作。
需要说明的是,测试模型是预先建立的,可以人工建立,也可以自动建立;例如可以先梳理有限状态机的状态和转换动作,然后根据梳理结果使用绘图工具yEd GraphEditor建立测试模型,其中yEd Graph Editor一款功能强大的流程图绘制软件,主要用于绘制流程图、UML图和网络结构等多种图表,提供完整的流程图绘制功能。
其中,梳理结果可以是任意形式,例如可以是excel形式;为了更好地理解梳理结果,本申请实施例以一个示例进行说明,如下表所示,该表表示了有限状态机的一个梳理结果。
如上表所示,当有限状态机的初始状态为“打开状态”时,若有限状态机执行了“健康度异常”的转换动作,有限状态机则从打开状态扭转为正在关闭状态,因此目的状态为“正在关闭”;当有限状态机初始状态为“正在关闭”时,若有限状态机执行了“健康度异常且关闭周期未结束”的转换动作,由于关闭周期未结束,所以有限状态机将继续维持关闭状态,因此目的状态为“正在关闭”。
在本申请实施例中,测试模型的形式也包括多种,例如可以为有向图,有向图中的节点表示有限状态机的状态,有向图中的有向边表示状态间的转换动作。
基于前面提及的梳理结果,下面将以具体示例对测试模型进行说明。
如图3所示,本申请实施例中测试模型的一个实施例示意图,在图3的测试模型中,有向图的节点用黑色框表示,即黑色框表示有限状态机的状态,有向图的有向边用有向箭头表示,即有向箭头表示状态间的转换动作。
例如,有向箭头“健康度异常”由“打开”所在的黑色框指向“正在关闭”的黑色框,对应的含义为有向状态机当有限状态机的初始状态为“打开状态”时,若有限状态机执行了“健康度异常”的转换动作,有限状态机则从打开状态扭转为正在关闭状态。
由此可以看出,测试模型是与梳理结果对应地。
另外,需要说明的是,测试模型中状态的数量可以为一个,也可以为至少两个,本申请实施例对此不做限定;一个转换动作可以对应一个状态,例如,当有限状态机初始状态为“正在关闭”时,若有限状态机执行了“健康度异常且关闭周期未结束”的转换动作,由于关闭周期未结束,所以有限状态机将继续维持正在关闭状态,因此目的状态为“正在关闭”,即“健康度异常且关闭周期未结束”的转换动作对应一个“正在关闭状态”;一个转换动作可以对应两个状态,即有限状态机的初始状态和目的状态不一致,具体不做详述。
102,根据测试模型和预设准则生成测试路径。
需要说明的是,预设准则可以根据实际需要进行设置,通过设置预设准则,可以调整测试路径的完备性和准确性;另外,生成测试路径的方法包括多种,本申请实施例在此不做限定,具体可以使用GraphWalke、fMBT以及4Test等基于模型的测试(Model-basedtesting,MBT)工具生成测试路径。GraphWalke、fMBT以及4Test均是MBT的开源工具,即一种基于测试模型的用例生成工具,能够完成MBT流程中的测试用例生成步骤。
在本申请实施例中,测试路径是由测试状态开始,测试动作和测试状态相间排列构成,可以理解的是,排列在第一位的测试状态又叫该条测试路径的起始状态;由于,测试状态为有限状态机的状态中的任意一个状态,相邻两个测试状态之间的测试动作为相邻两个测试状态对应的转换动作,所以测试路径是从测试模型的状态和测试路径中选择出的有向路径,例如,以前述的测试模型为例,测试路径可以为打开、健康度异常、正在关闭、健康度异常且关闭周期未结束、正在关闭,也可以为打开、健康度异常、正在关闭、健康度异常且关闭周期已结束、关闭。
另外,需要说明的是,本申请实施例对测试路径中的状态的种类、状态的数量、转换动作的种类和转换动作的数量均不做限定,具体可以通过预设准则限定。
103,获取测试路径中各测试状态对应的测试用例和各测试动作对应的测试用例。
在本申请实施例中,测试用例由技术人员生成,不同的测试状态对应不同的测试用例,不同的测试动作对应不同的测试用例,可以将预先编辑好的测试用例存储在数据库中,以供调用。
104,根据测试路径、各测试状态对应的测试用例和各测试动作对应的测试用例生成测试套件。
需要说明的是,在测试套件中,测试用例是按测试路径中测试状态和测试动作的排列顺序排列,由于生成测试套件是较成熟的现有技术,因此,本申请实施例对生成测试套件的过程不做详述。
本申请实施例根据测试模型自动生成测试路径,并可以通过预设准则保证测试路径的完备性和准确性,从而保证有限状态机测试的完备性和准确性,而不需要测试人员根据经验设计测试路径,测试人员只需要负责细化测试用例的内容,因此测试路径的生成不受测试人员水平的影响,并且节省时间;当有限状态机重构或变动的情况下,只需要修改测试模型,并修改部分测试用例的内容甚至不需要修改测试用例的内容,便可以生成重新生成测试套件,方便快捷。
在本申请实施例中,若预设准则不同,则生成测试路径的过程不同,下面将分别以不同的预设准则对生成测试路径的过程进行介绍。
请参阅图4,本申请实施例中生成测试路径的第一实施例示意图。在该实施例中,预设准则包括随机算法和结束条件,相应地,根据测试模型和预设准则生成测试路径包括:
201,从有限状态机的状态中选取一个状态作为起始状态。
选取起始状态的过程可以是随机选取,也可以根据预设需求进行选取,例如选择只与一个转换动作相关的状态作为起始状态。
以前述的测试模型为例,可以选“打开”为初始状态。
202,从有限状态机的状态中选取一个未遍历的状态作为目标状态。
需要说明的是,未遍历的状态是指测试路径中未包含的状态;在首次生成测试路径前,任意一个状态都可以作为目标状态,仍以图3所示的测试模型为例,可以选“正在关闭”为目标状态,也可以选择“打开”为目标状态;在生成一次测试路径或至少两次测试路径后,测试路径中则包含了部分状态,测试路径中未包含的状态可以被选为目标状态,例如,假设生成第一测试路径后,测试路径为打开、健康度异常、正在关闭、健康度异常且关闭周期未结束、正在关闭,由于该测试路径中不包含状态“正在打开”,所以可以选取“正在打开”作为目标状态。
203,根据测试模型、起始状态、随机算法和目标状态随机生成测试路径。
需要说明的是,选择一个起始状态和目标状态后,便可以根据随机算法和测试模型生成一次测试路径,生成测试路径的过程可以为:从起始状态开始,采用随机遍历的方法,遍历任何一个与起始状态相关联的测试模型中的转换动作,然后根据该转换动作,遍历至下一个状态,然后继续采用随机遍历一个转换动作,一直遍历至目标状态,则该次测试路径完成。
204,将目标状态确定为新的起始状态。
可以理解的是,经过步骤203生成的测试路径可能不满足结束条件,因此需要继续生成测试路径,因此,本申请实施例将上一次生成的测试路径中的目标状态作为新的起始状态,然后通过重复执行步骤202确定新的目标状态,再重复执行步骤203,又生成一次测试路径,由于该次生成的测试路径是以上一次生成的测试路径中的目标状态为起始状态,因此相当于测试路径不断延伸,直到满足结束条件。
具体地,假设上一次生成的测试路径为打开、健康度异常、正在关闭、健康度异常且关闭周期未结束、正在关闭,上一次生成的测试路径不满足结束条件,则取“正在打开”作为目标状态,则该次生成的测试路径可以为打开、健康度异常、正在关闭、健康度异常且关闭周期未结束、正在关闭、健康度异常且关闭周期已结束、关闭、自动放开周期已结束、正在打开,若该次生成的测试路径满足结束条件,则结束,否则将重复执行步骤202、步骤203和步骤204。
在本申请实施例中,是通过选取目标状态生成测试路径,需要说明的是,也可以通过选取目标转换动作生成测试路径,下面将对通过选取目标转换动作生成测试路径的过程进行详细说明。
请参阅图5,本申请实施例中生成测试路径的第二实施例示意图。在该实施例中,预设准则也包括随机算法和结束条件,但根据测试模型和预设准则生成测试路径包括:
301,从有限状态机的状态中选取一个状态作为起始状态。
需要说明的是,步骤301与前述实施例中步骤201相同,故可参照前述实施例对步骤201的说明。
302,从有限状态机的转换动作中选取一个未遍历的转换动作作为目标转换动作。
与前述实施例不同的是,本申请实施例是选取一个未遍历的转换动作作为目标转换动作;在本申请实施例中,在首次生成测试路径前,任意一个转换动作都可以作为目标转换动作,仍以图3所示的测试模型为例,可以选“健康度异常且关闭周期未结束”为目标转换动作。
303,根据测试模型、起始状态、随机算法和目标转换动作随机生成测试路径。
与前述实施例不同的是,本申请实施例是根据目标转换动作生成测试路径,但由于有限状态机在执行目标转换动作后,状态会发生扭转,所以生成的测试路径也是由起始状态开始,由有限状态机执行目标转换动作后的状态结束。例如,假设选“健康度异常且关闭周期未结束”为目标转换动作,则生成的测试路径为打开、健康度异常、正在关闭、健康度异常且关闭周期未结束、正在关闭。
304,将有限状态机执行目标转换动作后的状态确定为新的起始状态。
与前述实施例类似,本申请实施例是将有限状态机执行目标转换动作后的状态作为新的起始状态。
重复执行上述步骤,直到满足结束条件。
在本申请实施例中,假设上一次生成的测试路径为打开、健康度异常、正在关闭、健康度异常且关闭周期未结束、正在关闭,上一次生成的测试路径不满足结束条件,则取“自动放开周期已结束”作为目标转换动作,则该次生成的测试路径可以为打开、健康度异常、正在关闭、健康度异常且关闭周期未结束、正在关闭、健康度异常且关闭周期已结束、关闭、自动放开周期已结束、正在打开,若该次生成的测试路径满足结束条件,则结束,否则将重复执行步骤302、步骤303和步骤304。
需要说明的是,在前述两个实施例中,预测准则包括的算法都是随机算法,下面将以,预设准则包括最短路径算法为例,对生成测试路径的过程进行具体说明。
请参阅图6,本申请实施例中生成测试路径的第二实施例示意图。在该实施例中,预设准则包括最短路径算法和结束条件,根据测试模型和预设准则生成测试路径包括:
401,从有限状态机的状态中选取一个状态作为起始状态。
需要说明的是,步骤401与前述实施例中步骤201相同,故可参照前述实施例对步骤201的说明。
402,从有限状态机的状态中选取一个未遍历的状态作为目标状态。
需要说明的是,步骤402与前述实施例中步骤202相同,故可参照前述实施例对步骤202的说明。
403,根据测试模型、起始状态、最短路径算法和目标状态确定最短的测试路径。
需要说明的是,最短路径算法可以为Dijkstra算法;确定最短的测试路径的过程可以包括:
将测试模型中的每个转换动作都设置一个固定的成本,统计从起始状态到目标状态的成本最低的路径作为测试路径。确定最短的测试路径的方法还有多种,此处不做详述。
404,将目标状态确定为新的起始状态。
需要说明的是,步骤404与前述实施例中步骤204相同,故可参照前述实施例对步骤204的说明。
重复执行上述步骤,直到满足结束条件。
例如,仍以图3所示的测试模型为例,假设起始状态为打开,目标状态为关闭,则对应的测试路径可以为:打开、健康度异常、正在关闭、健康度异常且关闭周期未结束、正在关闭、健康度异常且关闭周期已结束、关闭,也可以为:打开、健康度异常、正在关闭、健康度异常且关闭周期已结束、关闭,若仅以这两条测试路径为例,可以看出,第二条测试路径中测试动作数量较少,所以第二条测试路径可以作为最短的测试路径。
在本申请实施例中,是通过选取目标状态生成测试路径,需要说明的是,也可以通过选取目标转换动作生成测试路径,下面将对通过选取目标转换动作生成测试路径的过程进行详细说明。
请参阅图7,本申请实施例中生成测试路径的第四实施例示意图。在该实施例中,预设准则包括最短路径算法和结束条件,根据测试模型和预设准则生成测试路径包括:
501,从有限状态机的状态中选取一个状态作为起始状态。
需要说明的是,步骤501与前述实施例中步骤201相同,故可参照前述实施例对步骤201的说明。
502,从有限状态机的转换动作中选取一个未遍历的转换动作作为目标转换动作。
需要说明的是,步骤502与前述实施例中步骤302相同,故可参照前述实施例对步骤302的说明。
503,根据测试模型、起始状态、最短路径算法和目标转换动作确定最短的测试路径。
需要说明的是,步骤503与前述实施例中步骤403类似,唯一不同的时,本申请实施例根据目标转换动作确定最短的测试路径,其他说明可参照前述实施例对步骤304的说明。
504,将有限状态机执行目标转换动作后的状态确定为新的起始状态。
需要说明的是,步骤504与前述实施例中步骤304相同,故可参照前述实施例对步骤304的说明。
重复执行上述步骤,直到满足结束条件。
在本申请实施例提供的一种生成测试套件的方法的另一个实施例中,测试模型的数量为至少两个,测试路径中的测试状态包含于各个测试模型中。
可以理解的是,测试路径中的测试状态可以包含于各个测试模型中,测试路径中的测试动作也可以包含于各个测试模型中;具体地,以两个测试模型为例,这两个测试模型中可以包含相同的测试状态,并对相同的测试状态进行标记,在随机算法或最短路径算法生成测试路径的过程中,若需要相同的测试状态,且由于有标记,测试路径可以由一个测试模型跳转到另一测试模型中,即选取另一个测试模型中的测试状态和转换动作继续生成测试路径。
在本申请实施例提供的一种生成测试套件的方法的另一个实施例中,结束条件为边覆盖率为预设第一覆盖率或点覆盖率为预设第二覆盖率。
需要说明的是,边覆盖率是指测试路径中包含的测试动作占测试模型中所有测试动作的比例,点覆盖率是指测试路径中包含的测试状态占测试模型中所有测试状态的比例。
其中,第一覆盖率和第二覆盖率均可以根据需要进行调整,为了保证有限状态机测试的完备性,可以将第一覆盖率和第二覆盖率设置为100%。
请参阅图8,本申请实施例中生成测试套件的装置一个实施例示意图。
本申请实施例提供一种生成测试套件的装置的一个实施例,包括:
第一获取单元601,用于获取有限状态机的测试模型,测试模型包括有限状态机的状态和状态间的转换动作;
第一生成单元602,用于根据测试模型和预设准则生成测试路径,测试路径由测试状态开始,测试动作和测试状态相间排列构成,测试状态为有限状态机的状态中的任意一个状态,相邻两个测试状态之间的测试动作为相邻两个测试状态对应的转换动作;
第二获取单元603,用于获取测试路径中各测试状态对应的测试用例和各测试动作对应的测试用例;
第二生成单元604,用于根据测试路径、各测试状态对应的测试用例和各测试动作对应的测试用例生成测试套件。
在本申请实施例提供的一种生成测试套件的装置的另一个实施例中,预设准则包括随机算法和结束条件;
第一生成单元602用于:
从有限状态机的状态中选取一个状态作为起始状态;
从有限状态机的状态中选取一个未遍历的状态作为目标状态;
根据测试模型、起始状态、随机算法和目标状态随机生成测试路径;
将目标状态确定为新的起始状态;
重复执行上述步骤,直到满足结束条件。
在本申请实施例的第二方面的第二种实现方式中,预设准则包括随机算法和结束条件;
第一生成单元602用于:
从有限状态机的状态中选取一个状态作为起始状态;
从有限状态机的转换动作中选取一个未遍历的转换动作作为目标转换动作;
根据测试模型、起始状态、随机算法和目标转换动作随机生成测试路径;
将有限状态机执行目标转换动作后的状态确定为新的起始状态;
重复执行上述步骤,直到满足结束条件。
在本申请实施例的第二方面的第三种实现方式中,预设准则包括最短路径算法和结束条件;
第一生成单元602用于:
从有限状态机的状态中选取一个状态作为起始状态;
从有限状态机的状态中选取一个未遍历的状态作为目标状态;
根据测试模型、起始状态、最短路径算法和目标状态确定最短的测试路径;
将目标状态确定为新的起始状态;
重复执行上述步骤,直到满足结束条件。
在本申请实施例的第二方面的第四种实现方式中,预设准则包括最短路径算法和结束条件;
第一生成单元602用于:
从有限状态机的状态中选取一个状态作为起始状态;
从有限状态机的转换动作中选取一个未遍历的转换动作作为目标转换动作;
根据测试模型、起始状态、最短路径算法和目标转换动作确定最短的测试路径;
将有限状态机执行目标转换动作后的状态确定为新的起始状态;
重复执行上述步骤,直到满足结束条件。
本申请实施例还提供了一种服务器,请参阅图9,图9是本发明实施例提供的服务器一种结构示意图,该服务器900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)922(例如,一个或一个以上处理器)和存储器932,一个或一个以上存储应用程序942或数据944的存储介质930(例如一个或一个以上海量存储设备)。其中,存储器932和存储介质930可以是短暂存储或持久存储。存储在存储介质930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器922可以设置为与存储介质930通信,在服务器900上执行存储介质930中的一系列指令操作。
服务器900还可以包括一个或一个以上电源926,一个或一个以上有线或无线网络接口950,一个或一个以上输入输出接口958,和/或,一个或一个以上操作系统941,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由服务器所执行的步骤可以基于该图9所示的服务器结构。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有电子支付指令,当其在计算机上运行时,使得计算机执行如前述任意实施例中描述的方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (11)

1.一种生成测试套件的方法,其特征在于,包括:
获取有限状态机的测试模型;所述测试模型包括有限状态机的状态和状态间的转换动作;所述测试模型的数量为至少两个;
根据所述测试模型和预设准则自动生成测试路径,所述测试路径由测试状态开始,测试动作和测试状态相间排列构成,所述测试状态为所述有限状态机的状态中的任意一个状态,相邻两个测试状态之间的测试动作为所述相邻两个测试状态对应的转换动作,所述测试路径中的测试状态和测试动作包含于各个测试模型中;
获取所述测试路径中各测试状态对应的测试用例和各测试动作对应的测试用例;不同的测试状态对应不同的测试用例,不同的测试动作对应不同的测试用例;
根据所述测试路径、各测试状态对应的测试用例和各测试动作对应的测试用例生成测试套件;
当所述预设准则包括随机算法和结束条件时,所述根据所述测试模型和预设准则生成测试路径包括:
从所述有限状态机的状态中选取一个状态作为起始状态;
从所述有限状态机的状态中选取一个未遍历的状态作为目标状态;
从所述起始状态开始,采用所述随机算法遍历任意一个与所述起始状态相关联的测试模型中的转换动作,再根据所述转换动作,遍历至下一个状态,并继续采用随机算法遍历下一个转换动作,直至遍历至所述目标状态;
将所述目标状态确定为新的起始状态;
重复执行上述步骤,直到满足所述结束条件。
2.根据权利要求1所述的方法,其特征在于,当所述预设准则包括随机算法和结束条件时,所述根据所述测试模型和预设准则生成测试路径包括:
从所述有限状态机的状态中选取一个状态作为起始状态;
从所述有限状态机的转换动作中选取一个未遍历的转换动作作为目标转换动作;
根据所述测试模型、所述起始状态、所述随机算法和所述目标转换动作随机生成测试路径;
将所述有限状态机执行所述目标转换动作后的状态确定为新的起始状态;
重复执行上述步骤,直到满足所述结束条件。
3.根据权利要求1所述的方法,其特征在于,当所述预设准则包括最短路径算法和结束条件时,
所述根据所述测试模型和预设准则生成测试路径包括:
从所述有限状态机的状态中选取一个状态作为起始状态;
从所述有限状态机的状态中选取一个未遍历的状态作为目标状态;
根据所述测试模型、所述起始状态、所述最短路径算法和所述目标状态确定最短的测试路径;
将所述目标状态确定为新的起始状态;
重复执行上述步骤,直到满足所述结束条件。
4.根据权利要求1所述的方法,其特征在于,当所述预设准则包括最短路径算法和结束条件时,
所述根据所述测试模型和预设准则生成测试路径包括:
从所述有限状态机的状态中选取一个状态作为起始状态;
从所述有限状态机的转换动作中选取一个未遍历的转换动作作为目标转换动作;
根据所述测试模型、所述起始状态、所述最短路径算法和所述目标转换动作确定最短的测试路径;
将所述有限状态机执行所述目标转换动作后的状态确定为新的起始状态;
重复执行上述步骤,直到满足所述结束条件。
5.根据权利要求1至4中任意一项所述的方法,其特征在于,所述结束条件为边覆盖率为预设第一覆盖率或点覆盖率为预设第二覆盖率。
6.一种生成测试套件的装置,其特征在于,包括:
第一获取单元,用于获取有限状态机的测试模型;所述测试模型包括有限状态机的状态和状态间的转换动作;所述测试模型的数量为至少两个;
第一生成单元,用于根据所述测试模型和预设准则自动生成测试路径,所述测试路径由测试状态开始,测试动作和测试状态相间排列构成,所述测试状态为所述有限状态机的状态中的任意一个状态,相邻两个测试状态之间的测试动作为所述相邻两个测试状态对应的转换动作;所述测试路径中的测试状态和测试动作包含于各个测试模型中;
第二获取单元,用于获取所述测试路径中各测试状态对应的测试用例和各测试动作对应的测试用例;不同的测试状态对应不同的测试用例,不同的测试动作对应不同的测试用例;
第二生成单元,用于根据所述测试路径、各测试状态对应的测试用例和各测试动作对应的测试用例生成测试套件;
当所述预设准则包括随机算法和结束条件时,
第一生成单元用于:
从所述有限状态机的状态中选取一个状态作为起始状态;
从所述有限状态机的状态中选取一个未遍历的状态作为目标状态;
从所述起始状态开始,采用所述随机算法遍历任意一个与所述起始状态相关联的测试模型中的转换动作,再根据所述转换动作,遍历至下一个状态,并继续采用随机算法遍历下一个转换动作,直至遍历至所述目标状态;
将所述目标状态确定为新的起始状态;
重复执行上述步骤,直到满足所述结束条件。
7.根据权利要求6所述的装置,其特征在于,所述预设准则包括随机算法和结束条件;
第一生成单元用于:
从所述有限状态机的状态中选取一个状态作为起始状态;
从所述有限状态机的转换动作中选取一个未遍历的转换动作作为目标转换动作;
根据所述测试模型、所述起始状态、所述随机算法和所述目标转换动作随机生成测试路径;
将所述有限状态机执行所述目标转换动作后的状态确定为新的起始状态;
重复执行上述步骤,直到满足所述结束条件。
8.根据权利要求6所述的装置,其特征在于,所述预设准则包括最短路径算法和结束条件;
第一生成单元用于:
从所述有限状态机的状态中选取一个状态作为起始状态;
从所述有限状态机的状态中选取一个未遍历的状态作为目标状态;
根据所述测试模型、所述起始状态、所述最短路径算法和所述目标状态确定最短的测试路径;
将所述目标状态确定为新的起始状态;
重复执行上述步骤,直到满足所述结束条件。
9.根据权利要求6所述的装置,其特征在于,所述预设准则包括最短路径算法和结束条件;
第一生成单元用于:
从所述有限状态机的状态中选取一个状态作为起始状态;
从所述有限状态机的转换动作中选取一个未遍历的转换动作作为目标转换动作;
根据所述测试模型、所述起始状态、所述最短路径算法和所述目标转换动作确定最短的测试路径;
将所述有限状态机执行所述目标转换动作后的状态确定为新的起始状态;
重复执行上述步骤,直到满足所述结束条件。
10.一种服务器,其特征在于,包括:存储器、收发器、处理器以及总线系统;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,以执行如权利要求1至6中任一项所述的方法。
11.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至6中任一项所述的方法。
CN201910774609.7A 2019-08-21 2019-08-21 一种生成测试套件的方法、装置、服务器及可读存储介质 Active CN112416736B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910774609.7A CN112416736B (zh) 2019-08-21 2019-08-21 一种生成测试套件的方法、装置、服务器及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910774609.7A CN112416736B (zh) 2019-08-21 2019-08-21 一种生成测试套件的方法、装置、服务器及可读存储介质

Publications (2)

Publication Number Publication Date
CN112416736A CN112416736A (zh) 2021-02-26
CN112416736B true CN112416736B (zh) 2024-02-06

Family

ID=74779050

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910774609.7A Active CN112416736B (zh) 2019-08-21 2019-08-21 一种生成测试套件的方法、装置、服务器及可读存储介质

Country Status (1)

Country Link
CN (1) CN112416736B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106706329A (zh) * 2015-07-31 2017-05-24 大陆汽车电子(长春)有限公司 测试汽车天窗控制器的方法
CN108446220A (zh) * 2018-03-02 2018-08-24 国网吉林省电力有限公司信息通信公司 一种测试用例的生成方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090070746A1 (en) * 2007-09-07 2009-03-12 Dinakar Dhurjati Method for test suite reduction through system call coverage criterion

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106706329A (zh) * 2015-07-31 2017-05-24 大陆汽车电子(长春)有限公司 测试汽车天窗控制器的方法
CN108446220A (zh) * 2018-03-02 2018-08-24 国网吉林省电力有限公司信息通信公司 一种测试用例的生成方法和装置

Also Published As

Publication number Publication date
CN112416736A (zh) 2021-02-26

Similar Documents

Publication Publication Date Title
CN106294120B (zh) 测试代码的方法、设备和计算机程序产品
Truong et al. Composable cost estimation and monitoring for computational applications in cloud computing environments
Evangelista et al. Improved multi-core nested depth-first search
US7623981B2 (en) Testing of embedded systems
CN113168364B (zh) 一种芯片验证方法和装置
Scheuner et al. Cloud work bench--infrastructure-as-code based cloud benchmarking
US8140911B2 (en) Dynamic software tracing
CN109960653A (zh) 回归测试方法、装置、设备和存储介质
CN107943707B (zh) 行为树的测试方法、装置和存储介质以及终端
CN104461693B (zh) 一种桌面云计算环境下的虚拟机更新方法和系统
CN110008049A (zh) 一种基于互联网平台的数据修正方法、终端设备及介质
CN110109816A (zh) 测试用例选择方法和装置
EP3264274A1 (en) Input discovery for unknown program binaries
Rosas et al. Scalability prediction for fundamental performance factors
CN109542779A (zh) 测试方法、装置和存储介质
CN105912467A (zh) 一种性能测试方法及装置
JP5845810B2 (ja) 分散コンピューティング環境におけるソフトウェアの解析の並列化のための効率的な部分計算
CN117729119A (zh) 针对边缘计算网关的设备运行数据处理方法及系统
CN112416736B (zh) 一种生成测试套件的方法、装置、服务器及可读存储介质
Yount et al. Graph-matching-based simulation-region selection for multiple binaries
CN111897725A (zh) 中台服务自动化测试方法、介质、设备及系统
CN114416589B (zh) 网络靶场综合检测方法、装置、设备及可读存储介质
CN111124854A (zh) 一种冒烟测试用例分配方法、系统、终端及存储介质
CN118838851B (zh) 一种测试用例生成方法、装置、电子设备及存储介质
CN113297058B (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