CN106706329A - 测试汽车天窗控制器的方法 - Google Patents
测试汽车天窗控制器的方法 Download PDFInfo
- Publication number
- CN106706329A CN106706329A CN201510464274.0A CN201510464274A CN106706329A CN 106706329 A CN106706329 A CN 106706329A CN 201510464274 A CN201510464274 A CN 201510464274A CN 106706329 A CN106706329 A CN 106706329A
- Authority
- CN
- China
- Prior art keywords
- state
- test case
- event
- test
- skylight
- 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.)
- Pending
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供一种测试汽车天窗控制器的方法,包括:根据天窗的功能定义,获取天窗的所有静止状态、运行状态和所有触发静止或运行状态的操作事件,并且根据所有的状态和事件构建有限状态机;通过该有限状态机生成全部的测试用例场景;通过触发测试用例中设定的相关操作事件对天窗的各种状态进行逐一测试。本发明提供的测试用例自动生成方法既可以减低工作量,节省人力,降低出错率,也可以提高对软件功能进行测试时的覆盖率。
Description
技术领域
本发明涉及汽车电子技术领域,具体而言,涉及一种基于有限状态机的测试汽车天窗控制器的方法。
背景技术
汽车天窗主要由天窗玻璃、驱动电动机及齿轮、滑动软轴、控制器及继电器等组成。天窗的机械传动是从驱动电动机经过咬合的齿轮传递给可滑动的软轴,软轴拖动主滑块,主滑块带动从动滑块在导轨里滑动,从动滑块再牵引滚动销,滚动销沿着升降支架机构中导向凹槽上下运动,进而支起、放下天窗玻璃,从而实现天窗的打开、闭合、内藏。要实现天窗的打开、闭合、内藏以及防夹等功能,需要天窗控制器具有较强的软件功能。
现有的汽车天窗控制软件的测试方法包括:测试人员根据天窗控制器的系统需求来设计测试用例,来尽可能多的覆盖系统的功能;然后,测试人员根据人工编写的测试步骤对天窗进行测试,并观察天窗的各种运行状态,与预期结果相比较,判断测试是否成功。现有的汽车天窗控制软件的测试方法存在的问题是:一方面,在设计测试用例的过程中,测试人员需要手动完成全部的测试用例,这个过程工作量大并且非常繁琐,很容易出错;另一方面,无法有效的统计由所有的测试用例构成的测试需求的覆盖率。
有鉴于此,针对现有汽车天窗控制软件的测试方法所存在的技术问题,需要设计新的测试方法,既可以减低工作量,节省人力,降低出错率,也可以提高对软件功能进行测试时的覆盖率。
发明内容
针对上述技术问题,本发明提供一种基于有限状态机的测试汽车天窗控制器的方法,既可以减低工作量,节省人力,降低出错率,也可以提高对软件功能进行测试时的覆盖率。
为实现上述目的,本发明提供了一种测试汽车天窗控制器的方法,包括:根据天窗的功能定义,获取天窗的所有静止状态、运行状态和所有触发静止或运行状态的操作事件,并且根据所有的状态和事件构建有限状态机;通过该有限状态机生成全部的测试用例场景;通过触发测试用例中设定的相关操作事件对天窗的各种状态进行逐一测试。
进一步地,所述通过该有限状态机生成全部的测试用例场景,包括:以单个状态为起点,列举出所有从该状态出发的所有事件以及通过该事件到达的下一个状态,并生成状态转换索引;以任一状态为出发点,根据状态转换索引,进行状态转换,并生成一个测试用例场景;重复上一步骤,遍历生成所有的测试用例场景;将每条测试用例场景中的起始状态作为测试前提,将事件作为测试步骤,将转换后的状态作为预期测试结果,从而构成测试用例。
进一步地,所述通过该有限状态机生成全部的测试用例场景,包括:以单个状态为起点,列举出所有从该状态出发的所有事件以及通过该事件到达的下一个状态,并生成状态转换索引;以任一状态为出发点,根据状态转换索引,进行状态转换,并生成一个测试用例场景;重复上一步骤,遍历生成所有的测试用例场景;将每条测试用例场景中的起始状态作为测试前提,将事件作为测试步骤,将转换后的状态作为预期测试结果,从而构成测试用例。
进一步地,所述状态转换路径为方向向量,并且包括如下要素:起点、事件、和终点。
进一步地,所述测试用例包括至少两条状态转换路径的组合。
进一步地,所述进行状态转换直至出现重复的状态为止,包括:当测试用例场景包含多条状态转换路径时,前一条状态转换路径的终点将作为下一条状态转换路径的起点,根据状态转换索引和遍历结果不断切换状态,直至出现下一条状态转换路径的终点与之前任意一条状态转换路径的起点或终点相同的情形。
本发明提供了一种测试汽车天窗控制器的方法,基于构建的天窗控制器的有限状态机模型,通过抽象符号工具自动生成所有的测试用例,以覆盖全部的测试用例场景,这样既可以减低工作量,节省人力,降低出错率,也可以提高对软件功能进行测试时的覆盖率,能够为统计测试需求的覆盖率提供有效的依据。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明一实施例的测试汽车天窗控制器的方法的流程示意图;
图2是本发明一实施例的由自然语言描述的有限状态机的模型示意图;
图3是本发明一实施例的将自然语言描述的有限状态机转换成由抽象符号描述的有限状态机的流程示意图;
图4是本发明一实施例的由抽象符号描述的有限状态机的模型示意图;
图5是本发明一实施例的通过由抽象符号描述的有限状态机遍历所有的状态转换过程,并生成全部的测试用例场景的流程示意图;
图6是本发明另一实施例的通过由抽象符号描述的有限状态机遍历所有的状态转换过程,并生成全部的测试用例场景的流程示意图。
具体实施方式
为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。下文中将详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
【名词解释】有限状态机(FSM"finite smachine"或者FSA"finitesautomaton")或图灵机广泛应用于硬件控制电路设计,也是软件上常用的一种处理方法(软件上称为FMM--有限消息机)。有限状态自动机拥有有限数量的状态,每个状态可以迁移到零个或多个状态,输入字串决定执行哪个状态的迁移。有限状态自动机可以表示为一个有向图,它把复杂的控制逻辑分解成有限个稳定状态,在每个状态上判断事件,变连续处理为离散数字处理,符合计算机的工作特点。同时,因为有限状态机具有有限个状态,所以可以在实际的工程上实现。但这并不意味着其只能进行有限次的处理,相反,有限状态机是闭环系统,有限无穷,可以用有限的状态,处理无穷的事务。
本领于技术人员可以理解的是,在描述有限状态机时,状态、事件、转换和动作是常用的基本概念,其中:
本发明中提到的“状态”(State)指的是对象在其生命周期中的一种状况,处于某个特定状态中的对象必然会满足某些条件、执行某些动作或者是等待某些事件。
本发明中提到的“事件”(Event)指的是在时间和空间上占有一定位置,并且对状态机来讲是有意义的那些事情。事件通常会引起状态的变迁,促使状态机从一种状态转换到另一种状态。
本发明中提到的“转换”(Transition)指的是两个状态之间的一种关系,表明对象将在第一个状态中执行一定的动作,并将在某个事件发生同时某个特定条件满足时进入第二个状态。
本发明中提到的“动作”(Action)指的是状态机中可以执行的那些原子操作,所谓原子操作指的是它们在运行的过程中不能被其他消息所中断,必须一直执行下去。
本发明中提到的“测试用例场景”指的是分析软件应用的场景,从用户的角度出发,从场景的角度来设计测试用例。
本发明中提到的“测试用例”指的是为某个特殊目标而编制的一组输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。
图1是本发明一实施例的测试汽车天窗控制器的方法的流程示意图。如图1所示,本发明提供一种测试汽车天窗控制器的方法,包括:根据天窗的功能定义,获取天窗的所有静止状态、运行状态和所有触发静止或运行状态的操作事件,并且根据所有的状态和事件构建有限状态机;通过该有限状态机生成全部的测试用例场景,并将全部的测试用例场景合并为一个测试用例;通过触发测试用例中设定的相关操作事件对天窗的各种状态进行逐一测试。
作为一种实施例,根据天窗产品的功能描述,分析出天窗的所有状态包括:天窗停在完全打开、天窗停在完全关闭、天窗停在部分打开或关闭、天窗进行手动开启、天窗进行手动关闭;
接着,确定天窗的所有静止状态为:处于完全打开位置状态、处于完全关闭位置状态、处于部分打开或关闭位置状态;
接着,确定天窗的所有运行状态为:手动开启和手动关闭;
接着,确定天窗的所有触发静止或运行状态的操作事件包括:按压打开开关、释放打开开关、按压关闭开关和释放关闭开关;
根据获取的所有状态和事件,构建基于自然语言描述的有限状态机(如图2所示);
将自然语言描述的有限状态机转换成由抽象符号描述的有限状态机(如图4所示);
通过由抽象符号描述的有限状态机遍历所有的状态转换过程,并生成全部的测试用例场景;
接着,将全部的测试用例场景合并为一个测试用例(如表5所示);
接着,通过触发相关操作对天窗的各种状态进行逐一测试。例如,当天窗处于完全打开位置状态时,在测试人员按压关闭开关(按照测试用例场景的)后,如果天窗停在完全关闭位置,则判断天窗的该项功能正常,检测结果为“成功”;如果天窗停在部分打开状态或者天窗并未关闭,则判断天窗的该项功能不正常,检测结果为“失败”。
可以理解的是,应用本发明的天窗控制器具有有限个状态,天窗不同的状态代表不同功能且各状态之间无功能交叉;根据实际的测试需要,天窗控制器可以完成测试用例中设定的相关操作事件,以进行天窗不同状态的测试任务;测试用例中有一个状态,它是天窗控制器的开始状态(称作“起点”)。
可以理解的是,生成天窗控制器测试用例的有限状态机是由触发天窗静止或运行状态的操作事件来进行驱动的。有限状态机负责在其内部维护一个针对天窗操作事件的队列,所有到达的操作事件都会先被放到事件队列中进行等候,从而能够保证它们将按照到达的先后顺序被依次处理。在处理每一个到达的操作事件时,有限状态机都会根据自己当前所处的静止状态或运行状态,检查与该状态对应的转换条件是否已经被满足,如果满足的话则激活相应的状态转换过程。
图2是本发明一实施例的基于汽车天窗控制软件的所有状态和触发事件构建的由自然语言描述的有限状态机的模型示意图。如图2和表一所示,汽车天窗控制软件的状态可以包括:完全打开位置、手动开启、部分打开位置、手动关闭和完全关闭位置。完全打开位置状态实现为天窗停在完全打开位置。手动开启状态实现为天窗进行手动开启运动。部分打开位置状态实现为天窗停在部分打开位置。手动关闭状态实现为天窗进行手动关闭运动。完全关闭位置状态实现为天窗停在完全关闭位置。如表二所示,汽车天窗控制软件的事件可以包括:激活打开按键、停止激活打开按键、激活关闭按键和停止激活关闭按键。用户可以通过按压打开开关以激活打开按键;反之,用户可以通过释放打开开关以停止激活打开按键。同理,用户可以通过按压关闭开关以激活关闭按键;反之,用户可以通过释放关闭开关以停止激活关闭按键。
图3是本发明一实施例的将自然语言描述的有限状态机转换成由抽象符号描述的有限状态机的流程示意图。如图3所示,将有限状态机中的状态和事件分别用状态符号和事件符号代替;将不同状态分别用不同状态符号代替;将不同事件分别用不同事件符号代替;根据状态符号和事件符号,将自然语言描述的有限状态机转换成由抽象符号描述的有限状态机。
表一是本发明一实施例的将不同状态分别用不同状态符号代替的结果示意表格图。如表一所示,状态符号S1表示状态“完全打开位置”;状态符号S2表示状态“手动开启”;状态符号S3表示状态“部分打开位置”;状态符号S4表示状态“手动关闭”;状态符号S5表示状态“完全关闭位置”。
表一
状态符号 | 状态名称 | 状态描述 |
S1 | 完全打开位置 | 天窗停在完全打开位置 |
S2 | 手动开启 | 天窗进行手动开启运动 |
S3 | 部分打开位置 | 天窗停在部分打开位置 |
S4 | 手动关闭 | 天窗进行手动关闭运动 |
S5 | 完全关闭位置 | 天窗停在完全关闭位置 |
表二是本发明一实施例的将不同事件分别用不同事件符号代替的结果示意表格图。如表二所示,事件符号E1表示事件“激活打开按键”;事件符号E2表示事件“停止激活打开按键”;事件符号E3表示事件“激活关闭按键”;事件符号E4表示事件“停止激活关闭按键”。
表二
事件符号 | 事件名称 | 事件描述 |
E1 | 激活打开按键 | 按压打开开关 |
E2 | 停止激活打开按键 | 释放打开开关 |
E3 | 激活关闭按键 | 按压关闭开关 |
E4 | 停止激活关闭按键 | 释放关闭开关 |
图4是本发明一实施例的由抽象符号描述的有限状态机的模型示意图。如图4所示,在执行完将自然语言描述的有限状态机转换成由抽象符号描述的有限状态机之后,由抽象符号描述的有限状态机并未改变原自然语言描述的有限状态机中状态与状态之间的关系,状态转换时所需触发事件的关系。也就是说,状态转换路径及触发条件并未发生任何改变。
图5是本发明一实施例的通过由抽象符号描述的有限状态机遍历所有的状态转换过程,并生成全部的测试用例场景的流程示意图。如图5所示,所述通过该有限状态机生成全部的测试用例场景,将全部的测试用例场景合并为一个测试用例,进一步包括:以单个状态为起点,列举出所有从该状态出发的所有事件以及通过该事件到达的下一个状态,并生成状态转换索引;以任一状态为出发点,根据状态转换索引,进行状态转换,并生成一个测试用例场景;重复上一步骤,遍历生成所有的测试用例场景;将每条测试用例场景中的起始状态作为测试前提,将事件作为测试步骤,将转换后的状态作为预期测试结果,从而构成测试用例。
图6是本发明一实施例的通过由抽象符号描述的有限状态机遍历所有的状态转换过程,并生成全部的测试用例场景的流程示意图。如图6所示,所述通过该有限状态机生成全部的测试用例场景,将全部的测试用例场景合并为一个测试用例,进一步包括:以单个状态为起点,列举出所有从该状态出发的所有事件以及通过该事件到达的下一个状态,并生成状态转换索引;以任一状态为出发点,根据状态转换索引,进行状态转换,直至出现重复的状态为止,并生成一个测试用例场景;重复上一步骤,遍历生成所有的测试用例场景;将每条测试用例场景中的起始状态作为测试前提,将事件作为测试步骤,将转换后的状态作为预期测试结果,从而构成测试用例。
图6所示流程的实施例与图5所示流程的实施例的区别之处在于,图6所示流程在“以任一状态为出发点,根据状态转换索引,进行状态转换,直至出现重复的状态为止,并生成一个测试用例场景”步骤中配置了“直至出现重复的状态为止”的条件。也就是说,在防止遗漏测试状态的基础上,图5所示流程的实施例可以允许测试用例场景中出现重复的测试状态,而图6所示流程的实施例排除重复测试的情况。例如,在图5所示流程的实施例中,在“S1-E1-S1”中出现S1重复时并不停止转换。例如,在图6所示流程的实施例中,进行状态转换直至出现重复的状态为止,在“S1-E1-S1”中出现S1重复则停止转换,“S1-E1-S1”则成为一个测试用例场景。
表三是本发明一实施例的通过有限状态机遍历所有的状态转换过程后生成的状态转换索引的示意图。通过对如图4所示的由抽象符号描述的有限状态机执行如图5所示的步骤S31,可以获得如表三所示的分别以状态S1-S5为起点的所有状态转换路径的状态转换索引。状态转换索引包括<起点、事件、终点>三要素。如表三所示,状态转换索引的三要素分别通过表三中的三个列表示,从左向右看,第一列显示的是状态机中所有的起点(即,初始状态);第二列显示的是状态机中所有的事件(即,触发状态转换的事件)以及每个出发点对应的所有路径;第三列显示的是每条路径对应的终点(即,转换状态)。可以理解的是,这里使用的词“所有的”是指全部的对象(即,起点、事件、或终点),这些对象都是唯一且不重复的。在本发明中,路径包括起点、事件、和终点三要素。可以理解的是,这种<路径︱起点、事件、终点>构成了数学中的几何向量(尤其是,方向向量)。因此,可以通过方向向量的概念和原理来理解本发明中的路径,运用方向向量的路径根据状态转换索引执行状态转换的功能。
表三
【索引列表示例1】:如图4和表三所示,以状态S1为起点的状态转换路径有两条“S1-E1-S1”和S1-E3-S4”。在本发明中,符号“S起”表示路径的“起点”状态,符号“S终”表示路径的“终点”状态,在路径、索引列表和测试用例场景中的“事件”概念用同样的符号E表示,符号“S起-Ex-S终”表示状态机中的一条“路径”。
例如,在路径“S1-E1-S1”情况中,激活打开按键的事件E1促使完全打开位置的状态S1仍保持在状态S1,即,根据图2所示的自然语言可知,当天窗停在完全打开位置时,用户按压打开开关的操作事件,使得天窗仍在处于完全打开位置,状态不发生改变。
例如,在路径“S1-E3-S4”情况中,激活关闭按键的事件E3促使完全打开位置的状态S1转换为手动关闭的状态S4,即,根据图2所示的自然语言可知,当天窗停在完全打开位置时,用户按压关闭开关的操作事件,使得天窗进行手动关闭运动。
【索引列表示例2】:如图4和表三所示,以状态S2为起点的状态转换路径有三条“S2-E1-S1”、“S2-E2-S3”和“S2-E3-S3”。
例如,在路径“S2-E1-S1”情况中,激活打开按键的事件E1使得手动开启的状态S2转换为完全打开位置的状态S1,即,根据图2所示的自然语言可知,当天窗进行手动开启运动时,用户按压打开开关的操作事件,使得天窗停在完全打开位置。
例如,在路径“S2-E2-S3”情况中,停止激活打开按键的事件E2使得手动开启的状态S2转换为部分打开位置的状态S3,即,根据图2所示的自然语言可知,当天窗进行手动开启运动时,用户释放打开开关的操作事件,使得天窗停在部分打开位置。
例如,在路径“S2-E3-S3”情况中,激活关闭按键的事件E3使得手动开启的状态S2转换为部分打开位置的状态S3,即,根据图2所示的自然语言可知,当天窗进行手动开启运动时,用户按压关闭开关的操作事件,使得天窗停在部分打开位置。
【索引列表示例3】:如图4和表三所示,以状态S3为起点的状态转换路径有三条“S3-E1-S2”和“S3-E3-S4”。
例如,在路径“S3-E1-S2”情况中,激活打开按键的事件E1使得部分打开位置的状态S3转换为手动开启的状态S2,即,根据图2所示的自然语言可知,当天窗停在部分打开位置时,用户按压打开开关的操作事件,使得天窗进行手动开启运动。
例如,在路径“S3-E3-S4”情况中,激活关闭按键的事件E3使得部分打开位置的状态S3转换为手动关闭的状态S4,即,根据图2所示的自然语言可知,当天窗停在部分打开位置时,用户按压关闭开关的操作事件,使得天窗进行手动关闭运动。
【索引列表示例4】:如图4和表三所示,以状态S4为起点的状态转换路径有三条“S4-E4-S3”、“S4-E1-S3”和“S4-E3-S5”。
例如,在路径“S4-E4-S3”情况中,停止激活关闭按键的事件E4使得手动关闭的状态S4转换为部分打开位置的状态S3,即,根据图2所示的自然语言可知,当天窗进行手动关闭运动时,用户释放关闭开关的操作事件,使得天窗停在部分打开位置。
例如,在路径“S4-E1-S3”情况中,激活打开按键的事件E1使得手动关闭的状态S4转换为部分打开位置的状态S3,即,根据图2所示的自然语言可知,当天窗进行手动关闭运动时,用户按压打开开关的操作事件,使得天窗停在部分打开位置。
例如,在路径“S4-E3-S5”情况中,激活关闭按键的事件E3使得手动关闭的状态S4转换为完全关闭位置的状态S5,即,根据图2所示的自然语言可知,当天窗进行手动关闭运动时,用户按压关闭开关的操作事件,使得天窗停在完全关闭位置。
【索引列表示例5】:如图4和表三所示,以状态S5为起点的状态转换路径有三条“S5-E3-S5”和“S5-E1-S2”。
例如,在路径“S5-E3-S5”情况中,激活关闭按键的事件E3使得完全关闭位置的状态S5仍保持在状态S5,即,根据图2所示的自然语言可知,当天窗停在完全关闭位置时,用户按压关闭开关的操作事件,使得天窗仍在处于完全关闭位置,状态不发生改变。
例如,在路径“S5-E1-S2”情况中,激活打开按键的事件E1使得手动开启的状态S5转换为部分打开位置的状态S3,即,根据图2所示的自然语言可知,当天窗停在完全关闭位置时,用户按压打开开关的操作事件,使得天窗进行手动开启运动。
表四是本发明一实施例的通过状态转换索引生成所有测试用例场景的结果示意图。通过对如图4所示的由抽象符号描述的有限状态机执行如图5所示“生成测试用例场景”的步骤,可以获得如表四所示的分别以状态S起到状态S终的所有测试用例场景。在本发明中,符号“S起”表示路径的“起点”状态,符号“S终”表示路径的“终点”状态,符号“En”表示第n次事件,符号“Stn”表示第n次转换状态,符号“S起-En-Stn-S终”表示一条“测试用例场景”。可以理解的是,测试用例场景中至少包含一条状态转换路径;当测试用例场景包含多条状态转换路径时,前一条状态转换路径的终点将作为下一条状态转换路径的起点,根据状态转换索引和遍历结果不断切换状态,直至出现下一条状态转换路径的终点与之前任意一条状态转换路径的起点或终点相同的情形,即,当一条测试用例场景中在后状态与任一在前状态重复时,结束遍历并返回整条测试用例场景。
表四
【测试用例场景示例1】:如表三和表四所示,以状态S1为起点的测试用例场景中,
步骤1,当起点为S1且事件1为E3时,S1转换为S4;
接着,步骤2,如表三所示,当起点为S4且事件2为E4时,S4转换为S3;
接着,步骤3,当起点为S3且事件3为E1时,S3转换为S2;
接着,步骤4,当起点为S2且事件4为E1时,S2转换为S1;
此时,转换后的状态S1与之前S起时的S1重复,则结束遍历并返回该测试用例场景,即,
如表五中第1列第1行所示的“S1-E3-S4-E4-S3-E1-S2-E1-S1”。
在上述测试用例场景中,当天窗停在完全打开位置(状态S1)时,测试人员按压关闭开关(事件E3)后,天窗从完全打开位置转换为进行手动关闭运动(状态S4);接着,测试人员释放关闭开关(事件E4)后,天窗从手动关闭运动转换为停在部分打开位置(状态S3);接着,测试人员按压打开开关(事件E1)后,天窗从部分打开位置状态转换为进行手动开启运动(状态S2);接着,测试人员再次按压打开开关(事件E1)后,天窗从手动开启运动转换为停在完全打开位置(状态S1);此时,天窗转换后的状态(状态S1)与起始状态(状态S1)发生重复,随后结束本次测试,这个测试过程实现了一个测试用例场景的测试操作。
【测试用例场景示例2】:另一种测试用例场景是,在上述步骤1-3执行完毕后,当上述步骤4中触发事件4为E2时,S2转换为S3;
此时,转换后的状态S3与之前转换状态2时的S3重复,则结束遍历并返回该测试用例场景,即,
如表五中第1列第2行所示的“S1-E3-S4-E4-S3-E1-S2-E2-S3”。
在上述测试用例场景中,当天窗停在完全打开位置(状态S1)时,测试人员按压关闭开关(事件E3)后,天窗从完全打开位置转换为进行手动关闭运动(状态S4);接着,测试人员释放关闭开关(事件E4)后,天窗从手动关闭运动转换为停在部分打开位置(状态S3);接着,测试人员按压打开开关(事件E1)后,天窗从部分打开位置状态转换为进行手动开启运动(状态S2);接着,测试人员释放打开开关(事件E2)后,天窗从手动开启运动转换为停在部分打开位置(状态S3);此时,天窗转换后的状态(状态S3)与第二次转换后的状态(状态S3)发生重复,随后结束本次测试,这个测试过程实现了一个测试用例场景的测试操作。
因此,按照上述方法,遍历所有的起始状态S起,可以获得所有的测试用例场景。随后,将所有测试用例场景集成完整的测试用例。
表五是本发明一实施例的通过生成的测试用例进行测试的状态示意图。如表五所示,通过对如表四所示的测试用例场景执行如图5所示的步骤S34,在测试用例场景中,将起始状态作为测试前提,将事件作为测试步骤,将跳转的状态作为预期测试结果,可以获得如表五所示的测试用例。可以理解的是,表五中示出的测试用例仅显示了两个测试用例场景的示例,实际情况不止两个测试用例场景。在通过测试用例进行测试时,需要将测试用例中的每个测试用例场景按照<前提、步骤、预期结果>三项进行解析,每个测试用例可以解析出多项预期结果。例如,首先,将测试用例场景的首个状态提取出并放置在“前提”一列中;接着,将测试用例场景中的事件全部提取出并放置于“步骤”一列中;随后,将紧随“事件”后面的状态提取出并放置在“预期结果”一列中。
表五
【创新说明】本发明提供的测试用例自动生成方法,将天窗的所有状态和触发事件分别用状态符号和事件符号来一一标记,从而把天窗控制器的系统需求抽象成一个有限自动状态机模型,根据这个模型,由工具自动生成天窗控制器的测试用例,这样既可以减低工作量,节省人力,降低出错率,也可以提高对软件功能进行测试时的覆盖率。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (7)
1.一种测试汽车天窗控制器的方法,其特征在于,包括:
根据天窗的功能定义,获取天窗的所有静止状态、运行状态和所有触发静止或运行状态的操作事件,并且根据所有的状态和事件构建有限状态机;
通过该有限状态机生成全部的测试用例场景;
通过触发测试用例中设定的相关操作事件对天窗的各种状态进行逐一测试。
2.根据权利要求1所述的方法,其特征在于,所述状态包括:
完全打开位置、手动开启、部分打开位置、手动关闭和完全关闭位置。
3.根据权利要求2所述的方法,其特征在于,所述事件包括:
激活打开按键、停止激活打开按键、激活关闭按键和停止激活关闭按键。
4.根据权利要求1所述的方法,其特征在于,所述通过该有限状态机生成全部的测试用例场景,进一步包括:
以任一状态为起点,列举出所有从该状态出发的所有事件以及通过该事件到达的下一个状态,并生成状态转换索引;
以任一状态为出发点,根据状态转换索引,进行状态转换,并生成一个测试用例场景;
重复上一步骤,遍历生成所有的测试用例场景;
将每条测试用例场景中的起始状态作为测试前提,将事件作为测试步骤,将转换后的状态作为预期测试结果,从而构成测试用例。
5.根据权利要求1所述的方法,其特征在于,,所述通过该有限状态机生成全部的测试用例场景,进一步包括:
以任一状态为起点,列举出所有从该状态出发的所有事件以及通过该事件到达的下一个状态,并生成状态转换索引;
以任一状态为出发点,根据状态转换索引,进行状态转换,直至出现重复的状态为止,并生成一个测试用例场景;
重复上一步骤,遍历生成所有的测试用例场景;
将每条测试用例场景中的起始状态作为测试前提,将事件作为测试步骤,将转换后的状态作为预期测试结果,从而构成测试用例。
6.根据权利要求4或5所述的方法,其特征在于,所述测试用例场景包括至少两条状态转换路径的组合。
7.根据权利要求4或5所述的方法,其特征在于,所述进行状态转换直至出现重复的状态为止,进一步包括:
当测试用例场景包含多条状态转换路径时,前一条状态转换路径的终点将作为下一条状态转换路径的起点,根据状态转换索引和遍历结果不断切换状态,直至出现下一条状态转换路径的终点与之前任意一条状态转换路径的起点或终点相同的情形。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510464274.0A CN106706329A (zh) | 2015-07-31 | 2015-07-31 | 测试汽车天窗控制器的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510464274.0A CN106706329A (zh) | 2015-07-31 | 2015-07-31 | 测试汽车天窗控制器的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106706329A true CN106706329A (zh) | 2017-05-24 |
Family
ID=58923073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510464274.0A Pending CN106706329A (zh) | 2015-07-31 | 2015-07-31 | 测试汽车天窗控制器的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106706329A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107450348A (zh) * | 2017-07-25 | 2017-12-08 | 广州虹科电子科技有限公司 | 基于lin的天窗电机测试方法、系统、电子设备及存储介质 |
CN110717999A (zh) * | 2019-10-08 | 2020-01-21 | 北京百度网讯科技有限公司 | 通信方法、装置、电子设备及存储介质 |
CN111552635A (zh) * | 2020-04-03 | 2020-08-18 | 深圳壹账通智能科技有限公司 | 一种数据检测方法、设备、服务器及可读存储介质 |
CN112286793A (zh) * | 2020-09-28 | 2021-01-29 | 马瑞利汽车零部件(芜湖)有限公司 | 基于状态机的车灯控制器测试用例自动生成方法 |
CN112326285A (zh) * | 2020-10-21 | 2021-02-05 | 南京大学 | 基于机器视觉和有限状态机fsm的电动螺丝刀检测方法 |
CN112395207A (zh) * | 2020-12-08 | 2021-02-23 | 盛科网络(苏州)有限公司 | 复杂状态机的高效验证方法、设备和存储介质 |
CN112416736A (zh) * | 2019-08-21 | 2021-02-26 | 腾讯科技(深圳)有限公司 | 一种生成测试套件的方法、装置、服务器及可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1097442A (ja) * | 1996-07-01 | 1998-04-14 | Sun Microsyst Inc | 自動検査ツールと共に用いる汎用ウインドウ・アプリケーション・インストール検査方法およびシステム |
US7024589B2 (en) * | 2002-06-14 | 2006-04-04 | International Business Machines Corporation | Reducing the complexity of finite state machine test generation using combinatorial designs |
CN101674205A (zh) * | 2009-08-27 | 2010-03-17 | 福建星网锐捷网络有限公司 | 基于有限状态机的网络通信协议测试序列生成方法及装置 |
CN102096410A (zh) * | 2010-12-24 | 2011-06-15 | 清华大学 | 一种高速列车运行控制系统功能的动态测试方法 |
CN102854877A (zh) * | 2012-10-12 | 2013-01-02 | 山东省科学院自动化研究所 | 汽车车身控制模块的功能测试系统及测试方法 |
CN103678138A (zh) * | 2014-01-03 | 2014-03-26 | 北京经纬恒润科技有限公司 | 一种生成状态转换测试用例的方法及装置 |
CN102929775B (zh) * | 2012-10-23 | 2015-03-25 | 中标软件有限公司 | 一种Web应用系统测试方法 |
-
2015
- 2015-07-31 CN CN201510464274.0A patent/CN106706329A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1097442A (ja) * | 1996-07-01 | 1998-04-14 | Sun Microsyst Inc | 自動検査ツールと共に用いる汎用ウインドウ・アプリケーション・インストール検査方法およびシステム |
US7024589B2 (en) * | 2002-06-14 | 2006-04-04 | International Business Machines Corporation | Reducing the complexity of finite state machine test generation using combinatorial designs |
CN101674205A (zh) * | 2009-08-27 | 2010-03-17 | 福建星网锐捷网络有限公司 | 基于有限状态机的网络通信协议测试序列生成方法及装置 |
CN102096410A (zh) * | 2010-12-24 | 2011-06-15 | 清华大学 | 一种高速列车运行控制系统功能的动态测试方法 |
CN102854877A (zh) * | 2012-10-12 | 2013-01-02 | 山东省科学院自动化研究所 | 汽车车身控制模块的功能测试系统及测试方法 |
CN102929775B (zh) * | 2012-10-23 | 2015-03-25 | 中标软件有限公司 | 一种Web应用系统测试方法 |
CN103678138A (zh) * | 2014-01-03 | 2014-03-26 | 北京经纬恒润科技有限公司 | 一种生成状态转换测试用例的方法及装置 |
Non-Patent Citations (1)
Title |
---|
刘浩锐 等: "基于状态转换的ECU功能测试研究", 《汽车电器》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107450348A (zh) * | 2017-07-25 | 2017-12-08 | 广州虹科电子科技有限公司 | 基于lin的天窗电机测试方法、系统、电子设备及存储介质 |
CN112416736A (zh) * | 2019-08-21 | 2021-02-26 | 腾讯科技(深圳)有限公司 | 一种生成测试套件的方法、装置、服务器及可读存储介质 |
CN112416736B (zh) * | 2019-08-21 | 2024-02-06 | 腾讯科技(深圳)有限公司 | 一种生成测试套件的方法、装置、服务器及可读存储介质 |
CN110717999A (zh) * | 2019-10-08 | 2020-01-21 | 北京百度网讯科技有限公司 | 通信方法、装置、电子设备及存储介质 |
CN110717999B (zh) * | 2019-10-08 | 2023-08-29 | 北京百度网讯科技有限公司 | 通信方法、装置、电子设备及存储介质 |
CN111552635A (zh) * | 2020-04-03 | 2020-08-18 | 深圳壹账通智能科技有限公司 | 一种数据检测方法、设备、服务器及可读存储介质 |
CN112286793A (zh) * | 2020-09-28 | 2021-01-29 | 马瑞利汽车零部件(芜湖)有限公司 | 基于状态机的车灯控制器测试用例自动生成方法 |
CN112326285A (zh) * | 2020-10-21 | 2021-02-05 | 南京大学 | 基于机器视觉和有限状态机fsm的电动螺丝刀检测方法 |
CN112395207A (zh) * | 2020-12-08 | 2021-02-23 | 盛科网络(苏州)有限公司 | 复杂状态机的高效验证方法、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106706329A (zh) | 测试汽车天窗控制器的方法 | |
KR20040089643A (ko) | 철도역 핵심 컴퓨터 장치용 로직 제어 유닛을 생성하는디바이스 및 방법 | |
US20120233132A1 (en) | Methodology to establish term co-relationship using sentence boundary detection | |
CN110942831B (zh) | 基于自注意力机制的孕期数据建模方法 | |
Bonacina et al. | Interpolation systems for ground proofs in automated deduction: a survey | |
Bon et al. | From a solution model to a B model for verification of safety properties | |
Ljungkrantz et al. | A formal specification language for PLC-based control logic | |
Komenda et al. | Control of discrete-event systems with partial observations using coalgebra and coinduction | |
Vereijken | Discrete-time process algebra | |
DE112020006810T5 (de) | Betriebszustands-klassifikationssystem und betriebszustands-klassifikationsverfahren | |
Van Glabbeek | Failure trace semantics for a process algebra with time-outs | |
CN108388147B (zh) | 一种实时故障注入时序资源优化方法及其系统 | |
Goranko et al. | Tableau-based decision procedure for full coalitional multiagent temporal-epistemic logic of linear time | |
CN105787209A (zh) | 一种机械系统的失效行为表征方法 | |
Friedman et al. | Using model-based design for automotive systems engineering-requirements analysis of the power window example | |
Guttmann | Partial, total and general correctness | |
Man | An overview of SystemC/sup FL | |
Chandra et al. | A event occurrence rules based compact modeling formalism for a class of discrete event systems | |
WO2018103842A1 (en) | Method for modelling technical systems | |
Guttmann | Unifying lazy and strict computations | |
Goranko et al. | Tableau-based procedure for deciding satisfiability in the full coalitional multiagent epistemic logic | |
Zhou et al. | Bisimilarity control of partially observed deterministic systems | |
Fritz | Post completeness in congruential modal logics | |
Klin et al. | Syntactic formats for free: An abstract approach to process equivalence | |
Diekert et al. | An expressively complete temporal logic without past tense operators for Mazurkiewicz traces |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170524 |