CN103995778A - 一种基于事件和动作的脚本文件生成方法及其装置 - Google Patents

一种基于事件和动作的脚本文件生成方法及其装置 Download PDF

Info

Publication number
CN103995778A
CN103995778A CN201410235675.4A CN201410235675A CN103995778A CN 103995778 A CN103995778 A CN 103995778A CN 201410235675 A CN201410235675 A CN 201410235675A CN 103995778 A CN103995778 A CN 103995778A
Authority
CN
China
Prior art keywords
event
script file
action
testing process
file
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.)
Granted
Application number
CN201410235675.4A
Other languages
English (en)
Other versions
CN103995778B (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.)
Shanghai Keliang Information Technology Co.,Ltd.
Original Assignee
SHANGHAI KELIANG INFORMATION ENGINEERING 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 SHANGHAI KELIANG INFORMATION ENGINEERING Co Ltd filed Critical SHANGHAI KELIANG INFORMATION ENGINEERING Co Ltd
Priority to CN201410235675.4A priority Critical patent/CN103995778B/zh
Publication of CN103995778A publication Critical patent/CN103995778A/zh
Application granted granted Critical
Publication of CN103995778B publication Critical patent/CN103995778B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明涉及计算机领域,公开了一种基于事件和动作的脚本文件生成方法及其装置,能够自动生成代码进行测试。该方法包含:根据事件和动作组织测试流程;根据所述测试流程自动生成脚本文件,所述脚本文件包括数据信息脚本文件、动作脚本文件、事件脚本文件及测试流程脚本文件;根据所述脚本文件对被测系统进行测试。该方法将繁琐的测试任务实现自动化,不需要测试人员手工编写脚本文件,大大减轻了测试人员的工作量,能够调动测试人员的工作积极性,同时可以提高测试的准确性和测试效率。

Description

一种基于事件和动作的脚本文件生成方法及其装置
技术领域
本发明涉及计算机领域,特别涉及一种基于事件和动作的脚本文件生成方法及其装置。
背景技术
在嵌入式软件黑盒测试领域,传统的软件测试方法是:测试人员首先按照测试流程的测试步骤说明手工编写对应的测试脚本文件,然后根据编写好的测试脚本文件进行测试。这种测试方法对测试人员提出了很高的要求,既要求测试人员会编写测试脚本,又要求测试人员会进行测试,加大了测试人员的工作量。此外,由于一个测试流程往往是由多个测试步骤组成,每个测试步骤可以是一个测试用例、或给被测对象发送一个信号,也可以是一个条件判断或结束标志等,此情况下测试人员自己编写的测试脚本文件往往比较复杂而且通用性差,所以,测试人员要不断的编写测试脚本文件,因此测试效率比较低。
发明内容
本发明的目的在于提供一种基于事件和动作的脚本文件生成方法及其装置,能够将繁琐的测试任务实现自动化,大大减轻了测试人员的工作量,能够调动测试人员的工作积极性,同时可以提高测试的准确性和测试效率。
为解决上述技术问题,本发明的实施方式提供了一种基于事件和动作的脚本文件生成方法,包含:
根据事件和动作组织测试流程;
根据所述测试流程自动生成脚本文件,所述脚本文件包括数据信息脚本文件、动作脚本文件、事件脚本文件及测试流程脚本文件;
根据所述脚本文件对被测系统进行测试。
本发明的实施方式还提供了一种基于事件和动作的脚本文件生成装置,包含:
组织模块,用于根据事件和动作组织测试流程;
处理模块,用于根据所述测试流程自动生成脚本文件,所述脚本文件包括数据信息脚本文件、动作脚本文件、事件脚本文件及测试流程脚本文件;
测试模块,用于根据所述脚本文件对被测系统进行测试。
本发明实施方式相对于现有技术而言,可以根据测试流程中的基本元素,即事件和动作自动组织测试流程,然后再自动根据测试流程,对应的生成数据信息、动作、事件及测试流程的脚本文件,最后根据该脚本文件对被测系统进行测试。将繁琐的测试任务实现自动化,不需要测试人员手工编写脚本文件,大大减轻了测试人员的工作量,能够调动测试人员的工作积极性,同时可以提高测试的准确性和测试效率。方便了程序的回归性测试,可以运行更多更繁琐的测试。可以执行一些手工测试困难或不可能进行的测试。比如,对于大量用户的测试,不可能同时让足够多的测试人员同时进行测试,但是却可以通过自动化测试模拟同时有许多用户,从而达到测试的目的。此外,更好地利用资源,将繁琐的任务自动化,可以提高准确性和测试人员的积极性,将测试人员解脱出来投入更多精力设计更好的测试用例。
优选的,在所述根据事件和动作组织测试流程之前,所述方法还包含:将所述事件和动作存储到数据库中。
将事件和动作存储到数据库中,使得本方法在一个测试项目中具有通用性,同一个测试项目中的多个测试流程能够共享相同的事件和动作。
优选的,所述根据所述测试流程自动生成脚本文件包含以下子步骤:
根据输入信号及输出信号生成数据信息脚本文件;
根据动作生成动作脚本文件;
根据事件生成事件脚本文件;
根据所述数据信息脚本文件、所述动作脚本文件及所述事件脚本文件生成测试流程脚本文件。
依次生成数据信息脚本文件、动作脚本文件、事件脚本文件及测试流程脚本文件,完成了测试所需的脚本文件,满足了测试的需要。
优选的,当所述被测系统的接口与所述基于事件和动作的脚本文件生成方法的接口不匹配时,在所述测试流程中增加以下动作:
发送所述被测系统的接口消息。
通过发送被测系统的接口消息就可以将该测试软件与被测系统连接起来,无需对该测试软件做较大的改动,使得该方法具有了广泛适用性。
附图说明
图1是本发明第一实施方式的基于事件和动作的脚本文件生成方法流程示意图;
图2是本发明第一实施方式中的测试流程的组织结构示意图;
图3是本发明第一实施方式中事件的C++类设计示意图;
图4是本发明第一实施方式中动作的C++类设计示意图;
图5是本发明第一实施方式中测试系统TCP通讯方式对应的测试需求流程示意图;
图6是根据图5生成的测试流程示意图;
图7是本发明第一实施方式中根据测试流程自动生成脚本文件的方法流程示意图;
图8是本发明第一实施方式中根据测试系统TCP通讯方式的测试流程生成的数据信息脚本文件;
图9是本发明第一实施方式中根据测试系统TCP通讯方式的测试流程生成的动作脚本文件;
图10是本发明第一实施方式中根据测试系统TCP通讯方式的测试流程生成的事件脚本文件;
图11是本发明第一实施方式中根据测试系统TCP通讯方式的测试流程生成的测试流程脚本文件;
图12是本发明第二实施方式提供的基于事件和动作的脚本文件生成方法流程示意图;
图13是本发明第三实施方式提供的基于事件和动作的脚本文件生成装置结构示意图;
图14是本发明第四实施方式提供的基于事件和动作的脚本文件生成装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。
本发明第一实施方式提供一种基于事件和动作的脚本文件生成方法,如图1所示,该方法主要包含以下步骤:
101、根据事件和动作组织测试流程。
事件和动作为测试流程的基本元素。如图2所示,事件类型包含内部事件、外部事件、系统事件及同步事件;动作类型包含执行测试用例、动作控制、延时、发送CAN(Controller Area Network,控制器局域网络)总线消息、发送1553B总线消息、信号赋值及结束。事件和动作为现有技术中的概念,本发明在此不做赘述。测试流程一般包含一系列的事件和动作,测试人员可以根据实际需求选择被测系统的测试用例中合适的事件和动作组织成自己需要的测试流程,测试用例是由测试人员设计的。
在设计实现上,本方法采用了C++编程语言的面向对象思想,每种类型的事件或动作都抽象成一个类,并且从事件的基类或动作的基类继承过来,这样利于后面的自动生成脚本文件。本发明中各个事件的C++类的定义及关系如图3所示,本发明中的动作的C++类的定义及关系如图4所示。
以下以一个简单的测试TCP(Transmission Control Protocol,传输控制协议)通讯方式的例子说明如何根据事件和动作组织测试流程。应该强调的是,下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。具体的,该TCP通讯方式的测试需求流程如图5所示,该测试系统的输入信号如表1所示,输出信号如表2所示。
表1
表2
计算机根据图5得到该测试系统中的事件如表3所示、该测试系统中的动作被测动作如表4所示。
表3
表3中罗列了该测试项目中各事件,由表3可知,此测试项目中共包含9个事件,该测试项目的事件类型包含外部事件和内部事件。序号为1的事件为从被测件收到消息的外部事件,其余的序号为2至9的事件均为内部事件。
表4
表4中罗列了该测试项目中各被测动作,由表4可知,此测试项目中共包含与动作相对应的9个事件,该测试项目的动作类型包含执行测试用例和延时。其中序号为6的动作类型为延时,序号为7的动作名称为结束,其余序号的动作类型均为执行测试用例。
计算机根据图5生成的测试流程如图6所示,图6中按树形结构罗列了该测试系统中的各动作和事件,示例的,图6中从被测件收到消息为事件,接收确认报文为动作。
102、根据测试流程自动生成脚本文件。
需要说明的是,本发明中生成的脚本文件是基于python语言的。本步骤是一种采用面向对象的方法将复杂的测试流程生成结构化程序的技术。
如图7所示,步骤102包含以下子步骤:
1021、根据输入信号及输出信号生成数据信息脚本文件。
由于在测试过程中,贯穿整个测试流程的核心的是输入信号及输出信号,因此,在本方法中将输入信号、输出信号的信息生成一个单独的数据信息脚本文件,作为整个测试流程的全局变量,动作脚本文件、事件脚本文件和测试流程脚本文件都可以对此进行访问。
步骤1021具体是通过以下方法实现的:
首先将输入信号的名称(别名)及其初始值生成一个python语言的数据类型为字典的第一全局变量,该第一全局变量可以为输入信息字典,示例的,根据测试系统TCP通讯方式的测试需要生成的简单的例子及格式可以为:
QL_InputSigs={"QL_InputSignal_41":"",
“QL_InputSignal_6509”:0}
然后将输出信号的名称及其初始值生成第二全局变量,该第二全局变量可以为输出信息字典,示例的,根据测试系统TCP通讯方式的测试需要生成的简单的例子及格式如下:
接着生成设置输入信号函数、获取输入信号函数及其输入内容,示例的,根据测试系统TCP通讯方式的测试需要生成的设置输入信号的值的函数、获取输入信号的值的函数及其输入内容可以为:
最后生成设置输出信号函数、获取输出信号函数及其输出内容,示例的,根据测试系统TCP通讯方式生成的设置输出信号的值的函数、获取输出信号的值的函数及其输出内容可以为:
最后,将上述脚本文件组合在一起,得到测试系统TCP通讯方式所示的测试流程对应的数据信息脚本文件,具体如图8所示。
1022、根据动作生成动作脚本文件。
本步骤是对每个动作分别生成对应的脚本文件,生成代码时遵循的规则为:生成包含输入、输出信息脚本文件的内容,即生成数据信息脚本文件,python语言的方法是:from QL_Outputs import*,该脚本文件中包含所有动作,每个动作均由一个函数组成,函数名称为动作的别名(由字符串和数字组成,具有唯一性)。若动作不是“以多线程方式运行”,则动作的所有实现内容均在动作的函数里。若动作的运行方式是“以多线程方式运行”,则为此动作生成一个线程函数,线程函数的名称为动作的别名加上“_threadfunc”,然后动作的实现内容均在此线程函数中。
测试系统TCP通讯方式所示的测试流程对应生成的动作脚本文件,具体如图9所示。
1023、根据事件生成事件脚本文件。
本步骤是对每个事件分别生成对应的脚本文件,生成代码时遵循的规则为:生成包含动作信息脚本文件的内容,即生成动作脚本文件,所述脚本文件中包含事件;python语言的方法是:from QL_Actions import*。每个事件均由一个函数组成,函数名称为事件的别名(由字符串和数字组成,具有唯一性)。事件的实现内容就是判断事件的触发条件是否满足,若满足则返回True(真),否则返回False(假)。对于系统事件,主要是判断是否到了事先规定的时间,若到了规定的时间,则返回True;否则一直等待直到到达指定的时间为止。对于外部事件,主要是判断测试系统是否收到被测件或其它外部系统发过来的数据,若收到则返回True,否则返回False;外部事件一般采取阻塞型接收数据方法。对于内部事件,主要判断输入信号或输出信号的值是否满足指定的条件(如等于或不等于固定值/范围值/序列等)。
测试系统TCP通讯方式所示的测试流程对应生成的事件脚本文件,具体如图10所示。
1024、根据数据信息脚本文件、动作脚本文件及事件脚本文件生成测试流程脚本文件。
前面步骤将所有的事件和动作以及输入、输出信号生成对应的脚本文件后,生成测试流程脚本文件时就可以直接调用事件、动作和输入、输出信号脚本信息了。生成测试流程的方法为:
首先生成包含事件信息脚本文件的内容,即生成所述事件脚本文件,python语言的方法是:from QL_Events import*;
然后遍历本测试流程用到的所有事件,找出所有事件中的所有外部事件;
接着对每一个外部事件分别进行处理,首先生成判断外部事件是否触发的线程处理函数,线程函数名称为:QL_ThreadFunc_Deal_RecvMsgFromTarget加上外部系统的序号,在此线程函数中生成判断外部事件是否触发的内容;
再次生成外部事件触发之后要调用的实现函数,函数名称为:外部事件的别名加上“_ThreadFunc”,在此函数中实现外部事件触发之后的子流程,如判断某个内部事件是否产生、执行某个动作等;
继而生成工作线程函数,函数名称为“WorkThread”,此函数首先将测试流程生成脚本文件,其中有外部事件的则开启线程判断外部事件是否触发,没有外部事件则生成对应的内部事件或动作代码;最后再做一个while循环,用来等待所有的线程结束,当所有的线程均结束时,此函数才退出。
最后生成测试流程的主入口函数,此函数的主要功能:执行测试环境的初始化工作、开启上一步中的工作线程函数、开启结束线程(用来判断测试流程是否需要终止)、等待工作线程和结束线程退出(若任一个线程退出,则主函数退出)、最后是释放测试环境资源。
测试系统TCP通讯方式所示的测试流程对应生成的测试流程脚本文件,具体如图11所示。
103、根据脚本文件对被测系统进行测试。
步骤102生成脚本文件之后,系统就可以利用脚本文件按照事先设定的测试流程对被测系统进行测试。
本发明实施方式相对于现有技术而言,可以根据测试用例中的事件和动作自动组织测试流程,然后再自动根据测试流程对应的生成数据信息、动作、事件及测试流程的脚本文件,最后根据该脚本文件对被测系统进行测试。该方法将繁琐的测试任务实验自动化,不需要测试人员手工编写脚本文件,大大减轻了测试人员的工作量,能够调动测试人员的工作积极性,同时可以提高测试的准确性和测试效率。方便了程序的回归性测试,可以运行更多更繁琐的测试。可以执行一些手工测试困难或不可能进行的测试。比如,对于大量用户的测试,不可能同时让足够多的测试人员同时进行测试,但是却可以通过自动化测试模拟同时有许多用户,从而达到测试的目的。此外,更好地利用资源,将繁琐的任务自动化,可以提高准确性和测试人员的积极性,将测试人员解脱出来投入更多精力设计更好的测试用例。
本发明第二实施方式涉及一种基于事件和动作的脚本文件生成方法,第二实施方式在第一实施方式的基础上做了进一步改进,改进之后的基于事件和动作的脚本文件生成方法使得同一个测试项目中的多个测试流程能够共享相同的事件和动作。
具体如图12所示,该基于事件和动作的脚本文件生成方法包含步骤1201、步骤1202、步骤1203及步骤1204,其中步骤1202、步骤1203及步骤1204分别与第一实施方式中的步骤101、步骤102及步骤103对应相同,在此不做赘述。步骤1201具体为:将事件和动作存储到数据库中。该步骤主要是在设计测试流程的时候,将新建或修改的事件和动作信息与数据库关联起来,由数据库来对所有的事件和动作信息进行存储管理,这样所有需要使用事件和动作的时候都直接从数据库读取,使得该基于事件和动作的脚本文件生成方法具有了通用性,使得同一个测试项目中的多个测试流程能够共享相同的事件和动作,为整个测试工作提供了便利。
需要说明的是,在实际应用中,当被测系统提供的通讯接口与本方法的接口不匹配时,在执行本方法之前,可以在测试流程中增加以下动作:发送被测系统的接口消息。通过增加该动作,使得该方法对被测系统无要求限制,可以使用于任何被测系统,具有了广泛适用性,无需对本脚本代码生成方法做较大的改动。
本发明的第三实施方式涉及一种基于事件和动作的脚本文件生成装置,如图13所示,该装置包含:
组织模块1301,用于根据事件和动作组织测试流程。
处理模块1302,用于根据测试流程自动生成脚本文件,脚本文件包括数据信息脚本文件、动作脚本文件、事件脚本文件及测试流程脚本文件。
测试模块1303,用于根据脚本文件对被测系统进行测试。
具体的,该处理模块1302包含以下子模块:
数据生成子模块,用于根据输入信号及输出信号生成数据信息脚本文件。
动作生成子模块,用于根据动作生成动作脚本文件。
事件生成子模块,用于根据事件生成事件脚本文件。
测试流程生成子模块,用于根据数据信息脚本文件、动作脚本文件及事件脚本文件生成测试流程脚本文件。
进一步的,数据生成子模块包含以下子单元:
第一生成子单元,用于根据输入信号的名称及其初始值生成第一全局变量。
第二生成子单元,用于根据输出信号的名称及其初始值生成第二全局变量;
第三生成子单元,用于生成设置输入信号的值的函数、获取输入信号的值的函数及其实现内容。
第四生成子单元,用于生成设置输出信号的值的函数、获取输出信号的值的函数及其实现内容。
再进一步的,动作生成子模块包含以下子单元:
第五生成子单元,用于生成所述数据信息脚本文件,数据信息脚本文件中包含所有动作,每个动作由一个函数组成。第五生成子单元还用于在动作的运行方式是以多线程方式运行时,生成线程函数。
再进一步的,事件生成子模块包含以下子单元:
第六生成子单元,用于生成所述动作脚本文件,动作脚本文件中包含事件。
判断子单元,用于判断事件的信息是否满足事件的触发条件,若满足则返回True,否则返回False。
事件包括同步事件、系统事件、外部事件及内部事件,判断子单元具体用于:对于系统事件,判断当前时间是否到达预定的时间,若到达预定的时间,则返回True。否则一直等待直到预定的时间;或对于外部事件,判断测试系统是否收到被测件或其它外部系统发过来的数据,若收到则返回True,否则返回False;或对于内部事件,判断输入信号的值或输出信号的值是否满足指定的条件,若满足,则返回True。若不满足,则返回False。
测试流程子模块包含以下子单元:
第七生成子单元,用于生成所述事件脚本文件。
查找单元,用于遍历测试流程用到的所有事件,找出事件中的所有外部事件。
第八生成子单元,用于生成每一个外部事件触发之后要调用的实现函数。
第九生成子单元,用于生成工作线程函数。
第十生成子单元,用于生成测试流程的主入口函数。
本发明实施方式相对于现有技术而言,组织模块可以根据被测系统中的事件和动作自动组织测试流程,处理模块可以自动根据测试流程自动生成脚本文件,测试模块可以根据该脚本文件对被测系统进行测试。该装置将繁琐的测试任务自动化,大大减轻了测试人员的工作量,能够调动测试人员的工作积极性,同时可以提高测试的准确性和测试效率。方便了程序的回归性测试,可以运行更多更繁琐的测试。可以执行一些手工测试困难或不可能进行的测试。比如,对于大量用户的测试,不可能同时让足够多的测试人员同时进行测试,但是却可以通过自动化测试模拟同时有许多用户,从而达到测试的目的。此外,更好地利用资源,将繁琐的任务自动化,可以提高准确性和测试人员的积极性,将测试人员解脱出来投入更多精力设计更好的测试用例。
本发明的第四实施方式涉及一种基于事件和动作的脚本文件生成装置,第四实施方式在第三实施方式的基础上做了进一步改进,该装置新增了存储模块,新增存储模块之后的基于事件和动作的脚本文件生成装置使得同一个测试项目中的多个测试流程能够共享相同的事件和动作。
具体的,如图14所示,该装置包含:存储模块1401、组织模块1402、处理模块1403及测试模块1404。其中,组织模块1402、处理模块1403及测试模块1404分别与第三实施方式中的1301、处理模块1302及测试模块1303对应相同,在此不做赘述。存储模块1401用于将事件和动作存储到数据库中。该装置将事件和动作存储到计算机的数据库中,在设计测试流程的时候,将新建或修改的事件和动作信息与数据库关联起来,由数据库来对所有的事件和动作信息进行存储管理,这样所有需要使用事件和动作的时候都直接从数据库读取,这样使得同一个测试项目中的多个测试流程能够共享相同的事件和动作,为整个测试工作提供了便利。
本发明的第五实施方式涉及一种基于事件和动作的脚本文件生成装置,第五实施方式在第四实施方式的基础上做了进一步改进,改进之处在于该装置还增加了一个添加模块,改进之后的基于事件和动作的脚本文件生成装置具有广泛适用性。
该添加模块具体用于在在测试流程中增加发送被测系统的接口消息的动作。通过该添加模块就可以使该装置使用于任何被测系统,使得该装置具有了广泛适用性。
值得一提的是,关于装置的实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑模块可以是一个物理模块,也可以是一个物理模块的一部分,还可以以多个物理模块的组合实现。各个物理模块的工作原理可以参考方法实施例中的叙述,本发明在此不再赘述。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的模块引入,但这并不表明本实施方式中不存在其它的模块。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

Claims (19)

1.一种基于事件和动作的脚本文件生成方法,其特征在于,包含:
根据事件和动作组织测试流程;
根据所述测试流程自动生成脚本文件,所述脚本文件包括数据信息脚本文件、动作脚本文件、事件脚本文件及测试流程脚本文件;
根据所述脚本文件对被测系统进行测试。
2.根据权利要求1所述的基于事件和动作的脚本文件生成方法,其特征在于,在所述根据事件和动作组织测试流程之前,所述方法还包含:
将所述事件和动作存储到数据库中。
3.根据权利要求1所述的基于事件和动作的脚本文件生成方法,其特征在于,所述根据所述测试流程自动生成脚本文件包含以下子步骤:
根据输入信号及输出信号生成数据信息脚本文件;
根据动作生成动作脚本文件;
根据事件生成事件脚本文件;
根据所述数据信息脚本文件、所述动作脚本文件及所述事件脚本文件生成测试流程脚本文件。
4.根据权利要求3所述的基于事件和动作的脚本文件生成方法,其特征在于,所述根据输入信号及输出信号生成数据信息脚本文件包含以下子步骤:
根据所述输入信号的名称及其初始值生成第一全局变量;
根据所述输出信号的名称及其初始值生成第二全局变量;
生成设置输入信号的值的函数、获取输入信号的值的函数及其实现内容;
生成设置输出信号的值的函数、获取输出信号的值的函数及其实现内容。
5.根据权利要求4所述的基于事件和动作的脚本文件生成方法,其特征在于,所述第一全局变量及所述第二全局变量的语言为python语言,数据类型为字典。
6.根据权利要求3所述的基于事件和动作的脚本文件生成方法,其特征在于,所述根据动作生成动作脚本文件包含以下子步骤:
生成所述数据信息脚本文件,所述数据信息脚本文件中包含所有动作;
若所述动作的运行方式是以多线程方式运行,则生成线程函数;
若所述动作的运行方式不是以多线程方式运行,则不生成线程函数。
7.根据权利要求3所述的基于事件和动作的脚本文件生成方法,其特征在于,所述根据事件生成事件脚本文件包含以下子步骤:
生成所述动作脚本文件,所述动作脚本文件中包含事件;
判断所述事件的信息是否满足所述事件的触发条件,若满足则返回True真,否则返回False假。
8.根据权利要求7所述的基于事件和动作的脚本文件生成方法,其特征在于,所述事件包括同步事件、系统事件、外部事件及内部事件,所述判断所述事件的信息是否满足所述事件的触发条件为:
对于所述系统事件,判断当前时间是否到达预定的时间,若到达所述预定的时间,则返回True;否则一直等待直到所述预定的时间;或
对于所述外部事件,判断所述测试系统是否收到被测件或其它外部系统发过来的数据,若收到则返回True,否则返回False;或
对于所述内部事件,判断所述输入信号的值或所述输出信号的值是否满足指定的条件,若满足,则返回True;若不满足,则返回False。
9.根据权利要求3所述的基于事件和动作的脚本文件生成方法,其特征在于,所述根据所述数据信息脚本文件、所述动作脚本文件及所述事件脚本文件生成测试流程脚本文件包含以下子步骤:
生成所述事件脚本文件;
遍历所述测试流程用到的所有事件,找出所述事件中的所有外部事件;
生成每一个所述外部事件触发之后要调用的实现函数;
生成工作线程函数;
生成所述测试流程的主入口函数。
10.根据权利要求1所述的基于事件和动作的脚本文件生成方法,其特征在于,当所述被测系统的接口与所述基于事件和动作的脚本文件生成方法的接口不匹配时,在所述测试流程中增加以下动作:
发送所述被测系统的接口消息。
11.一种基于事件和动作的脚本文件生成装置,其特征在于,包含:
组织模块,用于根据事件和动作组织测试流程;
处理模块,用于根据所述测试流程自动生成脚本文件,所述脚本文件包括数据信息脚本文件、动作脚本文件、事件脚本文件及测试流程脚本文件;
测试模块,用于根据所述脚本文件对被测系统进行测试。
12.根据权利要求11所述的基于事件和动作的脚本文件生成装置,其特征在于,所述装置还包含:
存储模块,用于将所述事件和动作存储到数据库中。
13.根据权利要求11所述的基于事件和动作的脚本文件生成装置,其特征在于,所述处理模块包含以下子模块:
数据生成子模块,用于根据输入信号及输出信号生成数据信息脚本文件;
动作生成子模块,用于根据动作生成动作脚本文件;
事件生成子模块,用于根据事件生成事件脚本文件;
测试流程生成子模块,用于根据所述数据信息脚本文件、所述动作脚本文件及所述事件脚本文件生成测试流程脚本文件。
14.根据权利要求13所述的基于事件和动作的脚本文件生成装置,其特征在于,所述数据生成子模块包含以下子单元:
第一生成子单元,用于根据所述输入信号的名称及其初始值生成第一全局变量;
第二生成子单元,用于根据所述输出信号的名称及其初始值生成第二全局变量;
第三生成子单元,用于生成设置输入信号的值的函数、获取输入信号的值的函数及其实现内容;
第四生成子单元,用于生成设置输出信号的值的函数、获取输出信号的值的函数及其实现内容。
15.根据权利要求13所述的基于事件和动作的脚本文件生成装置,其特征在于,所述动作生成子模块包含以下子单元:
第五生成子单元,用于生成所述数据信息脚本文件,所述数据信息脚本文件中包含所有动作,每个动作由一个函数组成;
所述第五生成子单元还用于在所述动作的运行方式是以多线程方式运行时,生成线程函数。
16.根据权利要求13所述的基于事件和动作的脚本文件生成装置,其特征在于,所述事件生成子模块包含以下子单元:
第六生成子单元,用于生成所述动作脚本文件,所述动作脚本文件中包含事件;
判断子单元,用于判断所述事件的信息是否满足所述事件的触发条件,若满足则返回True真,否则返回False假。
17.根据权利要求16所述的基于事件和动作的脚本文件生成装置,其特征在于,所述事件包括同步事件、系统事件、外部事件及内部事件,所述判断子单元具体用于:
对于所述系统事件,判断当前时间是否到达预定的时间,若到达所述预定的时间,则返回True;否则一直等待直到所述预定的时间;或
对于所述外部事件,判断所述测试系统是否收到被测件或其它外部系统发过来的数据,若收到则返回True,否则返回False;或
对于所述内部事件,判断所述输入信号的值或所述输出信号的值是否满足指定的条件,若满足,则返回True;若不满足,则返回False。
18.根据权利要求13所述的基于事件和动作的脚本文件生成装置,其特征在于,所述测试流程子模块包含以下子单元:
第七生成子单元,用于生成所述事件脚本文件;
查找单元,用于遍历所述测试流程用到的所有事件,找出所述事件中的所有外部事件;
第八生成子单元,用于生成每一个所述外部事件触发之后要调用的实现函数;
第九生成子单元,用于生成工作线程函数;
第十生成子单元,用于生成测试流程的主入口函数。
19.根据权利要求11所述的基于事件和动作的脚本文件生成装置,其特征在于,所述装置还包含:
添加模块,用于在所述被测系统的接口与所述基于事件和动作的脚本文件生成装置的接口不匹配时,在所述测试流程中增加发送所述被测系统的接口消息的动作。
CN201410235675.4A 2014-05-29 2014-05-29 一种基于事件和动作的脚本文件生成方法及其装置 Active CN103995778B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410235675.4A CN103995778B (zh) 2014-05-29 2014-05-29 一种基于事件和动作的脚本文件生成方法及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410235675.4A CN103995778B (zh) 2014-05-29 2014-05-29 一种基于事件和动作的脚本文件生成方法及其装置

Publications (2)

Publication Number Publication Date
CN103995778A true CN103995778A (zh) 2014-08-20
CN103995778B CN103995778B (zh) 2018-02-09

Family

ID=51309950

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410235675.4A Active CN103995778B (zh) 2014-05-29 2014-05-29 一种基于事件和动作的脚本文件生成方法及其装置

Country Status (1)

Country Link
CN (1) CN103995778B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105718372A (zh) * 2016-01-22 2016-06-29 珠海市精实测控技术有限公司 一种电控板黑盒测试用例生成及自动测试方法
CN106095668A (zh) * 2016-06-02 2016-11-09 上海科梁信息工程股份有限公司 基于事件和动作的c++测试用例的生成方法
CN106294037A (zh) * 2015-05-25 2017-01-04 中兴通讯股份有限公司 拷机测试方法及装置
CN106681908A (zh) * 2016-11-28 2017-05-17 北京航天自动控制研究所 一种基于分组复用的测试流程生成方法
CN106776275A (zh) * 2016-11-14 2017-05-31 北京航天自动控制研究所 一种基于分组复用的测试流程自动生成方法
CN106850372A (zh) * 2017-02-22 2017-06-13 重庆长安汽车股份有限公司 一种控制器can信号的测试方法及系统
CN107016003A (zh) * 2016-01-28 2017-08-04 北京国双科技有限公司 系统输出数据的展示方法及装置
CN112131133A (zh) * 2020-10-14 2020-12-25 深圳壹账通智能科技有限公司 Ipo账户验证方法、装置、计算机设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120185831A1 (en) * 2007-07-03 2012-07-19 International Business Machines Corporation Executable high-level trace file generation method
CN103019928A (zh) * 2011-09-27 2013-04-03 北京新媒传信科技有限公司 一种自动化测试方法和系统
CN103365779A (zh) * 2013-07-09 2013-10-23 广东欧珀移动通信有限公司 软件测试方法和系统
CN103777526A (zh) * 2014-03-03 2014-05-07 上海科梁信息工程有限公司 卫星综合电子系统的仿真测试系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120185831A1 (en) * 2007-07-03 2012-07-19 International Business Machines Corporation Executable high-level trace file generation method
CN103019928A (zh) * 2011-09-27 2013-04-03 北京新媒传信科技有限公司 一种自动化测试方法和系统
CN103365779A (zh) * 2013-07-09 2013-10-23 广东欧珀移动通信有限公司 软件测试方法和系统
CN103777526A (zh) * 2014-03-03 2014-05-07 上海科梁信息工程有限公司 卫星综合电子系统的仿真测试系统

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294037A (zh) * 2015-05-25 2017-01-04 中兴通讯股份有限公司 拷机测试方法及装置
CN105718372B (zh) * 2016-01-22 2018-05-18 珠海市精实测控技术有限公司 一种电控板黑盒测试用例生成及自动测试方法
CN105718372A (zh) * 2016-01-22 2016-06-29 珠海市精实测控技术有限公司 一种电控板黑盒测试用例生成及自动测试方法
CN107016003B (zh) * 2016-01-28 2021-01-29 北京国双科技有限公司 系统输出数据的展示方法及装置
CN107016003A (zh) * 2016-01-28 2017-08-04 北京国双科技有限公司 系统输出数据的展示方法及装置
CN106095668A (zh) * 2016-06-02 2016-11-09 上海科梁信息工程股份有限公司 基于事件和动作的c++测试用例的生成方法
CN106095668B (zh) * 2016-06-02 2018-12-11 上海科梁信息工程股份有限公司 基于事件和动作的c++测试用例的生成方法
CN106776275B (zh) * 2016-11-14 2019-06-18 北京航天自动控制研究所 一种基于分组复用的测试流程自动生成方法
CN106776275A (zh) * 2016-11-14 2017-05-31 北京航天自动控制研究所 一种基于分组复用的测试流程自动生成方法
CN106681908A (zh) * 2016-11-28 2017-05-17 北京航天自动控制研究所 一种基于分组复用的测试流程生成方法
CN106850372A (zh) * 2017-02-22 2017-06-13 重庆长安汽车股份有限公司 一种控制器can信号的测试方法及系统
CN106850372B (zh) * 2017-02-22 2020-04-21 重庆长安新能源汽车科技有限公司 一种控制器can信号的测试方法及系统
CN112131133A (zh) * 2020-10-14 2020-12-25 深圳壹账通智能科技有限公司 Ipo账户验证方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN103995778B (zh) 2018-02-09

Similar Documents

Publication Publication Date Title
CN103995778A (zh) 一种基于事件和动作的脚本文件生成方法及其装置
CN108595157B (zh) 区块链数据的处理方法、装置、设备和存储介质
CN107273286B (zh) 针对任务应用的场景自动化测试平台及方法
CN104778124B (zh) 一种软件应用自动化测试方法
CN110287097A (zh) 批量测试方法、装置及计算机可读存储介质
Huang et al. Modeling and verifying the code-level OSEK/VDX operating system with CSP
CN100484140C (zh) 一种规范驱动的网格工作流描述和验证方法
JP2012123789A (ja) アプリケーション性能試験のための並列作業負荷シミュレーション
CN112559525B (zh) 数据检查系统、方法、装置和服务器
CN115016321A (zh) 一种硬件在环自动化测试方法、装置及系统
CN113220597B (zh) 测试方法、测试装置、电子设备及存储介质
CN103294482B (zh) 用于PWscf并行计算系统的Web服务封装方法以及系统
CN102789401A (zh) 基于柔性测试技术的测试流程控制方法和装置
CN117271122A (zh) 基于cpu和gpu分离的任务处理方法、装置、设备及存储介质
CN113051173B (zh) 测试流程的编排执行方法、装置、计算机设备和存储介质
CN110209572A (zh) 用户界面测试方法、用户界面测试系统及终端
CN115328720A (zh) SoC验证方法、装置、设备及存储介质
CN112988145B (zh) 生成航空发动机软件架构的方法及航空发动机控制装置
CN111190725B (zh) 任务处理方法、装置、存储介质及服务器
CN106055322A (zh) 一种流程调度方法及装置
CN117290113B (zh) 一种任务处理方法、装置、系统和存储介质
CN113448859B (zh) 基于分布式系统的测试数据生成方法及装置
CN117573561B (zh) 一种自动化测试系统、方法、电子设备和存储介质
CN102880457A (zh) 一种对数据进行处理的方法和设备
CN110175116B (zh) 一种测试日期切换方法、装置及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 200233 Shanghai, Yishan Road, No. 829, building 201, room 6,

Applicant after: SHANGHAI KELIANG INFORMATION ENGINEERING CO., LTD.

Address before: 200233 Shanghai, Yishan Road, No. 829, building 201, room 6,

Applicant before: Shanghai Keliang Information Engineering Co., Ltd.

COR Change of bibliographic data
CB03 Change of inventor or designer information

Inventor after: Zou Yijun

Inventor after: Xia Jiajia

Inventor before: Li Sheng

Inventor before: Xia Jiajia

Inventor before: Sun Yujie

COR Change of bibliographic data
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: Room 201, building 6, 829 Yishan Road, Xuhui District, Shanghai 200233

Patentee after: Shanghai Keliang Information Technology Co.,Ltd.

Address before: Room 201, building 6, 829 Yishan Road, Xuhui District, Shanghai 200233

Patentee before: SHANGHAI KELIANG INFORMATION ENGINEERING Co.,Ltd.

CP01 Change in the name or title of a patent holder