CN112905485A - 一种生成测试脚本的方法和装置 - Google Patents
一种生成测试脚本的方法和装置 Download PDFInfo
- Publication number
- CN112905485A CN112905485A CN202110322558.1A CN202110322558A CN112905485A CN 112905485 A CN112905485 A CN 112905485A CN 202110322558 A CN202110322558 A CN 202110322558A CN 112905485 A CN112905485 A CN 112905485A
- Authority
- CN
- China
- Prior art keywords
- test
- test script
- business
- business link
- script
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 618
- 238000013515 script Methods 0.000 title claims abstract description 499
- 238000000034 method Methods 0.000 title claims abstract description 86
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 73
- 230000002068 genetic effect Effects 0.000 claims abstract description 64
- 238000003909 pattern recognition Methods 0.000 claims abstract description 32
- 238000013101 initial test Methods 0.000 claims description 44
- 230000002159 abnormal effect Effects 0.000 claims description 38
- 238000012795 verification Methods 0.000 claims description 20
- 238000007689 inspection Methods 0.000 claims description 10
- 238000005070 sampling Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012549 training Methods 0.000 claims description 9
- 230000003247 decreasing effect Effects 0.000 claims description 8
- 230000003044 adaptive effect Effects 0.000 claims description 4
- 238000012423 maintenance Methods 0.000 abstract description 13
- 238000010586 diagram Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 11
- 239000000047 product Substances 0.000 description 11
- 230000000694 effects Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000002829 reductive effect Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000012567 pattern recognition method Methods 0.000 description 5
- 239000007795 chemical reaction product Substances 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- BUGBHKTXTAQXES-UHFFFAOYSA-N Selenium Chemical compound [Se] BUGBHKTXTAQXES-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000008303 genetic mechanism Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 229910052711 selenium Inorganic materials 0.000 description 1
- 239000011669 selenium Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
Images
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
-
- 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/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Quality & Reliability (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computer Hardware Design (AREA)
- Genetics & Genomics (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Physiology (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种生成测试脚本的方法和装置,涉及自动程序设计技术领域。该方法的一具体实施方式包括:对当前批次的测试案例进行拆分,获得当前批次的测试案例对应的业务环节;获取业务环节对应的第一测试脚本和第二测试脚本,其中,第一测试脚本为基于代码定位生成的测试脚本,第二测试脚本为基于模式识别生成的测试脚本;根据业务环节对应的第一测试脚本和第二测试脚本,基于遗传算法,确定业务环节对应的最优测试脚本;根据业务环节对应的最优测试脚本,生成当前批次的测试案例对应的目标测试脚本。该实施方式生成的目标测试脚本具备灵活性和准确性的特点,容错率高,维护成本可控,降低了算法搜索时间,提高了测试脚本的有效性。
Description
技术领域
本发明涉及自动程序设计技术领域,尤其涉及一种生成测试脚本的方法和装置。
背景技术
银行前端产品的需求变更频繁,导致回归测试案例需要随产品版本调整。其中,回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。由于产品体量庞大,会导致回归测试任务繁重,因此为提升产品测试效率,自动化测试脚本需要最大程度上满足产品版本迭代中的回归测试需求,保证测试的有效性。
目前,银行前端产品的自动化测试脚本设计主要包括:方法一、基于操作***框架或应用开发框架的自带方法实现界面元素的定位、操作、信息获取等动作,以生成自动化测试脚本;方法二、基于模式识别生成自动化测试脚本,如SikuliX,一种新颖的图形脚本语言,SikuliX能够通过图片来识别界面元素。
在实现本发明过程中,发现现有技术存在如下问题:对于方法一,其对产品版本要求高,界面元素如有任何变化可能导致相关案例全部执行失败,并且脚本维护成本高,对任一产品版本,测试阶段和需求变更均可能导致重新编辑脚本;对于方法二,生成的测试脚本的准确性差,且对测试设备也有一定的要求。
发明内容
有鉴于此,本发明实施例提供一种生成测试脚本的方法和装置,能够达到以模式识别方法辅助代码定位方法生成测试脚本的效果,容错率高,维护成本可控,并且利用遗传算法能够最大程度保留目标测试脚本中第一测试脚本所占比例,降低了算法搜索时间,提高了目标测试脚本的有效性。
为实现上述目的,根据本发明实施例的一个方面,提供了一种生成测试脚本的方法。
本发明实施例的生成测试脚本的方法,包括:对当前批次的测试案例进行拆分,获得所述当前批次的测试案例对应的业务环节;获取所述业务环节对应的第一测试脚本和第二测试脚本,其中,所述第一测试脚本为基于代码定位生成的测试脚本,所述第二测试脚本为基于模式识别生成的测试脚本;根据所述业务环节对应的第一测试脚本和第二测试脚本,基于遗传算法,确定所述业务环节对应的最优测试脚本;根据所述业务环节对应的最优测试脚本,生成所述当前批次的测试案例对应的目标测试脚本。
可选地,所述对当前批次的测试案例进行拆分,获得所述当前批次的测试案例对应的业务环节,包括:对所述当前批次的测试案例中的每个测试案例,以界面操作为单位进行拆分,获得所述每个测试案例对应的一个或多个业务环节,以得到所述当前批次的测试案例对应的业务环节。
可选地,所述获取所述业务环节对应的第一测试脚本和第二测试脚本,包括:针对所述每个测试案例对应的一个或多个业务环节中的每个业务环节,基于代码定位实现所述每个业务环节,生成所述每个业务环节对应的第一测试脚本;基于模式识别实现所述每个业务环节,生成所述每个业务环节对应的第二测试脚本。
可选地,所述根据所述业务环节对应的第一测试脚本和第二测试脚本,基于遗传算法,确定所述业务环节对应的最优测试脚本,包括:根据所述每个业务环节对应的第一测试脚本和所述每个业务环节对应的第二测试脚本,生成所述每个测试案例对应的初代测试脚本,以得到所述当前批次的测试案例对应的初代测试脚本;根据所述当前批次的测试案例对应的初代测试脚本,基于遗传算法进行迭代训练,确定所述每个业务环节对应的最优测试脚本;其中,所述遗传算法的适应性函数为测试案例对应的整体测试成功率。
可选地,所述根据所述每个业务环节对应的第一测试脚本和所述每个业务环节对应的第二测试脚本,生成所述每个测试案例对应的初代测试脚本,包括:利用测试数据对所述每个业务环节对应的第一测试脚本进行验证;若验证成功,则确定所述每个业务环节对应的第一测试脚本为所述每个业务环节对应的初代测试脚本,若验证失败,则利用递减检验的随机采样方式,生成所述每个业务环节对应的初代测试脚本;根据所述每个业务环节对应的初代测试脚本,生成所述每个测试案例对应的初代测试脚本。
可选地,在以界面操作为单位进行拆分,获得所述每个测试案例对应的一个或多个业务环节之后,所述方法还包括:确定所述每个业务环节在所述每个测试案例中的流程顺序;以及,所述根据所述每个业务环节对应的初代测试脚本,生成所述每个测试案例对应的初代测试脚本,包括:按照所述每个业务环节在所述每个测试案例中流程顺序,将所述每个业务环节对应的初代测试脚本进行组合,生成所述每个测试案例对应的初代测试脚本。
可选地,在生成所述当前批次的测试案例对应的目标测试脚本之后,所述方法还包括:利用测试数据执行所述目标测试脚本,获取执行成功率,判断所述执行成功率是否大于预设成功率阈值;若是,则确定测试通过;若否,则对所述目标测试脚本进行人工校正。
可选地,所述对所述目标测试脚本进行人工校正,包括:获取所述目标测试脚本包含的异常脚本,其中,所述异常脚本为执行失败的业务环节对应的脚本;若所述异常脚本为第一测试脚本,则对所述异常脚本进行人工校正;以及,若界面元素发生改变,则调整用于模式识别的图像库。
可选地,所述方法还包括:根据需求,对所述目标测试脚本包含的异常脚本进行修正。
为实现上述目的,根据本发明实施例的再一个方面,提供了一种生成测试脚本的装置。
本发明实施例的生成测试脚本的装置,包括:拆分模块,用于对当前批次的测试案例进行拆分,获得所述当前批次的测试案例对应的业务环节;获取模块,用于获取所述业务环节对应的第一测试脚本和第二测试脚本,其中,所述第一测试脚本为基于代码定位生成的测试脚本,所述第二测试脚本为基于模式识别生成的测试脚本;确定模块,用于根据所述业务环节对应的第一测试脚本和第二测试脚本,基于遗传算法,确定所述业务环节对应的最优测试脚本;生成模块,用于根据所述业务环节对应的最优测试脚本,生成所述当前批次的测试案例对应的目标测试脚本。
可选地,所述拆分模块还用于:对所述当前批次的测试案例中的每个测试案例,以界面操作为单位进行拆分,获得所述每个测试案例对应的一个或多个业务环节,以得到所述当前批次的测试案例对应的业务环节。
可选地,所述获取模块还用于:针对所述每个测试案例对应的一个或多个业务环节中的每个业务环节,基于代码定位实现所述每个业务环节,生成所述每个业务环节对应的第一测试脚本;基于模式识别实现所述每个业务环节,生成所述每个业务环节对应的第二测试脚本。
可选地,所述确定模块还用于:根据所述每个业务环节对应的第一测试脚本和所述每个业务环节对应的第二测试脚本,生成所述每个测试案例对应的初代测试脚本,以得到所述当前批次的测试案例对应的初代测试脚本;根据所述当前批次的测试案例对应的初代测试脚本,基于遗传算法进行迭代训练,确定所述每个业务环节对应的最优测试脚本;其中,所述遗传算法的适应性函数为测试案例对应的整体测试成功率。
可选地,所述确定模块还用于:利用测试数据对所述每个业务环节对应的第一测试脚本进行验证;若验证成功,则确定所述每个业务环节对应的第一测试脚本为所述每个业务环节对应的初代测试脚本,若验证失败,则利用递减检验的随机采样方式,生成所述每个业务环节对应的初代测试脚本;根据所述每个业务环节对应的初代测试脚本,生成所述每个测试案例对应的初代测试脚本。
可选地,所述拆分模块还用于:确定所述每个业务环节在所述每个测试案例中的流程顺序;以及,所述确定模块还用于:按照所述每个业务环节在所述每个测试案例中流程顺序,将所述每个业务环节对应的初代测试脚本进行组合,生成所述每个测试案例对应的初代测试脚本。
可选地,所述生成模块还用于:利用测试数据执行所述目标测试脚本,获取执行成功率,判断所述执行成功率是否大于预设成功率阈值;若是,则确定测试通过;若否,则对所述目标测试脚本进行人工校正。
可选地,所述生成模块还用于:获取所述目标测试脚本包含的异常脚本,其中,所述异常脚本为执行失败的业务环节对应的脚本;若所述异常脚本为第一测试脚本,则对所述异常脚本进行人工校正;以及,若界面元素发生改变,则调整用于模式识别的图像库。
可选地,所述生成模块还用于:根据需求,对所述目标测试脚本包含的异常脚本进行修正。
为实现上述目的,根据本发明实施例的又一个方面,提供了一种电子设备。
本发明实施例的一种电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本发明实施例的生成测试脚本的方法。
为实现上述目的,根据本发明实施例的还一个方面,提供了一种计算机可读介质。
本发明实施例的一种计算机可读介质,其上存储有计算机程序,程序被处理器执行时实现本发明实施例的生成测试脚本的方法。
上述发明中的一个实施例具有如下优点或有益效果:可以基于代码定位生成业务环节对应的第一测试脚本和基于模式识别生成业务环节对应的第二测试脚本,然后利用遗传算法进行测试脚本选择,得到业务环节对应的最优测试脚本,进而得到测试案例对应的目标测试脚本,实现了通过遗传算法将代码定位方法和模式识别方法结合起来,使得生成的目标测试脚本具备灵活性和准确性的特点,达到了以模式识别方法辅助代码定位方法生成测试脚本的效果,容错率高,维护成本可控,并且利用遗传算法能够最大程度保留目标测试脚本中第一测试脚本所占比例,降低了算法搜索时间,提高了目标测试脚本的有效性。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的生成测试脚本的方法的主要步骤的示意图;
图2是根据本发明实施例的基于遗传算法确定业务环节对应的最优测试脚本的主要过程的示意图;
图3是根据本发明实施例的生成测试脚本的方法的主要流程的示意图;
图4是根据本发明实施例的生成测试脚本的装置的主要模块的示意图;
图5是本发明实施例可以应用于其中的示例性***架构图;
图6是适于用来实现本发明实施例的终端设备或服务器的计算机***的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的生成测试脚本的方法的主要步骤的示意图。如图1所示,生成测试脚本的方法的主要步骤可以包括步骤S101至步骤S104。
步骤S101:对当前批次的测试案例进行拆分,获得当前批次的测试案例对应的业务环节。
其中,测试案例可以理解为对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。测试案例的内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。当前批次的测试案例可以理解为当前使用的对产品进行测试的自动化测试脚本,也可以理解为需要重新维护编辑的自动化测试脚本。
对于银行前端产品,其业务流程较长,即对产品界面进行的操作步骤较多,也即产品包含的业务环节较多,因此需要对每个业务环节进行测试。所以,在步骤S101中,可以对当前批次的测试案例进行拆分,获得当前批次的测试案例对应的业务环节。
此外,当前批次的测试案例可以包括一个或多个测试案例,且每个测试案例可以包括一个或多个业务环节,因此当前批次的测试案例包括一个或多个业务环节。
步骤S102:获取业务环节对应的第一测试脚本和第二测试脚本。其中,第一测试脚本为基于代码定位生成的测试脚本,第二测试脚本为基于模式识别生成的测试脚本。
具体地,基于代码定位实现业务环节,生成业务环节对应的第一测试脚本。代码定位是指基于操作***框架或应用开发框架的自带方法对应用界面进行解析,完成对业务环节包含的操作动作的自动化实现,进而可以生成业务环节对应的第一测试脚本。另一方面,代码定位可以为Selenium,即一个用于Web应用程序测试的工具,还可以为QTP,即QuickTest Professional的简称,是一种自动测试工具。
基于模式识别实现业务环节,生成业务环节对应的第二测试脚本。具体地,对业务环节对应的界面进行图片识别,以实现对界面元素的定位、操作、信息获取等动作,进而可以生成业务环节对应的第二测试脚本。此外,模式识别可以为SikuliX,即一种新颖的图形脚本语言,其能够通过图片来识别界面元素。需要注意的是,模式识别方法对分辨率有较高的依赖性,因此负责脚本执行的负载机均安装Windows操作***,且分别率与脚本编辑使用的终端相同。
步骤S103:根据业务环节对应的第一测试脚本和第二测试脚本,基于遗传算法,确定业务环节对应的最优测试脚本。
遗传算法是一类借鉴生物界的进化规律(即,适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法。遗传算法的主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地调整搜索方向,不需要确定的规则。
通过步骤S101和步骤S102,能够得到每个业务环节对应的第一测试脚本和第二测试脚本,然后在步骤S103,使用遗传算法进行选择,确定每个业务环节对应的最优测试脚本,从而可以提高测试成功率。
步骤S104:根据业务环节对应的最优测试脚本,生成当前批次的测试案例对应的目标测试脚本。
在步骤S101中,对当前批次的测试案例进行拆分,获得当前批次的测试案例对应的业务环节,然后通过步骤S102和步骤S103得到业务环节对应的最优测试脚本。接着,可以将业务环节对应的最优测试脚本进行组合,生成测试案例对应的目标测试脚本,以便可以利用目标测试脚本进行测试。
根据本发明实施例的生成测试脚本的方法,可以基于代码定位生成业务环节对应的第一测试脚本和基于模式识别生成业务环节对应的第二测试脚本,然后利用遗传算法进行测试脚本选择,得到业务环节对应的最优测试脚本,进而得到测试案例对应的目标测试脚本,实现了通过遗传算法将代码定位方法和模式识别方法结合起来,使得生成的目标测试脚本具备灵活性和准确性的特点,达到了以模式识别方法辅助代码定位方法生成测试脚本的效果,容错率高,维护成本可控,并且利用遗传算法能够最大程度保留目标测试脚本中第一测试脚本所占比例,降低了算法搜索时间,提高了目标测试脚本的有效性。
作为本发明的实施例,步骤S101的对当前批次的测试案例进行拆分,获得所述当前批次的测试案例对应的业务环节,可以包括:对当前批次的测试案例中的每个测试案例,以界面操作为单位进行拆分,获得每个测试案例对应的一个或多个业务环节,以得到当前批次的测试案例对应的业务环节。
测试案例包含众多鼠标点击拖拽、键盘输入等操作。对于每个测试案例,以界面操作为单位对该测试案例进行拆分,得到该测试案例对应的一个或多个业务环节,从而可以得到当前批次的所有测试案例对应的业务环节。
进一步地,在以界面操作为单位进行拆分,获得每个测试案例对应的一个或多个业务环节之后,还可以确定每个业务环节在每个测试案例中的流程顺序。
为了便于理解,采用以下例子说明。比如当前批次的测试案例包括案例1、案例2和案例3,那么需要分别对案例1、案例2和案例3,以界面操作为单位进行拆分,得到案例1包含的业务环节k1至k5、案例2包含的业务环节k5至k8、案例3包含的业务环节k1至k8,并且确定业务环节k1至k5在案例1中的流程顺序、业务环节k5至k8在案例2中的流程顺序、业务环节k1至k8在案例3中的流程顺序。
还有,作为本发明的实施例,在获得每个测试案例对应的一个或多个业务环节后,可以按照如下过程生成每个业务环节对应的第一测试脚本和第二测试脚本:针对每个测试案例对应的每个业务环节,基于代码定位实现该业务环节,生成该业务环节对应的第一测试脚本;基于模式识别实现该业务环节,生成该业务环节对应的第二测试脚本。以及,生成每个业务环节对应的第一测试脚本和第二测试脚本的工作量较大,但便于后期维护,且能有效延长维护周期。
需要注意的是,由于测试案例包括断言部分,并且断言部分为不可拆分部分。编写代码时,总是会做出一些假设,断言就是用于在代码中捕捉这些假设。断言表示为一些布尔表达式,如果在程序中的某个特定点,该表达式值为真,可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。使用断言可以创建更稳定、品质更好且不易于出错的代码。本发明实施例的生成测试脚本的方法中,可以采用单一方式生成断言部分对应的测试脚本语言,如基于代码定位生成断言部分对应的测试脚本语言。另外,考虑到基于遗传算法进行脚本选择的过程中,不需要对断言部分对应的测试脚本语言进行选择,因此在采用单一方式生成断言部分对应的测试脚本语言后,需要对该测试脚本语言进行验证。若验证失败,则需要对该测试脚本语言进行人工修正。
作为本发明的实施例,步骤S103的基于遗传算法确定业务环节对应的最优测试脚本,可以包括:
(1)根据每个业务环节对应的第一测试脚本和每个业务环节对应的第二测试脚本,生成每个测试案例对应的初代测试脚本,以得到当前批次的测试案例对应的初代测试脚本。
在基于遗传算法进行脚本选择之前,如果可以确定每个测试案例对应的初代测试脚本,即建立遗传算法的初代样本,那么可以避免遗传算法执行时间过长,提高算法收敛速度。
进一步地,根据每个业务环节对应的第一测试脚本和每个业务环节对应的第二测试脚本,生成每个测试案例对应的初代测试脚本,可以包括:利用测试数据对每个业务环节对应的第一测试脚本进行验证;若验证成功,则确定每个业务环节对应的第一测试脚本为每个业务环节对应的初代测试脚本,若验证失败,则利用递减检验的随机采样方式,生成每个业务环节对应的初代测试脚本;根据每个业务环节对应的初代测试脚本,生成每个测试案例对应的初代测试脚本。
具体地,可以预埋测试数据,利用这些测试数据验证每个业务环节对应的第一测试脚本。这是由于第一测试脚本为基于代码定位生成,其准确性较高,因此可以对每个业务环节对应的第一测试脚本进行验证。也即,利用测试数据验证每个业务环节对应的第一测试脚本是否可以正常执行。如果正常执行,则锁定该业务环节对应的脚本编码为0,即第一测试脚本对应的脚本编码为0。另外,对于不能正常执行的业务环节,采用递减检验进行随机样本生成该业务环节对应的初代测试脚本,避免了基于遗传算法进行脚本选择时的局部最优问题。就是说,采用递减检验的随机采样方式,从该业务环节对应的第一测试脚本和第二测试脚本中,选择该业务环节对应的初代测试脚本,即确定该业务环节对应的脚本编码是0还是1,0表示第一测试脚本,1表示第二测试脚本。
此外,作为本发明的实施例,根据每个业务环节对应的初代测试脚本,生成每个测试案例对应的初代测试脚本,可以包括:按照每个业务环节在每个测试案例中流程顺序,将每个业务环节对应的初代测试脚本进行组合,生成每个测试案例对应的初代测试脚本。
上文已经描述,在以界面操作为单位进行拆分,获得每个测试案例对应的一个或多个业务环节之后,还可以确定每个业务环节在每个测试案例中的流程顺序。因此,可以按照每个业务环节在每个测试案例中流程顺序,将每个业务环节对应的初代测试脚本进行组合,生成每个测试案例对应的初代测试脚本。如案例1包含的业务环节k1至k5,且在案例1中的流程顺序为k1、k5、k4、k3、k2。得到k1、k2和k5对应的初代测试脚本均为第一测试脚本,k3和k4对应的初代测试脚本均为第二测试脚本,即k1、k2和k5对应的脚本编码均为0,k3和k4对应的脚本编码均为1,那么案例1对应的初代测试脚本为00110。
综上,本发明实施例的生成测试脚本的方法中,在基于遗传算法进行脚本选择之前,确定每个测试案例对应的初代测试脚本,即建立遗传算法的初代样本,避免了遗传算法执行时间过长,提高算法收敛速度。以及,在确定每个业务环节对应的初代测试脚本的过程中,对于不能正常执行的业务环节,采用递减检验进行随机样本生成该业务环节对应的初代测试脚本,使得业务环节的脚本选择具备强指向性,避免了基于遗传算法进行脚本选择时的局部最优问题。
(2)根据当前批次的测试案例对应的初代测试脚本,基于遗传算法进行迭代训练,确定每个业务环节对应的最优测试脚本。
基于遗传算法,确定每个业务环节的最优测试脚本选择。所有业务环节对应初代测试脚本编辑完成后,以业务环节在测试案例中的流程顺序,组成每个测试案例对应的初代测试脚本,即得到遗传算法对应的初代样本。以及,遗传算法的适应性函数为:以当前脚本选择条件下,所有测试案例对应的整体测试成功率。经历遗传算法迭代训练后,确认整体成功率最高的业务环节的脚本类型组合。通过遗传算法选取的最优测试脚本可有效逼近真实最优样本,经过遗传算法调整脚本构成也可一定程度上缓解界面变化导致的脚本失败。
另外,需要注意的是,对于每个测试案例来说,在得到该测试案例对应的初代测试脚本过程中,可以将该案例中的重复业务环节去除掉。
图2是根据本发明实施例的基于遗传算法确定业务环节对应的最优测试脚本的主要过程的示意图。如图2所示,基于遗传算法确定业务环节对应的最优测试脚本的主要过程可以包括:
步骤S201:利用测试数据对每个业务环节对应的第一测试脚本进行验证;
步骤S202:若验证成功,则确定每个业务环节对应的第一测试脚本为每个业务环节对应的初代测试脚本;
步骤S203:若验证失败,则利用递减检验的随机采样方式,生成每个业务环节对应的初代测试脚本;
步骤S204:按照每个业务环节在每个测试案例中流程顺序,将每个业务环节对应的初代测试脚本进行组合,生成每个测试案例对应的初代测试脚本;
步骤S205:根据每个测试案例对应的初代测试脚本,得到当前批次的测试案例对应的初代测试脚本;
步骤S206:根据当前批次的测试案例对应的初代测试脚本,基于遗传算法进行迭代训练,确定每个业务环节对应的最优测试脚本。
上述步骤S201至步骤S203是指对一个或多个业务环节中的每个业务环节进行分析,得到每个业务环节对应的初代测试脚本。具体地,(1)随机选择一个业务环节,利用测试数据对选择的该业务环节对应的第一测试脚本进行验证;(2)如果验证成功,则确定该业务环节对应的第一测试脚本为该业务环节对应的初代测试脚本;(2)如果验证失败,则利用递减检验的随机采样方式,生成该业务环节对应的初代测试脚本;(4)通过上述(1)至(3),得到每个业务环节对应的初代测试脚本。
本发明实施例中,在基于代码定位生成业务环节对应的第一测试脚本和基于模式识别生成业务环节对应的第二测试脚本后,可以从第一测试脚本和第二测试脚本中,利用遗传算法进行测试脚本选择,得到业务环节对应的最优测试脚本,以便后续得到测试案例对应的目标测试脚本。一方面,模式识别方法可减小界面变化对测试案例的影响,在部分情况下界面变化后测试脚本仍可执行成功,减轻测试脚本维护的负担;另一方面,遗传算法可在追求整体测试成功率的前提下,最大程度减少模式识别方法的缺点对测试结果的影响,最终实现可应用于敏捷版本的自动化回归测试脚本。
作为本发明的实施例,在生成当前批次的测试案例对应的目标测试脚本之后,还可以利用测试数据执行目标测试脚本,获取执行成功率,判断执行成功率是否大于预设成功率阈值;若是,则确定测试通过;若否,则对目标测试脚本进行人工校正。
进一步地,对目标测试脚本进行人工校正,可以包括:获取目标测试脚本包含的异常脚本,其中,异常脚本为执行失败的业务环节对应的脚本;若异常脚本为第一测试脚本,则对异常脚本进行人工校正;以及,若界面元素发生改变,则调整用于模式识别的图像库。
基于遗传算法迭代产生的目标测试脚本,代表当前可自动调整的执行成功率最高的方案。如果成功率无法达标,则需人工校正。案例对应的目标测试脚本是由该案例包含的各业务环节对应的最优测试脚本组成的。在成功率无法达标的情况下,需要确定执行失败的业务环节,获取目标测试脚本中该执行失败的业务环节对应的脚本,即异常脚本。如果异常脚本为第一测试脚本,那么可以对异常脚本进行人工校正,即可以人工校正通过代码定位得到的异常脚本。此外,如界面元素样式发生改变,那么需要调整模式识别存储的图像库信息。以及,需要根据实际情况设置预设成功率阈值,一般情况下,需要将其设定为使人工校正发生于产品版本的开发中期,从而可以确用户回归测试任务被测试脚本精准覆盖。
另外,本发明实施例的生成测试脚本的方法还可以包括:根据需求,对目标测试脚本包含的异常脚本进行修正。对银行前端产品而言,除正常维护流程外,在空闲时段可以先于***提醒维护出错脚本;或在产品版本设计评审阶段,提早沟通前端、后台改造,可调配维护资源,缓解自动化测试压力。
图3是根据本发明实施例的生成测试脚本的方法的主要流程的示意图。如图3所示,生成测试脚本的方法的主要流程可以包括:
步骤S301:对当前批次的测试案例中的每个测试案例,以界面操作为单位进行拆分,获得每个测试案例对应的一个或多个业务环节,且确定每个业务环节在每个测试案例中的流程顺序,以得到当前批次的测试案例对应的业务环节;
步骤S302:基于代码定位实现每个业务环节,生成每个业务环节对应的第一测试脚本,以及基于模式识别实现每个业务环节,生成每个业务环节对应的第二测试脚本;
步骤S303:利用测试数据对每个业务环节对应的第一测试脚本进行验证;
步骤S304:若验证成功,则确定每个业务环节对应的第一测试脚本为每个业务环节对应的初代测试脚本;
步骤S305:若验证失败,则利用递减检验的随机采样方式,生成每个业务环节对应的初代测试脚本;
步骤S306:按照每个业务环节在每个测试案例中流程顺序,将每个业务环节对应的初代测试脚本进行组合,生成每个测试案例对应的初代测试脚本;
步骤S307:根据每个测试案例对应的初代测试脚本,得到当前批次的测试案例对应的初代测试脚本;
步骤S308:根据当前批次的测试案例对应的初代测试脚本,基于遗传算法进行迭代训练,确定每个业务环节对应的最优测试脚本;
步骤S309:根据业务环节对应的最优测试脚本,生成当前批次的测试案例对应的目标测试脚本;
步骤S310:利用测试数据执行目标测试脚本,获取目标测试脚本的执行成功率,判断执行成功率是否大于预设成功率阈值,若是,则执行步骤S311,若否,则执行步骤S312;
步骤S311:确定测试通过;
步骤S312:获取目标测试脚本包含的异常脚本,其中,异常脚本为执行失败的业务环节对应的脚本;
步骤S313:若异常脚本为第一测试脚本,则对异常脚本进行人工校正,以及若界面元素发生改变,则调整用于模式识别的图像库,以得到新的目标测试脚本;
步骤S314:利用目标测试脚本进行测试。
其中,步骤S303至步骤S305是指对一个或多个业务环节中的每个业务环节进行分析,得到每个业务环节对应的初代测试脚本,已经通过上述步骤S201至步骤S203具体说明,此处不再详细说明。此外,本发明实施例的生成测试脚本的方法还可以包括:根据需求,对目标测试脚本包含的异常脚本进行修正。
从本发明实施例的生成测试脚本的技术方案得知,可以基于代码定位生成业务环节对应的第一测试脚本和基于模式识别生成业务环节对应的第二测试脚本,然后利用遗传算法进行测试脚本选择,得到业务环节对应的最优测试脚本,进而得到测试案例对应的目标测试脚本,实现了通过遗传算法将代码定位方法和模式识别方法结合起来,使得生成的目标测试脚本具备灵活性和准确性的特点,达到了以模式识别方法辅助代码定位方法生成测试脚本的效果,容错率高,维护成本可控,并且利用遗传算法能够最大程度保留目标测试脚本中第一测试脚本所占比例,降低了算法搜索时间,提高了目标测试脚本的有效性。
图4是根据本发明实施例的生成测试脚本的装置的主要模块的示意图。如图4所示,生成测试脚本的装置400的主要模块可以包括:拆分模块401、获取模块402、确定模块403和生成模块404。
其中,拆分模块401可用于:对当前批次的测试案例进行拆分,获得当前批次的测试案例对应的业务环节;获取模块402可用于:获取业务环节对应的第一测试脚本和第二测试脚本,其中,第一测试脚本为基于代码定位生成的测试脚本,第二测试脚本为基于模式识别生成的测试脚本;确定模块403可用于:根据业务环节对应的第一测试脚本和第二测试脚本,基于遗传算法,确定业务环节对应的最优测试脚本;生成模块404可用于:根据业务环节对应的最优测试脚本,生成当前批次的测试案例对应的目标测试脚本。
作为本发明的实施例,拆分模块401还可用于:对当前批次的测试案例中的每个测试案例,以界面操作为单位进行拆分,获得每个测试案例对应的一个或多个业务环节,以得到当前批次的测试案例对应的业务环节。
作为本发明的实施例,获取模块402还可用于:针对每个测试案例对应的一个或多个业务环节中的每个业务环节,基于代码定位实现每个业务环节,生成每个业务环节对应的第一测试脚本;基于模式识别实现每个业务环节,生成每个业务环节对应的第二测试脚本。
作为本发明的实施例,确定模块403还可用于:根据每个业务环节对应的第一测试脚本和每个业务环节对应的第二测试脚本,生成每个测试案例对应的初代测试脚本,以得到当前批次的测试案例对应的初代测试脚本;根据当前批次的测试案例对应的初代测试脚本,基于遗传算法进行迭代训练,确定每个业务环节对应的最优测试脚本;其中,遗传算法的适应性函数为测试案例对应的整体测试成功率。
作为本发明的实施例,确定模块403还可用于:利用测试数据对每个业务环节对应的第一测试脚本进行验证;若验证成功,则确定每个业务环节对应的第一测试脚本为每个业务环节对应的初代测试脚本,若验证失败,则利用递减检验的随机采样方式,生成每个业务环节对应的初代测试脚本;根据每个业务环节对应的初代测试脚本,生成每个测试案例对应的初代测试脚本。
作为本发明的实施例,拆分模块401还可用于:确定每个业务环节在每个测试案例中的流程顺序;以及,确定模块还用于:按照每个业务环节在每个测试案例中流程顺序,将每个业务环节对应的初代测试脚本进行组合,生成每个测试案例对应的初代测试脚本。
作为本发明的实施例,生成模块404还可用于:利用测试数据执行目标测试脚本,获取执行成功率,判断执行成功率是否大于预设成功率阈值;若是,则确定测试通过;若否,则对目标测试脚本进行人工校正。
作为本发明的实施例,生成模块404还可用于:获取目标测试脚本包含的异常脚本,其中,异常脚本为执行失败的业务环节对应的脚本;若异常脚本为第一测试脚本,则对异常脚本进行人工校正;以及,若界面元素发生改变,则调整用于模式识别的图像库。
作为本发明的实施例,生成模块404还可用于:根据需求,对目标测试脚本包含的异常脚本进行修正。
根据本发明实施例的生成测试脚本的装置,可以基于代码定位生成业务环节对应的第一测试脚本和基于模式识别生成业务环节对应的第二测试脚本,然后利用遗传算法进行测试脚本选择,得到业务环节对应的最优测试脚本,进而得到测试案例对应的目标测试脚本,实现了通过遗传算法将代码定位方法和模式识别方法结合起来,使得生成的目标测试脚本具备灵活性和准确性的特点,达到了以模式识别方法辅助代码定位方法生成测试脚本的效果,容错率高,维护成本可控,并且利用遗传算法能够最大程度保留目标测试脚本中第一测试脚本所占比例,降低了算法搜索时间,提高了目标测试脚本的有效性。
图5示出了可以应用本发明实施例的生成测试脚本的方法或生成测试脚本的装置的示例性***架构500。
如图5所示,***架构500可以包括终端设备501、502、503,网络504和服务器505。网络504用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发送消息等。终端设备501、502、503可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器505可以是提供各种服务的服务器,例如对作为用户利用终端设备501、502、503进行脚本生成的过程中,提供支持的后台管理服务器(仅为示例);再例如,服务器505可以完成本发明实施例的脚本生成。
需要说明的是,本发明实施例所提供的生成测试脚本的方法一般由服务器505执行,相应地,生成测试脚本的装置一般设置于服务器505中。
应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图6,其示出了适于用来实现本发明实施例的终端设备的计算机***600的结构示意图。图6示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机***600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有***600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本发明的***中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括拆分模块、获取模块、确定模块和生成模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,拆分模块还可以被描述为“按照业务流程对当前批次的测试案例进行拆分,获得当前批次的测试案例对应的业务环节的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:按照业务流程对当前批次的测试案例进行拆分,获得当前批次的测试案例对应的业务环节;获取业务环节对应的第一测试脚本和第二测试脚本,其中,第一测试脚本为基于代码定位生成的测试脚本,第二测试脚本为基于模式识别生成的测试脚本;根据业务环节对应的第一测试脚本和第二测试脚本,基于遗传算法,确定业务环节对应的最优测试脚本;根据业务环节对应的最优测试脚本,生成当前批次的测试案例对应的目标测试脚本。
根据本发明实施例的技术方案,可以基于代码定位生成业务环节对应的第一测试脚本和基于模式识别生成业务环节对应的第二测试脚本,然后利用遗传算法进行测试脚本选择,得到业务环节对应的最优测试脚本,进而得到测试案例对应的目标测试脚本,实现了通过遗传算法将代码定位方法和模式识别方法结合起来,使得生成的目标测试脚本具备灵活性和准确性的特点,达到了以模式识别方法辅助代码定位方法生成测试脚本的效果,容错率高,维护成本可控,并且利用遗传算法能够最大程度保留目标测试脚本中第一测试脚本所占比例,降低了算法搜索时间,提高了目标测试脚本的有效性。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (18)
1.一种生成测试脚本的方法,其特征在于,包括:
对当前批次的测试案例进行拆分,获得所述当前批次的测试案例对应的业务环节;
获取所述业务环节对应的第一测试脚本和第二测试脚本,其中,所述第一测试脚本为基于代码定位生成的测试脚本,所述第二测试脚本为基于模式识别生成的测试脚本;
根据所述业务环节对应的第一测试脚本和第二测试脚本,基于遗传算法,确定所述业务环节对应的最优测试脚本;
根据所述业务环节对应的最优测试脚本,生成所述当前批次的测试案例对应的目标测试脚本。
2.根据权利要求1所述的方法,其特征在于,所述对当前批次的测试案例进行拆分,获得所述当前批次的测试案例对应的业务环节,包括:
对所述当前批次的测试案例中的每个测试案例,以界面操作为单位进行拆分,获得所述每个测试案例对应的一个或多个业务环节,以得到所述当前批次的测试案例对应的业务环节。
3.根据权利要求2所述的方法,其特征在于,所述获取所述业务环节对应的第一测试脚本和第二测试脚本,包括:
针对所述每个测试案例对应的一个或多个业务环节中的每个业务环节,基于代码定位实现所述每个业务环节,生成所述每个业务环节对应的第一测试脚本;基于模式识别实现所述每个业务环节,生成所述每个业务环节对应的第二测试脚本。
4.根据权利要求3所述的方法,其特征在于,所述根据所述业务环节对应的第一测试脚本和第二测试脚本,基于遗传算法,确定所述业务环节对应的最优测试脚本,包括:
根据所述每个业务环节对应的第一测试脚本和所述每个业务环节对应的第二测试脚本,生成所述每个测试案例对应的初代测试脚本,以得到所述当前批次的测试案例对应的初代测试脚本;
根据所述当前批次的测试案例对应的初代测试脚本,基于遗传算法进行迭代训练,确定所述每个业务环节对应的最优测试脚本;其中,
所述遗传算法的适应性函数为测试案例对应的整体测试成功率。
5.根据权利要求4所述的方法,其特征在于,所述根据所述每个业务环节对应的第一测试脚本和所述每个业务环节对应的第二测试脚本,生成所述每个测试案例对应的初代测试脚本,包括:
利用测试数据对所述每个业务环节对应的第一测试脚本进行验证;
若验证成功,则确定所述每个业务环节对应的第一测试脚本为所述每个业务环节对应的初代测试脚本,若验证失败,则利用递减检验的随机采样方式,生成所述每个业务环节对应的初代测试脚本;
根据所述每个业务环节对应的初代测试脚本,生成所述每个测试案例对应的初代测试脚本。
6.根据权利要求5所述的方法,其特征在于,在以界面操作为单位进行拆分,获得所述每个测试案例对应的一个或多个业务环节之后,所述方法还包括:确定所述每个业务环节在所述每个测试案例中的流程顺序;以及,
所述根据所述每个业务环节对应的初代测试脚本,生成所述每个测试案例对应的初代测试脚本,包括:
按照所述每个业务环节在所述每个测试案例中流程顺序,将所述每个业务环节对应的初代测试脚本进行组合,生成所述每个测试案例对应的初代测试脚本。
7.根据权利要求1所述的方法,其特征在于,在生成所述当前批次的测试案例对应的目标测试脚本之后,所述方法还包括:
利用测试数据执行所述目标测试脚本,获取执行成功率,判断所述执行成功率是否大于预设成功率阈值;
若是,则确定测试通过;
若否,则对所述目标测试脚本进行人工校正。
8.根据权利要求7所述的方法,其特征在于,所述对所述目标测试脚本进行人工校正,包括:
获取所述目标测试脚本包含的异常脚本,其中,所述异常脚本为执行失败的业务环节对应的脚本;
若所述异常脚本为第一测试脚本,则对所述异常脚本进行人工校正;以及,
若界面元素发生改变,则调整用于模式识别的图像库。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据需求,对所述目标测试脚本包含的异常脚本进行修正。
10.一种生成测试脚本的装置,其特征在于,包括:
拆分模块,用于对当前批次的测试案例进行拆分,获得所述当前批次的测试案例对应的业务环节;
获取模块,用于获取所述业务环节对应的第一测试脚本和第二测试脚本,其中,所述第一测试脚本为基于代码定位生成的测试脚本,所述第二测试脚本为基于模式识别生成的测试脚本;
确定模块,用于根据所述业务环节对应的第一测试脚本和第二测试脚本,基于遗传算法,确定所述业务环节对应的最优测试脚本;
生成模块,用于根据所述业务环节对应的最优测试脚本,生成所述当前批次的测试案例对应的目标测试脚本。
11.根据权利要求10所述的装置,其特征在于,所述拆分模块还用于:
对所述当前批次的测试案例中的每个测试案例,以界面操作为单位进行拆分,获得所述每个测试案例对应的一个或多个业务环节,以得到所述当前批次的测试案例对应的业务环节。
12.根据权利要求11所述的装置,其特征在于,所述获取模块还用于:
针对所述每个测试案例对应的一个或多个业务环节中的每个业务环节,基于代码定位实现所述每个业务环节,生成所述每个业务环节对应的第一测试脚本;基于模式识别实现所述每个业务环节,生成所述每个业务环节对应的第二测试脚本。
13.根据权利要求12所述的装置,其特征在于,所述确定模块还用于:
根据所述每个业务环节对应的第一测试脚本和所述每个业务环节对应的第二测试脚本,生成所述每个测试案例对应的初代测试脚本,以得到所述当前批次的测试案例对应的初代测试脚本;
根据所述当前批次的测试案例对应的初代测试脚本,基于遗传算法进行迭代训练,确定所述每个业务环节对应的最优测试脚本;其中,所述遗传算法的适应性函数为测试案例对应的整体测试成功率。
14.根据权利要求13所述的装置,其特征在于,所述确定模块还用于:
利用测试数据对所述每个业务环节对应的第一测试脚本进行验证;
若验证成功,则确定所述每个业务环节对应的第一测试脚本为所述每个业务环节对应的初代测试脚本,若验证失败,则利用递减检验的随机采样方式,生成所述每个业务环节对应的初代测试脚本;
根据所述每个业务环节对应的初代测试脚本,生成所述每个测试案例对应的初代测试脚本。
15.根据权利要求10所述的装置,其特征在于,所述生成模块还用于:
利用测试数据执行所述目标测试脚本,获取执行成功率,判断所述执行成功率是否大于预设成功率阈值;
若是,则确定测试通过;
若否,则对所述目标测试脚本进行人工校正。
16.根据权利要求15所述的装置,其特征在于,所述生成模块还用于:
获取所述目标测试脚本包含的异常脚本,其中,所述异常脚本为执行失败的业务环节对应的脚本;
若所述异常脚本为第一测试脚本,则对所述异常脚本进行人工校正;以及,
若界面元素发生改变,则调整用于模式识别的图像库。
17.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-9中任一所述的方法。
18.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-9中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110322558.1A CN112905485A (zh) | 2021-03-25 | 2021-03-25 | 一种生成测试脚本的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110322558.1A CN112905485A (zh) | 2021-03-25 | 2021-03-25 | 一种生成测试脚本的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112905485A true CN112905485A (zh) | 2021-06-04 |
Family
ID=76106589
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110322558.1A Pending CN112905485A (zh) | 2021-03-25 | 2021-03-25 | 一种生成测试脚本的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112905485A (zh) |
-
2021
- 2021-03-25 CN CN202110322558.1A patent/CN112905485A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109726093B (zh) | 用于执行测试用例的方法、设备和计算机程序产品 | |
CN108459964B (zh) | 测试用例选择方法、装置、设备以及计算机可读存储介质 | |
CN113138927B (zh) | 一种软件功能测试方法和装置 | |
CN110673936B (zh) | 编排业务的断点续作方法、装置、存储介质及电子设备 | |
CN110960855B (zh) | 一种通信协议代码更新方法、装置、电子设备及存储介质 | |
CN109977012B (zh) | ***的联调测试方法、装置、设备及计算机可读存储介质 | |
CN110858172A (zh) | 一种自动化测试代码生成方法和装置 | |
CN112148582A (zh) | 策略测试方法及装置、计算机可读介质和电子设备 | |
CN113010405A (zh) | 一种应用程序的测试方法和装置 | |
US11663113B2 (en) | Real time fault localization using combinatorial test design techniques and test case priority selection | |
CN113448869B (zh) | 测试用例生成的方法、装置、电子设备及计算机可读介质 | |
CN107229565B (zh) | 测试方法和装置 | |
CN112988578A (zh) | 一种自动化测试方法和装置 | |
US11740827B2 (en) | Method, electronic device, and computer program product for recovering data | |
CN111506904B (zh) | 漏洞在线修复的方法和装置 | |
CN116303106A (zh) | 一种适用金融行业的基于GitFlow软件版本快速回滚方法及*** | |
CN113360365A (zh) | 一种流程测试方法和流程测试*** | |
CN110609786A (zh) | 软件测试方法、装置、计算机设备和存储介质 | |
CN112905485A (zh) | 一种生成测试脚本的方法和装置 | |
CN115964302A (zh) | 一种数据测试的方法和装置 | |
CN112965910B (zh) | 自动化回归测试方法、装置、电子设备、存储介质 | |
US11030087B2 (en) | Systems and methods for automated invocation of accessibility validations in accessibility scripts | |
CN111176718A (zh) | 脚本上线方法、装置、存储介质及电子设备 | |
CN113268426A (zh) | 一种应用测试方法、装置、计算机设备及存储介质 | |
CN113312900A (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 |