CN104794057B - 一种交叉事件自动化测试方法和装置 - Google Patents
一种交叉事件自动化测试方法和装置 Download PDFInfo
- Publication number
- CN104794057B CN104794057B CN201510213286.6A CN201510213286A CN104794057B CN 104794057 B CN104794057 B CN 104794057B CN 201510213286 A CN201510213286 A CN 201510213286A CN 104794057 B CN104794057 B CN 104794057B
- Authority
- CN
- China
- Prior art keywords
- event
- tested
- automatic test
- item
- test cases
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种交叉事件自动化测试方法和***,其中方法包括:确定正常事件交叉关系库和异常操作事件库;根据所述正常事件交叉关系库和异常操作事件库,生成自动化测试用例集;获取测试项目需要测试的待测试项,根据所述待测试项的组合关系查找所述自动化测试用例集,获取与每个所述待测试项匹配的自动化测试用例;根据与每个所述待测试项匹配的自动化测试用例,确定与所述测试项目对应的自动化测试用例,执行与所述测试项目对应的自动化测试用例以实现对所述测试项目进行测试。通过本发明,能够实现交叉事件的批量自动化测试。
Description
技术领域
本发明涉及测试技术领域,尤指一种交叉事件自动化测试方法和装置。
背景技术
随着网络融合趋势日益明显,电信设备支持的功能越来越多、性能越来越强,仅仅进行单个模块的测试已经远远不够,模块交叉的需求越来越大,这给测试人员增加了大量工作量,同时对各个模块的熟练程度也提出了更高的要求。
模块交叉事件测试,包含模块内部各要点间和模块与模块之间的交叉测试,也可以包含通过组合的方法实现,比如:边界值和等价类结合都是一种组合测试的方法实现。模块交叉事件测试又叫事件冲突测试,是指一个功能正在运行过程中,同时另外一个事件或者操作对该过程进程进行干扰的测试,判断执行干扰的冲突事件不会导致应用软件异常。
模块交叉测试多在单个模块相对成熟的情况下,采用人工测试,由于项目周期和人力资源等的限制,有引入自动化测试。传统的自动化测试,多是针对相对变动少的单个功能模块、或单个功能模块的叠加,形成自动化用例,然后依据用例开发成脚本,经过脚本调测后用于自动化测试。但是,现有的自动化测试中脚本逻辑相对简单,多用于回归测试,且测试周期长,不适用于进行批量的测试。
发明内容
为了解决上述技术问题,本发明提供了一种交叉事件自动化测试方法和装置,能够实现交叉事件的批量自动化测试。
为了达到本发明目的,在第一方面,本发明提供了一种交叉事件自动化测试方法,所述方法包括:
确定正常事件交叉关系库和异常操作事件库,所述正常事件交叉关系库用于存储交叉模块在时间、空间和功能上的相互关系,所述异常操作事件库用于存储影响所述交叉模块正常运行的异常操作事件;
根据所述正常事件交叉关系库和所述异常操作事件库,生成自动化测试用例集;
获取测试项目需要测试的待测试项,根据所述待测试项的组合关系查找所述自动化测试用例集,获取与每个所述待测试项匹配的自动化测试用例;
根据与每个所述待测试项匹配的自动化测试用例,确定与所述测试项目对应的自动化测试用例,执行与所述测试项目对应的自动化测试用例以实现对所述测试项目进行测试。
可选地,所述正常事件交叉关系库包括必选项事件和可选项事件,所述异常操作事件库包括必选项事件和可选项事件;
所述根据所述正常事件交叉关系库和所述异常操作事件库,生成自动化测试用例集,具体包括:
根据所述正常事件交叉关系库包括的必选项事件和所述异常操作事件库包括的必选项事件,生成指定交叉事件的自动化测试用例;
根据所述正常事件交叉关系库包括的可选项事件和所述异常操作事件库包括的可选项事件,采用拓扑排序算法,生成随机交叉事件的自动化测试用例;
所述指定交叉事件的自动化测试用例和所述随机交叉事件的自动化测试用例构成所述自动化测试用例集。
可选地,所述获取测试项目需要测试的待测试项,根据所述待测试项的组合关系查找所述自动化测试用例集,获取与每个所述待测试项匹配的自动化测试用例,具体包括:
建立测试项目,所述测试项目包括至少一个交叉模块;
确定所述测试项目需要测试的待测试项;
判断所述待测试项的组合关系属于指定交叉事件关系或是随机交叉事件关系;
如果所述待测试项的组合关系属于所述指定交叉事件关系,则查找所述指定交叉事件的自动化测试用例集,获取与每个所述待测试项匹配的所述指定交叉事件的自动化测试用例;
如果所述待测试项的组合关系属于所述随机交叉事件关系,则查找所述随机交叉事件的自动化测试用例集,如果查找到,则获取与每个所述待测试项匹配的所述随机交叉事件的自动化测试用例,如果没有查找到,则生成与每个所述待测试项匹配的自动化测试用例。
可选地,所述根据与每个所述待测试项匹配的自动化测试用例,确定与所述测试项目对应的自动化测试用例,具体包括:
如果多个与所述待测试项匹配的自动化测试用例之间存在关联顺序,则根据所述关联顺序,确定与所述测试项目对应的自动化测试用例;
如果多个与所述待测试项匹配的自动化测试用例之间未存在关联顺序,则对多个与所述待测试项匹配的自动化测试用例的权重值进行排列,根据所述排列顺序,确定与所述测试项目对应的自动化测试用例。
可选地,所述执行与所述测试项目对应的自动化测试用例以实现对所述测试项目进行测试之后,还包括:
根据测试结果生成测试报告,并对所述测试报告进行分析;
根据对所述测试报告的分析更新所述正常事件交叉关系库和所述异常操作事件库。
在第二方面,本发明提供了一种交叉事件自动化测试***,包括:
总体控制模块、正常事件交叉关系库、异常操作事件库和自动化测试用例集;
所述总体控制模块包括:正常事件交叉关系生成模块、异常操作事件生成模块、自动化测试用例组合生成模块和测试执行模块;
所述正常事件交叉关系生成模块,用于确定所述正常事件交叉关系库,所述正常事件交叉关系库,用于存储交叉模块在时间、空间和功能上的相互关系;
所述异常操作事件生成模块,用于确定所述异常操作事件库,所述异常操作事件库用于存储影响所述交叉模块正常运行的异常操作事件;
所述自动化测试用例组合生成模块,用于根据所述正常事件交叉关系库和异常操作事件库生成所述自动化测试用例集,所述自动化测试用例集用于存储自动化测试用例;
所述测试执行模块,用于获取测试项目需要测试的待测试项,根据所述待测试项的组合关系查找所述自动化测试用例集,获取与每个所述待测试项匹配的自动化测试用例;根据与每个所述待测试项匹配的自动化测试用例,确定与所述测试项目对应的自动化测试用例,执行与所述测试项目对应的自动化测试用例以实现对所述测试项目进行测试。可选地,所述正常事件交叉关系库包括必选项事件和可选项事件,所述异常操作事件库包括必选项事件和可选项事件;
所述自动化测试用例组合生成模块,用于根据所述正常事件交叉关系库和异常操作事件库生成所述自动化测试用例集,具体为:
根据所述正常事件交叉关系库包括的必选项事件和所述异常操作事件库包括的必选项事件,生成指定交叉事件的自动化测试用例;
根据所述正常事件交叉关系库包括的可选项事件和所述异常操作事件库包括的可选项事件,采用拓扑排序算法,生成随机交叉事件的自动化测试用例;
所述指定交叉事件的自动化测试用例和所述随机交叉事件的自动化测试用例构成所述自动化测试用例集。
可选地,所述测试执行模块用于获取测试项目需要测试的待测试项,根据所述待测试项的组合关系查找所述自动化测试用例集,获取与每个所述待测试项匹配的自动化测试用例,具体为:
建立测试项目,所述测试项目包括至少一个交叉模块;
确定所述测试项目需要测试的待测试项;
判断所述待测试项的组合关系属于指定交叉事件关系或是随机交叉事件关系;
如果所述待测试项的组合关系属于所述指定交叉事件关系,则查找所述指定交叉事件的自动化测试用例集,获取与每个所述待测试项匹配的所述指定交叉事件的自动化测试用例;
如果所述待测试项的组合关系属于所述随机交叉事件关系,则查找所述随机交叉事件的自动化测试用例集,如果查找到,则获取与每个所述待测试项匹配的所述随机交叉事件的自动化测试用例,如果没有查找到,则生成与每个所述待测试项匹配的自动化测试用例。
可选地,所述测试执行模块用于根据与每个所述待测试项匹配的自动化测试用例,确定与所述测试项目对应的自动化测试用例,具体为:
如果多个与所述待测试项匹配的自动化测试用例之间存在关联顺序,则根据所述关联顺序,确定与所述测试项目对应的自动化测试用例;
如果多个与所述待测试项匹配的自动化测试用例之间未存在关联顺序,则对多个与所述待测试项匹配的自动化测试用例的权重值进行排列,根据所述排列顺序,确定与所述测试项目对应的自动化测试用例。
可选地,所述***还包括:测试结果模块、测试结果报告和分析模块和知识库完善模块;
所述测试结果模块,用于存储测试结果;
所述测试结果报告和分析模块,用于根据所述测试结果生成测试报告,并对所述测试报告进行分析;
所述知识库完善模块,用于根据对所述测试报告的分析更新所述正常事件交叉关系库和所述异常操作事件库;
所述测试结果模块和所述知识库完善模块在所述总体控制模块中。
可选地,所述***还包括:人机交互模块,用于接收用户控制信息,并向所述总体控制模块发送所述用户控制信息;其中,所述用户控制信息包括操作配置和操作命令。
可选地,所述***还包括:交叉事件驱动模块,所述交叉事件驱动模块包括用于驱动所述正常事件交叉关系生成模块的正常事件交叉关系抽象驱动、用于驱动所述异常操作事件生成模块的异常操作事件抽象驱动、和用于驱动所述自动化测试用例组合生成模块的自动化测试用例组合生成模块驱动;
所述***还包括:用于驱动所述测试执行模块测试执行驱动。
与现有技术相比,本发明通过预先建立正常事件交叉关系库和异常操作事件库,并根据正常事件交叉关系库和异常操作事件库生成自动化测试用例,解决了交叉事件组合不全、异常场景模拟不够带来的可能存在隐藏缺陷的风险;测试项目中需要测试的待测试项可以从自动化测试用例中确定,从而实现了批量自动化测试;此外,对测试结果进行分析并根据测试结果更新正常事件交叉关系库和异常操作事件库,不仅提高了测试覆盖度,也有效的节省了测试时间。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明实施例技术方案的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1是本发明实施例提供的交叉事件自动化测试***的结构示意图。
图2是本发明实施例提供的交叉事件自动化测试方法的流程示意图。
图3是本发明实施例提供的拓扑排序算法的示意图。
图4是本发明实施例提供的自动化测试的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是本发明实施例提供的交叉事件自动化测试***的结构示意图。本发明实施例中交叉事件自动化测试过程可以划分为以下阶段:正常事件交叉关系库和异常操作事件库形成阶段、自动化用例生成阶段、自动化用例执行和结果生成阶段、以及正常事件交叉关系库和异常操作事件库优化阶段。
基于交叉事件自动化测试过程的各阶段,如图1所示,本发明实施例提供的交叉事件自动化测试***包括:人机交互模块110、总体控制模块120、交叉事件驱动模块130、正常事件交叉关系库140、异常操作事件库150、自动化测试用例集160、测试执行驱动170、测试结果报告和分析模块180和交叉事件库190。
其中,总体控制模块120包括:正常事件交叉关系生成模块111、异常操作事件生成模块112、自动化测试用例组合生成模块113、测试执行模块114、测试结果模块115和知识库完善模块116;交叉事件驱动模块130包括正常事件交叉关系抽象驱动131、异常操作事件抽象驱动132和自动化测试用例组合生成模块驱动133。
人机交互模块110,用于接收用户控制信息,并传递给总体控制模块120,通过人机交互模块110与总体控制模块120的交互,总体控制模块120根据用户控制信息对待测试的设备(该设备包括待测试的测试项目)进行配置以及测试,同时还存储测试数据信息、存储测试数据修改信息等。其中,用户控制信息包括操作配置和操作命令,以电信设备为例,可以包含设备的管理地址、命令、对设备的具体配置等。
总体控制模块120,用于负责自身模块之间的通讯以及协调其他模块完成测试过程,其中:
正常事件交叉关系生成模块111,用于生成正常事件交叉关系库;
异常操作事件生成模块112,用于生成异常操作事件库;
自动化测试用例组合生成模块113,用于根据生成的正常交叉关系库和异常操作事件库,根据算法组合生成自动化用例集;
测试执行模块114,用于测试的执行、测试记录生成、详细问题记录等,其中测试的执行具体可以包括获取测试项目需要测试的待测试项,根据待测试项的组合关系查找自动化测试用例集,获取与每个待测试项匹配的自动化测试用例;根据与每个待测试项匹配的自动化测试用例,确定与测试项目对应的自动化测试用例,执行与测试项目对应的自动化测试用例以实现对测试项目进行测试;
进一步地,测试执行模块114用于获取测试项目需要测试的待测试项,根据待测试项的组合关系查找自动化测试用例集,获取与每个待测试项匹配的自动化测试用例,具体为:
建立测试项目,测试项目包括至少一个交叉模块;
确定测试项目需要测试的待测试项;
判断待测试项的组合关系属于指定交叉事件关系或是随机交叉事件关系;
如果待测试项的组合关系属于指定交叉事件关系,则查找指定交叉事件的自动化测试用例集,获取与每个待测试项匹配的所述指定交叉事件的自动化测试用例;
如果待测试项的组合关系属于随机交叉事件关系,则查找随机交叉事件的自动化测试用例集,如果查找到,则获取与每个待测试项匹配的随机交叉事件的自动化测试用例,如果没有查找到,则生成与每个待测试项匹配的自动化测试用例。
进一步地,测试执行模块114用于根据与每个待测试项匹配的自动化测试用例,确定与测试项目对应的自动化测试用例,具体为:
如果多个与待测试项匹配的自动化测试用例之间存在关联顺序,则根据关联顺序,确定与测试项目对应的自动化测试用例;
如果多个与待测试项匹配的自动化测试用例之间未存在关联顺序,则对多个与待测试项匹配的自动化测试用例的权重值进行排列,根据排列顺序,确定与测试项目对应的自动化测试用例。
测试结果模块115,用于存储测试进度和测试结果;
知识库完善模块116,用于将未出现预期结果的交叉事件进行分析,多次执行后可以形成基于交叉事件的出错概率分布,从而在版本升级测试时,在风险更小的情况下达到更高的覆盖度;
交叉事件驱动模块130用于和总体控制模块120交互,进行模型和实现的管理调度,其中:
正常事件交叉关系抽象驱动131,用于驱动正常事件交叉关系生成模块;
异常操作事件抽象驱动132,用于驱动异常操作事件生成模块;
自动化测试用例组合生成模块驱动133,用于驱动自动化测试用例组合生成模块。
正常事件交叉关系库140,用于存储交叉模块在时间、空间和功能上的相互关系,例如触发条件和依赖关系等。
具体地,正常事件交叉关系库140由正常事件交叉关系生成模块121先根据测试经验建立,例如由于操作习惯、测试需求、模块本身实现等原因形成的交叉模块在时间、空间和功能上的逻辑关系。正常事件交叉关系库包括必选项事件和可选项事件,必选项事件如对服务器和客户端进行网管分布式安装过程中包括选定服务器、启动选定服务器、选定服务器启动情况下选定客户端、开启选定客户端等事件;然后根据后续测试结果对正常事件交叉关系进行补充,可选项事件如对服务器和客户端进行网管分布式安装过程中还可以包括服务器启动的情况下查看网管进程运行情况等事件。
异常操作事件库150,用于存储影响交叉模块正常运行的异常操作事件。
具体地,异常操作事件库150由异常操作事件生成模块122先根据测试经验中的容易出现问题的异常事件建立。异常操作事件库包括必选项事件和可选项事件,必选项事件如对服务器和客户端进行网管分布式安装过程中无法启动选定服务器、选定服务器启动情况下无法选定客户端、服务器异常关闭和客户端异常关闭等事件;然后根据后续测试结果对异常事件进行补充,可选项事件如对服务器和客户端进行网管分布式安装过程中还可以包括服务器启动的情况下无法查看网管进程运行情况等事件;
自动化测试用例集160,包括指定交叉事件的自动化测试用例和随机交叉事件的自动化测试用例,其中,根据正常事件交叉关系库包括的必选项事件和异常操作事件库包括的必选项事件,生成指定交叉事件的自动化测试用例;根据正常事件交叉关系库包括的可选项事件和异常操作事件库包括的可选项事件,采用拓扑排序算法,生成随机交叉事件的自动化测试用例;
测试执行驱动170,用于驱动测试执行模块114;
测试结果报告和分析模块180,用于汇总测试结果模块115中测试结果生成报告,报告的形式可选。针对结果中的问题,可以进行问题汇总、图表显示,提示产生问题的位置和原因,以方便定位问题;
交叉事件库190,包括正常事件交叉关系库140和异常操作事件库150,可以理解的是,正常事件交叉关系库140和异常操作事件库150既可共同设置在交叉事件库190中,或者,独立地进行设置。
基于图1所示的交叉事件自动化测试***,图2是本发明实施例提供的交叉事件自动化测试方法的流程示意图。如图2所示,包括如下步骤:
步骤21,确定正常事件交叉关系库和异常操作事件库。
在本步骤中,正常事件交叉关系生成模块根据测试经验生成用于存储交叉模块在时间、空间和功能上的相互关系事件的正常事件交叉关系库;异常操作事件生成模块根据测试经验生成用于存储影响交叉模块正常运行的异常操作事件的异常操作事件库。正常事件交叉关系库的事件都包括必选项事件和可选项事件,正常事件交叉关系库和异常操作事件库可以供执行测试的模块共享和调用。
步骤22,根据正常事件交叉关系库和异常操作事件库,生成自动化测试用例集。
在本步骤中,指定交叉事件来源于正常事件交叉关系库包括的必选项事件和异常操作事件库包括的必选项事件;随机交叉事件来源于正常事件交叉关系库包括的可选项事件和异常操作事件库包括的可选项事件。将指定交叉事件和随机交叉事件导入自动化测试***的模型库中,模型库分别生成指定交叉事件的自动化测试用例和随机交叉事件的自动化测试用例,指定交叉事件的自动化测试用例和随机交叉事件的自动化测试用例构成所述自动化测试用例集。此外,根据自动化测试用例集和设备的配置,生成设备可以识别的配置文件,作为后续自动化测试的输入,如何生成配置文件属于本领域技术人员的公知,在此不赘述。
本发明的优选实施里中,拓扑排序算法属于深度优先算法,指在事件关系用例中对有顺序无回路的关系事件进行排序,形成顺序序列指示事件发生。
例如,参考图3所示,电信设备需要网管管理,网管管理***分为两大部分:网管服务器和网管客户端,这里以网管分布式安装***的启动为例,在网管***已经正确安装,且***电脑已经正常启动后开始,A为服务器启动,B为服务器关闭,C为服务器启动的情况下客户端1开启,D为客户端1关闭,E为服务器启动的情况下客户端2开启,F为客户端2关闭,G为选定服务器,H为选定客户端1,I为选定客户端2,J为在网管服务器启动的情况下查看网管进程运行情况,K为取消选定。例如,可以选择A经过C到达B的路径,路径为ACHDGB,表示了一个服务器和客户端启动和关闭的流程:服务器启动->服务器启动情况下客户端1开启->选定客户端1->客户端1关闭->选定服务器->服务器关闭;进一步地,也可以选择其他的路径依次遍历,例如,另外一种路径可以是:ACHK,代表一种异常的操作流程:服务器启动->服务器启动情况下客户端1开启->选定客户端1->取消选定。
步骤23,获取测试项目需要测试的待测试项,根据待测试项的组合关系查找自动化测试用例集,获取与每个待测试项匹配的自动化测试用例,根据与每个待测试项匹配的自动化测试用例,确定与测试项目对应的自动化测试用例,执行与测试项目对应的自动化测试用例以实现对测试项目进行测试。
步骤24,根据测试结果生成测试报告,并对测试报告进行分析,根据对测试报告的分析更新正常事件交叉关系库和异常操作事件库。
在本步骤中,测试完成后,测试结果报告和分析模块根据测试结果自动生成测试报告,其中测试是否完成可以根据校验输出状态是否完成测试完成的输出状态来判断。
测试报告包括组合的测试用例数目和通过率、每个测试用例的具体配置和事件,每个测试用例的执行情况以及每个测试用例的具体的验证点的详细情况等信息。
根据测试结果生成测试报告,可以周期性的对测试报告进行分析,也可以选择某些测试报告进行分析,例如,每20次测试报告进行统计、或者选定5次测试结果进行统计,可以采用数组的方式计算得出自动化测试用例集中交叉事件的执行率、失败率、平均执行时间等,利用冒泡法分别进行排序,形成带有不同权重值的交叉事件关系,对正常事件交叉关系库和异常操作事件库进行更新。
此外,可以依次对比失败率由高到低的用例若不包含可以进行添加、并记录失败的概率。进行版本升级的测试或发布前测试时,可以按权重值选择进行覆盖测试,大大提高测试覆盖度的同时,也有效的节省了时间成本。
图4本发明实施例提供的自动化测试的流程示意图,该自动化测试的流程是对上述步骤23的具体说明。如图4所示,包括如下步骤:
步骤231,建立测试项目。
具体地,交叉事件自动化测试***在客户端设备上运行,并通过人机交互模块接收用户的控制信息,用户需要测试时,新建一个测试项目,该测试项目至少包括一个交叉模块。
步骤232,确定测试项目需要测试的待测试项。
具体地,测试项目包括至少一个待测试项,根据测试需求在交叉事件库中选择事件作为测试项目需要测试的待测试项。交叉事件库中的事件包括必选项事件和可选项事件,在实际应用中,可以设定默认为选择必选项事件。
根据设备配置和在交叉事件库中选择的事件分别生成待测试项的配置文件。在实际应用中,如果没有选择交叉事件库可选项事件,设定默认使用已经生成的自动化测试用例集的配置文件,以节约时间。
此外,在生成待测试项的配置文件还可以设置测试记录和测试报告的输出位置以及文件显示格式。
步骤233,判断待测试项的组合关系属于指定交叉事件关系或是随机交叉事件关系,如果待测试项的组合关系属于指定交叉事件关系,进入步骤234,如果待测试项的组合关系属于随机交叉事件关系,进入步骤235。
步骤234,查找指定交叉事件的自动化测试用例集,获取与每个待测试项匹配的指定交叉事件的自动化测试用例,然后进入步骤238。
指定交叉事件关系来源于正常事件交叉关系库包括的必选项事件和异常操作事件库包括的必选项事件,因此可以在指定交叉事件的自动化测试用例集查找到。具体地,生成读取测试项的配置文件,查找指定交叉事件的自动化测试用例集,获取与每个待测试项匹配的指定交叉事件的自动化测试用例。
步骤235,查找随机交叉事件的自动化测试用例集,判断在随机交叉事件的自动化测试用例集中是否查找到和待测试项匹配的自动化测试用例,如果查找到,进入步骤236,如果没有查找到,进入步骤237;
随机交叉事件关系来源于正常事件交叉关系库的可选项事件和异常操作事件库的可选项事件,如果后续有补充新可选项事件或者异常操作事件,有可能无法在随机交叉事件的自动化测试用例集中查找到。
步骤236,获取与每个待测试项匹配的随机交叉事件的自动化测试用例;
步骤237,生成与每个待测试项匹配的自动化测试用例。
具体地,根据拓扑排序算法生成随机交叉事件,并生成随机交叉事件的测试用例作为待测试项的自动化测试用例。
步骤238,根据与每个待测试项匹配的自动化测试用例,确定与测试项目对应的自动化测试用例。
具体地,测试项目包括至少一个待测试项,将待测试项的自动化测试用例按照设定的顺序组合,确定测试项目的自动化测试用例,例如,如果多个与待测试项匹配的自动化测试用例直接存在关联顺序,则可以根据关联顺序,确定与测试项目对应的自动化测试用例;如果多个与待测试项匹配的自动化测试用例之间未存在关联顺序,则可以对多个与测试项匹配的自动化测试用例的权重值进行排列,根据排列顺序,确定与测试项目对应的自动化测试用例。
步骤239,执行测试项目的自动化测试用例以实现对测试项目进行测试。
具体地,调用测试执行模块执行测试项目的自动化测试用例,且优选地,测试过程中,可以在测试结果模块中随时查看运行情况以及截止到目前的测试进程。
本发明的交叉事件自动化测试***和交叉事件自动化测试方法对应,因此,交叉事件自动化测试***和交叉事件自动化测试方法中的具体的实现细节可相互参考,在此不赘述。
本发明中,通过预先建立正常事件交叉关系库和异常操作事件库,并根据正常事件交叉关系库和异常操作事件库生成自动化测试用例,解决了交叉事件组合不全、异常场景模拟不够带来的可能存在隐藏缺陷的风险;测试项目中需要测试的待测试项可以从自动化测试用例中确定,从而实现了批量自动化测试;此外,对测试结果进行分析并根据测试结果更新交叉事件库,不仅提高了测试覆盖度,也有效的节省了测试时间。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (12)
1.一种交叉事件自动化测试方法,其特征在于,所述方法包括:
确定正常事件交叉关系库和异常操作事件库,所述正常事件交叉关系库用于存储交叉模块在时间、空间和功能上的相互关系,所述异常操作事件库用于存储影响所述交叉模块正常运行的异常操作事件;
根据所述正常事件交叉关系库和所述异常操作事件库,生成自动化测试用例集;
获取测试项目需要测试的待测试项,根据所述待测试项的组合关系查找所述自动化测试用例集,获取与每个所述待测试项匹配的自动化测试用例;
根据与每个所述待测试项匹配的自动化测试用例,确定与所述测试项目对应的自动化测试用例,执行与所述测试项目对应的自动化测试用例以实现对所述测试项目进行测试。
2.根据权利要求1所述的方法,其特征在于,所述正常事件交叉关系库包括必选项事件和可选项事件,所述异常操作事件库包括必选项事件和可选项事件;
所述根据所述正常事件交叉关系库和所述异常操作事件库,生成自动化测试用例集,具体包括:
根据所述正常事件交叉关系库包括的必选项事件和所述异常操作事件库包括的必选项事件,生成指定交叉事件的自动化测试用例;
根据所述正常事件交叉关系库包括的可选项事件和所述异常操作事件库包括的可选项事件,采用拓扑排序算法,生成随机交叉事件的自动化测试用例;
所述指定交叉事件的自动化测试用例和所述随机交叉事件的自动化测试用例构成所述自动化测试用例集。
3.根据权利要求2所述的方法,其特征在于,所述获取测试项目需要测试的待测试项,根据所述待测试项的组合关系查找所述自动化测试用例集,获取与每个所述待测试项匹配的自动化测试用例,具体包括:
建立测试项目,所述测试项目包括至少一个交叉模块;
确定所述测试项目需要测试的待测试项;
判断所述待测试项的组合关系属于指定交叉事件关系或是随机交叉事件关系;
如果所述待测试项的组合关系属于所述指定交叉事件关系,则查找所述指定交叉事件的自动化测试用例集,获取与每个所述待测试项匹配的所述指定交叉事件的自动化测试用例;
如果所述待测试项的组合关系属于所述随机交叉事件关系,则查找所述随机交叉事件的自动化测试用例集,如果查找到,则获取与每个所述待测试项匹配的所述随机交叉事件的自动化测试用例,如果没有查找到,则生成与每个所述待测试项匹配的自动化测试用例。
4.根据权利要求1所述的方法,其特征在于,所述根据与每个所述待测试项匹配的自动化测试用例,确定与所述测试项目对应的自动化测试用例,具体包括:
如果多个与所述待测试项匹配的自动化测试用例之间存在关联顺序,则根据所述关联顺序,确定与所述测试项目对应的自动化测试用例;
如果多个与所述待测试项匹配的自动化测试用例之间未存在关联顺序,则对多个与所述待测试项匹配的自动化测试用例的预设的权重值进行排列,根据所述排列顺序,确定与所述测试项目对应的自动化测试用例。
5.根据权利要求1~4中任一项所述的方法,其特征在于,所述执行与所述测试项目对应的自动化测试用例以实现对所述测试项目进行测试之后,还包括:
根据测试结果生成测试报告,并对所述测试报告进行分析;
根据对所述测试报告的分析更新所述正常事件交叉关系库和所述异常操作事件库。
6.一种交叉事件自动化测试***,其特征在于,包括:总体控制模块、正常事件交叉关系库、异常操作事件库和自动化测试用例集;
所述总体控制模块包括:正常事件交叉关系生成模块、异常操作事件生成模块、自动化测试用例组合生成模块和测试执行模块;
所述正常事件交叉关系生成模块,用于确定所述正常事件交叉关系库,所述正常事件交叉关系库,用于存储交叉模块在时间、空间和功能上的相互关系;
所述异常操作事件生成模块,用于确定所述异常操作事件库,所述异常操作事件库用于存储影响所述交叉模块正常运行的异常操作事件;
所述自动化测试用例组合生成模块,用于根据所述正常事件交叉关系库和异常操作事件库生成所述自动化测试用例集,所述自动化测试用例集用于存储自动化测试用例;
所述测试执行模块,用于获取测试项目需要测试的待测试项,根据所述待测试项的组合关系查找所述自动化测试用例集,获取与每个所述待测试项匹配的自动化测试用例;根据与每个所述待测试项匹配的自动化测试用例,确定与所述测试项目对应的自动化测试用例,执行与所述测试项目对应的自动化测试用例以实现对所述测试项目进行测试。
7.根据权利要求6所述的***,其特征在于,所述正常事件交叉关系库包括必选项事件和可选项事件,所述异常操作事件库包括必选项事件和可选项事件;
所述自动化测试用例组合生成模块,用于根据所述正常事件交叉关系库和异常操作事件库生成所述自动化测试用例集,具体为:
根据所述正常事件交叉关系库包括的必选项事件和所述异常操作事件库包括的必选项事件,生成指定交叉事件的自动化测试用例;
根据所述正常事件交叉关系库包括的可选项事件和所述异常操作事件库包括的可选项事件,采用拓扑排序算法,生成随机交叉事件的自动化测试用例;
所述指定交叉事件的自动化测试用例和所述随机交叉事件的自动化测试用例构成所述自动化测试用例集。
8.根据权利要求7所述的***,其特征在于,所述测试执行模块用于获取测试项目需要测试的待测试项,根据所述待测试项的组合关系查找所述自动化测试用例集,获取与每个所述待测试项匹配的自动化测试用例,具体为:
建立测试项目,所述测试项目包括至少一个交叉模块;
确定所述测试项目需要测试的待测试项;
判断所述待测试项的组合关系属于指定交叉事件关系或是随机交叉事件关系;
如果所述待测试项的组合关系属于所述指定交叉事件关系,则查找所述指定交叉事件的自动化测试用例集,获取与每个所述待测试项匹配的所述指定交叉事件的自动化测试用例;
如果所述待测试项的组合关系属于所述随机交叉事件关系,则查找所述随机交叉事件的自动化测试用例集,如果查找到,则获取与每个所述待测试项匹配的所述随机交叉事件的自动化测试用例,如果没有查找到,则生成与每个所述待测试项匹配的自动化测试用例。
9.根据权利要求6所述的***,其特征在于,所述测试执行模块用于根据与每个所述待测试项匹配的自动化测试用例,确定与所述测试项目对应的自动化测试用例,具体为:
如果多个与所述待测试项匹配的自动化测试用例之间存在关联顺序,则根据所述关联顺序,确定与所述测试项目对应的自动化测试用例;
如果多个与所述待测试项匹配的自动化测试用例之间未存在关联顺序,则对多个与所述待测试项匹配的自动化测试用例的预设的权重值进行排列,根据所述排列顺序,确定与所述测试项目对应的自动化测试用例。
10.根据权利要求6~9中任一项所述的***,其特征在于,所述***还包括:测试结果模块、测试结果报告和分析模块和知识库完善模块;
所述测试结果模块,用于存储测试结果;
所述测试结果报告和分析模块,用于根据所述测试结果生成测试报告,并对所述测试报告进行分析;
所述知识库完善模块,用于根据对所述测试报告的分析更新所述正常事件交叉关系库和所述异常操作事件库;
所述测试结果模块和所述知识库完善模块在所述总体控制模块中。
11.根据权利要求6~9中任一项所述的***,其特征在于,所述***还包括:人机交互模块,用于接收用户控制信息,并向所述总体控制模块发送所述用户控制信息;其中,所述用户控制信息包括操作配置和操作命令。
12.根据权利要求6~9中任一项所述的***,其特征在于,所述***还包括:交叉事件驱动模块,所述交叉事件驱动模块包括用于驱动所述正常事件交叉关系生成模块的正常事件交叉关系抽象驱动、用于驱动所述异常操作事件生成模块的异常操作事件抽象驱动、和用于驱动所述自动化测试用例组合生成模块的自动化测试用例组合生成模块驱动;
所述***还包括:用于驱动所述测试执行模块测试执行驱动。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510213286.6A CN104794057B (zh) | 2015-04-29 | 2015-04-29 | 一种交叉事件自动化测试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510213286.6A CN104794057B (zh) | 2015-04-29 | 2015-04-29 | 一种交叉事件自动化测试方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104794057A CN104794057A (zh) | 2015-07-22 |
CN104794057B true CN104794057B (zh) | 2017-12-12 |
Family
ID=53558866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510213286.6A Active CN104794057B (zh) | 2015-04-29 | 2015-04-29 | 一种交叉事件自动化测试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104794057B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776261B (zh) * | 2015-11-23 | 2021-03-12 | 腾讯科技(深圳)有限公司 | 对象测试方法和装置 |
CN106326116B (zh) * | 2016-08-17 | 2019-03-05 | 北京奇虎科技有限公司 | 产品测试的方法和装置 |
CN106610899B (zh) * | 2016-12-30 | 2020-01-14 | 中国科学院长春光学精密机械与物理研究所 | 一种测试用例生成方法及装置 |
CN108255653B (zh) * | 2018-01-02 | 2021-05-04 | 深圳壹账通智能科技有限公司 | 一种产品的测试方法及其终端 |
CN109597762A (zh) * | 2018-11-28 | 2019-04-09 | 平安科技(深圳)有限公司 | ***交叉测试法、***、电子装置及计算机可读存储介质 |
CN109857671A (zh) * | 2019-02-15 | 2019-06-07 | 广州视源电子科技股份有限公司 | 测试用例的生成方法、装置、服务器及存储介质 |
CN110659215A (zh) * | 2019-09-30 | 2020-01-07 | 贵州航天云网科技有限公司 | 一种开放式工业app快速开发及测试验证方法 |
CN110851369A (zh) * | 2019-11-19 | 2020-02-28 | 泰康保险集团股份有限公司 | 保单数据处理方法及装置 |
CN111130938B (zh) * | 2019-12-25 | 2021-05-25 | 北京奇艺世纪科技有限公司 | 指标采集方法、装置、电子设备及计算机可读存储介质 |
CN112506757A (zh) * | 2020-11-17 | 2021-03-16 | 中广核工程有限公司 | 自动测试方法、***、计算机设备及其介质 |
CN114443392B (zh) * | 2022-01-07 | 2024-06-18 | 苏州浪潮智能科技有限公司 | 一种自动调优测试项顺序的方法、装置及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101212362A (zh) * | 2006-12-26 | 2008-07-02 | 中兴通讯股份有限公司 | 一种融合多类型测试工具的自动化测试装置及方法 |
CN101251798A (zh) * | 2008-04-01 | 2008-08-27 | 中兴通讯股份有限公司 | 一种基于关系的测试用例生成方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8938647B2 (en) * | 2012-06-29 | 2015-01-20 | Sap Se | System and method for capturing and using web page views in a test environment |
-
2015
- 2015-04-29 CN CN201510213286.6A patent/CN104794057B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101212362A (zh) * | 2006-12-26 | 2008-07-02 | 中兴通讯股份有限公司 | 一种融合多类型测试工具的自动化测试装置及方法 |
CN101251798A (zh) * | 2008-04-01 | 2008-08-27 | 中兴通讯股份有限公司 | 一种基于关系的测试用例生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104794057A (zh) | 2015-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104794057B (zh) | 一种交叉事件自动化测试方法和装置 | |
CN104598380B (zh) | 一种基于控件的自动化测试方法及*** | |
CN103823747B (zh) | 自动回归测试的方法 | |
CN109857668A (zh) | Ui自动化功能测试方法、测试装置、测试设备及存储介质 | |
CN109947646A (zh) | 接口测试方法、装置、计算机设备和存储介质 | |
CN109857667A (zh) | 接口自动化测试方法、测试装置、测试设备及存储介质 | |
CN106406266B (zh) | 一种模拟由核电站dcs***控制的设备的方法 | |
CN105279196B (zh) | 测试脚本的生成方法和装置 | |
CN109240755A (zh) | 一种配置文件比对方法和配置文件比对*** | |
CN109558317A (zh) | 测试用例的处理方法及装置 | |
CN107911251B (zh) | 一种网络设备配置方法、装置和介质 | |
CN102110053A (zh) | 一种基于Android的随机测试方法 | |
CN108959067A (zh) | 搜索引擎的测试方法、装置及计算机可读存储介质 | |
CN109146081A (zh) | 一种用于机器学习平台中快速创建模型项目的方法及装置 | |
CN106815147B (zh) | 一种测试脚本生成方法及装置 | |
CN112433944A (zh) | 业务测试方法、装置、计算机设备和存储介质 | |
CN109426611A (zh) | 一种软件测试方法和装置 | |
CN109491922A (zh) | 一种基于模型驱动的测试方法和装置 | |
CN109902251A (zh) | 基于决策树的方案选择方法、装置、终端及可读存储介质 | |
CN104216823B (zh) | 一种自动化测试方法及主控装置 | |
CN106802797A (zh) | 一种应用程序编程接口的生成方法及装置 | |
CN110287088A (zh) | 一种基于动态ui模型的自动化测试方法 | |
CN107703773A (zh) | 一种基于硬件在环仿真***的软件测试方法及装置 | |
CN105760300B (zh) | 一种stk/utk业务的自动化测试方法及测试*** | |
CN107247827A (zh) | 基于机器学习的虚端子模型建模及自动连线方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |