CN110502432A - 智能测试方法、装置、设备及可读存储介质 - Google Patents
智能测试方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN110502432A CN110502432A CN201910667875.XA CN201910667875A CN110502432A CN 110502432 A CN110502432 A CN 110502432A CN 201910667875 A CN201910667875 A CN 201910667875A CN 110502432 A CN110502432 A CN 110502432A
- Authority
- CN
- China
- Prior art keywords
- test cases
- data
- test
- algorithm
- original
- 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
Links
- 238000010998 test method Methods 0.000 title claims abstract description 35
- 238000003860 storage Methods 0.000 title claims abstract description 17
- 238000012360 testing method Methods 0.000 claims abstract description 616
- 238000000034 method Methods 0.000 claims abstract description 55
- 238000004140 cleaning Methods 0.000 claims abstract description 40
- 230000007787 long-term memory Effects 0.000 claims abstract description 23
- 239000000284 extract Substances 0.000 claims abstract description 16
- 238000012545 processing Methods 0.000 claims abstract description 13
- 238000012549 training Methods 0.000 claims description 24
- 230000015654 memory Effects 0.000 claims description 11
- 238000010606 normalization Methods 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 2
- 238000013473 artificial intelligence Methods 0.000 abstract description 4
- 208000016253 exhaustion Diseases 0.000 description 22
- 238000010586 diagram Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 11
- 238000005406 washing Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 239000012141 concentrate Substances 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 239000012085 test solution Substances 0.000 description 1
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/3676—Test management for coverage analysis
-
- 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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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/3692—Test management for test results analysis
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及人工智能技术领域,公开了一种智能测试方法,包括以下步骤:采用清洗算法对原始测试案例数据进行清洗,得到测试案例数据;通过预置计算路径的算法集中的各个算法,对测试案例数据进行训练,得到按照预置计算路径处理测试案例数据的算法;通过随机算法随机获取测试案例数据,提取所述测试案例数据中的关键字,根据关键字拓展测试案例数据,得到拓展数据集;通过长短期记忆网络对拓展数据集进行处理,得到待执行测试案例集;通过穷举法对待执行测试案例集进行拓展;执行测试案例,得到测试结果。本发明还公开了一种智能测试装置、设备及计算机可读存储介质。本发明提供的智能测试方法解决了测试质量低下的技术问题。
Description
技术领域
本发明涉及人工智能技术领域,尤其涉及一种智能测试方法、装置、设备及计算机可读存储介质。
背景技术
目前,在现实场景中基于项目时间有限、人力有限的客观原因,因此在人工设计测试案例的时候不可能考虑到所有的情况,所以一般都是测试人员根据分析或者经验对重点案例进行设计和测试,测试案例覆盖率低,从而导致测试质量低下。
发明内容
本发明的主要目的在于提供一种智能测试方法、装置、设备及计算机可读存储介质,旨在解决测试质量低下的技术问题。
为实现上述目的,本发明提供一种智能测试方法,所述智能测试方法包括以下步骤:
依次遍历原始测试案例数据,采用对应的预置清洗算法对所述原始测试案例数据进行清洗,得到测试案例数据;
通过所述测试案例数据依次对预置计算路径的初始待选算法进行训练,得到待选算法,所述待选算法至少包括:长短期记忆网络的算法、穷举法、随机算法;
通过随机算法随机获取测试案例数据,提取所述测试案例数据中的关键字,根据所述关键字拓展所述测试案例数据,得到拓展数据集;
通过长短期记忆网络对所述拓展数据集进行处理,得到待执行测试案例集;
判断所述待执行测试案例集中测试案例的数量是否小于当前测试场景所需的测试案例数量;
若所述待执行测试案例数量小于当前测试场景所需的测试案例数量,则通过穷举法对所述待执行测试案例进行拓展,直至所述待执行测试案例数量大于或等于当前测试场景所需的测试案例数量,若所述待执行测试案例数量大于或等于当前测试场景所需的测试案例数量,则不处理;
依次执行所述待执行测试案例集中的测试案例,得到测试结果。
可选地,所述通过随机算法随机获取测试案例数据,提取所述测试案例数据中的关键字,根据所述关键字拓展所述测试案例数据,得到拓展数据集包括:
通过随机算法随机获取测试案例数据;
通过词频和反向词频算法对所述测试案例数据中的关键字进行提取,得到第一关键字;
通过哈希算法将所述第一关键字与预置关键词词库中的预置关键字进行匹配,得到第二关键字,以及替换所述第一关键字,得到拓展数据集。
可选地,所述根据所述原始测试案例数据的数据类型,采用对应的预置清洗算法对所述原始测试案例数据进行清洗,得到测试案例数据包括:
判断所述原始测试案例数据的数据类型是否为数值型;
若所述原始测试案例数据的数据类型为数值型,则采用归一化算法对所述原始测试案例数据进行处理,若所述原始测试案例数据的数据类型为非数值型,则判断所述原始测试案例数据的数据类型是否为类别型;
若所述原始测试案例数据的数据类型为类别型,则采用离散化算法对所述原始测试案例数据进行处理,若所述原始测试案例数据的数据类型为非类别型,则判断所述原始测试案例数据的数据类型是否为时间型;
若所述原始测试案例数据的数据类型为时间型,则采用时间划分法对所述原始测试案例数据进行处理,若若所述原始测试案例数据的数据类型为非时间型,则不处理。
可选地,所述智能测试方法,还包括:
判断清洗后的原始测试案例数据是否存在缺失值;
若所述清洗后的原始测试案例数据存在缺失值,则采用K近邻算法对缺失值进行插补,若所述清洗后的原始测试案例数据不存在缺失值,则不处理。
可选地,所述智能测试方法,还包括:
通过长短期记忆网络对测试案例数据进行处理,得到第一测试案例;
判断所述第一测试案例的数量是否小于当前测试场景对测试案例数量的需求量;
若所述第一测试案例的数量小于当前测试场景对测试案例数量的需求量,则通过穷举法对所述第一测试案例进行拓展,得到第二测试案例集,若所述第一测试案例的数量大于或等于当前测试场景对测试案例数量的需求量,则不处理;
通过随机算法获取所述第二测试案例集中的测试案例,提取所述测试案例中的关键字,根据所述关键字对所述测试案例进行拓展,得到待执行测试案例。
可选地,所述智能测试方法,还包括:
通过预先构建的junit单元测试框架对测试案例数据的代码进行检测,得到测试案例数据的代码覆盖率;
判断所述测试案例数据的代码覆盖率是否小于预设覆盖率;
若所述测试案例数据的代码覆盖率小于预设覆盖率,则继续根据所述预置计算路径的算法集对测试案例数据进行训练,直至输出的测试案例数据的代码覆盖率大于或等于预设覆盖率,若所述测试案例数据的代码覆盖率大于或等于预设覆盖率,则不处理。
进一步地,为实现上述目的,本发明还提供一种智能测试装置,所述智能测试装置包括:
清洗模块,用于依次遍历原始测试案例数据,采用对应的预置清洗算法对所述原始测试案例数据进行清洗,得到测试案例数据;
第一训练模块,用于通过所述测试案例数据依次对预置计算路径的初始待选算法进行训练,得到待选算法;
第一拓展模块,用于通过随机算法随机获取测试案例数据,提取所述测试案例数据中的关键字,根据所述关键字拓展所述测试案例数据,得到拓展数据集;
第一处理模块,用于通过长短期记忆网络对所述拓展数据集进行处理,得到待执行测试案例集;
第一判断模块,用于判断所述待执行测试案例集中测试案例的数量是否小于当前测试场景所需的测试案例数量;
第二拓展模块,用于若待执行测试案例数量小于当前测试场景所需的测试案例数量,则通过穷举法对所述待执行测试案例进行拓展,直至所述待执行测试案例数量大于或等于当前测试场景所需的测试案例数量;
执行模块,用于依次执行所述待执行测试案例集中的测试案例,得到测试结果。
可选地,所述第一拓展模块包括:
获取单元,用于通过随机算法随机获取测试案例数据;
提取单元,用于通过词频和反向词频算法对所述测试案例数据中的关键字进行提取,得到第一关键字;
匹配单元,用于通过哈希算法将所述第一关键字与预置关键词词库中的预置关键字进行匹配,得到第二关键字,以及替换所述第一关键字,得到拓展数据集。
可选地,所述清洗模块具体包括:
分类单元,用于依次遍历所述原始测试案例数据,并对所述原始测试案例数据进行分类,得到所述原始测试案例数据的数据类型,所述数据类型包括:数值型、类别型和时间型;
清洗单元,用于根据所述原始测试案例数据的数据类型,采用对应的预置清洗算法对所述原始测试案例数据进行清洗,得到测试案例数据。
可选地,所述清洗单元具体用于:
判断所述原始测试案例数据的数据类型是否为数值型;
若所述原始测试案例数据的数据类型为数值型,则采用归一化算法对所述原始测试案例数据进行处理,若所述原始测试案例数据的数据类型为非数值型,则判断所述原始测试案例数据的数据类型是否为类别型;
若所述原始测试案例数据的数据类型为类别型,则采用离散化算法对所述原始测试案例数据进行处理,若所述原始测试案例数据的数据类型为非类别型,则判断所述原始测试案例数据的数据类型是否为时间型;
若所述原始测试案例数据的数据类型为时间型,则采用时间划分法对所述原始测试案例数据进行处理,若否,则不处理。
可选地,所述智能测试装置法,还包括:
第二判断模块,用于判断清洗后的原始测试案例数据是否存在缺失值;
插补模块,用于若所述清洗后的原始测试案例数据存在缺失值,则采用K近邻算法对缺失值进行插补。
可选地,所述智能测试装置法,还包括:
第二处理模块,用于通过长短期记忆网络对测试案例数据进行处理,得到第一测试案例;
第三判断模块,用于判断所述第一测试案例的数量是否小于当前测试场景对测试案例数量的需求量;
第三拓展模块,用于若所述第一测试案例的数量小于当前测试场景对测试案例数量的需求量,则通过穷举法对所述第一测试案例进行拓展,得到第二测试案例集;
第四拓展模块,用于通过随机算法获取所述第二测试案例集中的测试案例,提取所述测试案例中的关键字,根据所述关键字对所述测试案例进行拓展,得到待执行测试案例。
可选地,所述智能测试方法,还包括:
检测模块,用于通过预先构建的junit单元测试框架对测试案例数据的代码进行检测,得到测试案例数据的代码覆盖率;
第四判断模块,用于判断所述测试案例数据的代码覆盖率是否小于预设覆盖率;
第二训练模块,用于若所述测试案例数据的代码覆盖率小于预设覆盖率,则继续根据所述预置计算路径的算法集对测试案例数据进行训练,直至输出的测试案例数据的代码覆盖率大于或等于预设覆盖率。
进一步地,为实现上述目的,本发明还提供一种智能测试设备,所述智能测试设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的智能测试程序,所述智能测试程序被所述处理器执行时实现如上述任一项所述的智能测试方法的步骤。
进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有智能测试程序,所述智能测试程序被处理器执行时实现如上述任一项所述的智能测试方法的步骤。
本发明通过测试案例模型可根据穷举法生成大量的测试案例,因此可以适应多种测试场景,另外,采用随机算法对获取的测试案例进行解析,以适应更多的实际场景,增加测试的准确度。另外,对测试案例的覆盖率进行了限定,每次通过测试案例模型生成测试案例后,都要检测覆盖率,通过检测覆盖率,可以使新生成的测试案例完全覆盖原来的测试案例,并且还可以根据测试案例覆盖率不断优化测试案例模型生成测试案例的准确度,解决了测试案例覆盖率低,测试质量低下的技术问题。
附图说明
图1为本发明实施例方案涉及的智能测试设备运行环境的结构示意图;
图2为本发明智能测试方法第一实施例的流程示意图;
图3为图2中步骤S30的细化流程示意图;
图4为图2中步骤S10的细化流程示意图:
图5为图4中步骤S102的细化流程示意图;
图6为本发明智能测试方法第二实施例的流程示意图;
图7为本发明智能测试方法第三实施例的流程示意图;
图8为本发明智能测试方法第四实施例的流程示意图;
图9为本发明智能测试装置一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提供一种智能测试设备。
参照图1,图1为本发明实施例方案涉及的智能测试设备运行环境的结构示意图。
如图1所示,该智能测试设备包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的智能测试设备的硬件结构并不构成对智能测试设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作***、网络通信模块、用户接口模块以及智能测试程序。其中,操作***是管理和控制智能测试设备和软件资源的程序,支持智能测试程序以及其它软件和/或程序的运行。
在图1所示的智能测试设备的硬件结构中,网络接口1004主要用于接入网络;用户接口1003主要用于侦测确认指令和编辑指令等。而处理器1001可以用于调用存储器1005中存储的智能测试程序,并执行以下智能测试方法的各实施例的操作。
基于上述智能测试设备硬件结构,提出本发明智能测试方法的各个实施例。
参照图2,图2为本发明智能测试方法一实施例的流程示意图。本实施例中,所述智能测试方法包括以下步骤:
步骤S10,依次遍历原始测试案例数据,采用对应的预置清洗算法对所述原始测试案例数据进行清洗,得到测试案例数据;
本实施例中,依次遍历原始测试案例数据,采用对应的预置清洗算法对所述原始测试案例数据进行清洗,得到测试案例数据,其中,为了减少无效的原始测试案例数据对测试结果的干扰,因此,在将原始测试案例输入测试案例训练算法之前,需要对数据进行清洗。清洗的方式不限,例如,根据预置的规则进行清洗,例如,规定清洗掉一组测试案例集中的带有空格的测试案例。数据清洗是指发现并纠正数据文件中可识别的错误的最后一道程序,包括检查数据一致性,处理无效值和缺失值等。
在这之前,需要采集原始测试案例数据,采集原始测试案例数据的方式不限,可以是通过预置的API接口进行采集。
步骤S20,通过所述测试案例数据依次对预置计算路径的初始待选算法进行训练,得到待选算法,所述待选算法至少包括:长短期记忆网络的算法、穷举法、随机算法;
本实施例中,基于深度学习框架tensorflow构建测试案例模型。tensorflow是用于表示某种类型的计算抽象(称为计算图)的框架。计算图内可以预置多种算法,计算图为执行的计算的模版,它列出了算法的步骤。为了使用计算图,设置会话,只有启动会话后,才输出计算结果。
在训练算法过程中,主要使用了tensorflow的梯度下降算法和反向传播算法。具体过程如下:
梯度下降算法的公式为:θ1=θ0-α▽J(θ),在公式中,J是关于θ的一个函数,θ0代表当前位置,θ1代表下一步位置,α在梯度下降算法中被称作为学习率或者步长,▽代表的是梯度下降最快的方向。这个公式整体的意思是,输入的数据,在当前所在的位置是θ0,经过一步或者多步(迭代),到达下一步位置θ1。例如,向测试案例训练算法中输入该案例:“输入账号ABC,密码:123,登录成功”,即公式中的当前位置θ0;第二次训练的时候,向测试案例训练算法中“输入账号abc,密码:123,登录成功”、“输入账号ABD,密码:123,登录失败”,其中由“输入账号abc,密码:123,登录成功”可知,通过一次训练,就可以得到新的测试案例,即公式中的学习率α,而输入账号abc,密码:123,登录成功”就是公式中的下一步位置θ1,“输入账号abc”指的是梯度下降最快的方向▽,“输入账号ABD”导致登录失败,则说明“输入账号ABD”是梯度下降最快的反方向,在本实施例中,训练测试案例训练算法的目的是,让测试案例训练算法学习到梯度下降最快的方向▽。测试案例训练算法就可以学习到在什么情况下可以登录成功,并且输出可以登录成功的测试案例。在本实施例中,主要就是通过输入的“输入账号ABC,密码:123,登录成功”,最终找到“输入账号ABC,密码:123,登录成功”,“输入账号abc,密码:123,登录成功”,“输入账号abc,密码:1 2 3,登录成功”。
但是,在训练测试案例训练算法的时候,需要经过多次调整步长,才能根据“输入账号ABC,密码:123,登录成功”找到“输入账号abc,密码:123,登录成功”,因此在本实施例中需要用到反向传播算法。
在使用梯度下降算法的时候,是先将测试案例的数据输入输入层,再经过隐藏层的处理,最终在输出层输出,例如,在输出层输出测试案例后,我们会参照预先设定的规则,即在账号和密码输入正确的情况下,无论账号和密码间是否出现出现空格,是否是大写形式,都可以登录成功。若输出的结果是“输入账号ABD,密码:123,登录成功”则与预先设定的规则不符,因为在这条测试案例中,账号是错误的,因此可以判定在隐藏层的节点出现了误差。那么就可以根据返向传播算法,去隐藏层的节点去寻找这个误差,并调整出现误差的节点所占的权重。例如,隐藏层目前有两个节点c和d,c节点经过对输入的“输入账号ABC,密码:123,登录成功”进行处理,根据梯度下降算法找到了“输入账号ABD,密码:123,登录成功”,d节点找到了“输入账号abc,密码:123,登录成功”,根据预设规则c节点所占的权重为60,d节点所占的权重为40,在输出时输出权重占比大的节点的结果,即经过归一算法处理后,输出“输入账号ABD,密码:123,登录成功”,但是根据预先设定的规则发现账号是错误的,因此不符预先设定的规则,所以要调用返向传播算法,调整c节点与d节点所占的权重,直至输出的结果符合预先设定的规则。
为了使测试案例训练算法可以尽可能多地学习到不同场景下的各种测试案例的数据,因此,需要采集大量的多维度的原始测试案例,可选地,这些原始测试案例集可以包含接口测试数据:调用接口:A、B、C、D、E,返回结果A-a,B-b,C-c,D-d,E-e,即每个接口返回值均为接口名称与其名称的小写的组合形式,根据这个规则去训练测试案例模型,当输入F时,返回结果为F-f,即可认为测试案例模型训练成功。
除此之外,还可以以各***日志数据、各***状态数据、链路信息数据、网络信息数据、报错***数据为原始测试案例数据,以训练测试案例训练算法。
步骤S30,通过随机算法随机获取测试案例数据,提取所述测试案例数据中的关键字,根据所述关键字拓展所述测试案例数据,得到拓展数据集;
本实施例中,采用随机算法解析测试案例数据,可以预先设置对关键字、数字、字符串的解析规则;解析规则包括:预先设置需要解析的关键字、数字、字符串;预先设置解析关键字、数字、字符串的方式。
例如,对于测试案例:“在对话框输入18时,调用18号接口”、“在对话框输入19时,调用19号接口”......“在对话框输入30时,调用30号接口”的测试案例,但是,这些测试案例并不能完全测试完毕实际场景中的接口是否都可以正常调用,因此,在本实施例中增加了随机算法,首先解析测试案例中第一个测试案例与最后一个测试案例中的数字,因此可以得到,“18”、“调用”、“30”,那么根据随机算法可以将“18”解析成“17”和“18”,“30”解析成“31”和“30”,这样在原来测试案例的基础上又增加了“在对话框输入17时,调用17号接口”和“在对话框输入31时,调用31号接口”,这样会测试的更加全面。
“18”与“30”为整个测试案例集的边界值,有了两个边界值,就可以查看超出这两个边界值后,是否还可以正常调用接口。
步骤S40,通过长短期记忆网络对所述拓展数据集进行处理,得到待执行测试案例集;
本实施例中,长短期记忆网络是预先训练好的,该长短期记忆网络可以对解析测试案例数据进行处理,然后得到待执行测试案例,长短期记忆网络的训练过程为:例如,测试案例解析数据为:123。长短期记忆网络可以根据初始权重得到测试案例“输入密码123,登录成功”,“输入密码123,登录失败”。要注意的是,这两个测试案例并非最终输出的待执行测试案例,根据人工测试结果可知,“输入密码123,登录成功”,这个案例是符合当前实际需求的,因此在本实施例中,还采用到了归一化算法,通过归一化算法对所述解析测试案例数据进行处理,得到“输入密码123,登录成功”的概率为20%,得到“输入密码123,登录失败”的概率为80%,由人工测试结果可知,需要“输入密码123,登录成功”的测试案例,但是“输入密码123,登录成功”的概率小于“输入密码123,登录失败”的概率,因此要输出测试案例“输入密码123,登录失败”,为了输出正确的测试案例,因此还需要通过反向传播算法调整输出“输入密码123,登录成功”与“输入密码123,登录失败”各自所占的权重,直至输出的结果为“输入密码123,登录成功”。
步骤S50,判断所述待执行测试案例集中测试案例的数量是否小于当前测试场景所需的测试案例数量;
本实施例中,当前测试场景所需的测试案例数量指的是,在进行测试时,要对不同的测试案例进行测试,若遗漏了某些重要的测试案例,则会造成测试结果不准确。比如,一个四位并且全部由数字组成的密码共有10000种组合,也就是说最多需要尝试9999次才能找到真正的密码。如果将该例子中的场景任务做成测试案例,则需要至少9999个测试案例,若仅有9998个测试案例,则有可能将重要的测试案例遗漏掉,从而影响了测试案例执行结果。
步骤S60,若所述待执行测试案例数量小于当前测试场景所需的测试案例数量,则通过穷举法对所述待执行测试案例进行拓展,直至所述待执行测试案例数量大于或等于当前测试场景所需的测试案例数量,若所述待执行测试案例数量大于或等于当前测试场景所需的测试案例数量,则不处理;
本实施例中,穷举法的作用是,根据当前场景拓展出符合场景需求的测试案例,例如,一个四位并且全部由数字组成的密码,如果通过人工的话则需要制作10000个测试案例,而通过穷举法的话,则可以将这10000个排列组合一一输出,根据大量的测试案例,可以使待执行测试案例数量大于当前测试场景所需的测试案例数量。在本实施例中若所述待执行测试案例数量小于当前测试场景所需的测试案例数量,则通过穷举法对所述待执行测试案例进行拓展,直至所述待执行测试案例数量大于或等于当前测试场景所需的测试案例数量,若否,则不处理。
步骤S70,依次执行所述待执行测试案例集中的测试案例,得到测试结果。
本实施例中,由于通过穷举法已将当前场景下的各种测试案例都穷举出来了,因此可以依次依次执行所述待执行测试案例集中的测试案例,得到测试结果,这样不会遗漏某些重要的测试案例。
由步骤S30可知,输入“在对话框输入19”,测试案例模型会生成“在对话框输入17时,调用17号接口”,“在对话框输入18时,调用18号接口”、“在对话框输入19时,调用19号接口”......“在对话框输入30时,调用30号接口”,“在对话框输入31时,调用31号接口”的测试案例。在本实施例中就需要执行这些测试案例,即检验在对话框输入17时,能否调用17号接口,在对话框输入18时,能否调用18号接口......在对话框输入31时,能否调用31号接口。并输出测试结果,例如,在对话框输入17时,不能调用17号接口,在对话框输入18时,能调用18号接口......在对话框输入31时,能调用31号接口。
参照图3,图3为图2中步骤S30的细化流程示意图。本实施例中,上述步骤S30具体包括以下步骤:
步骤S301,通过随机算法随机获取测试案例数据;
本实施例中,采用随机算法解析测试案例数据,可以预先设置对关键字、数字、字符串的解析规则;解析规则包括:预先设置需要解析的关键字、数字、字符串;预先设置解析关键字、数字、字符串的方式。
例如,对于测试案例:“在对话框输入18时,调用18号接口”、“在对话框输入19时,调用19号接口”......“在对话框输入30时,调用30号接口”的测试案例,但是,这些测试案例并不能完全测试完毕实际场景中的接口是否都可以正常调用,因此,在本实施例中增加了随机算法,首先解析测试案例中第一个测试案例与最后一个测试案例中的数字,因此可以得到,“18”、“调用”、“30”,那么根据随机算法可以将“18”解析成“17”和“18”,“30”解析成“31”和“30”,这样在原来测试案例的基础上又增加了“在对话框输入17时,调用17号接口”和“在对话框输入31时,调用31号接口”,这样会测试的更加全面。
“18”与“30”为整个测试案例集的边界值,有了两个边界值,就可以查看超出这两个边界值后,是否还可以正常调用接口。
步骤S302,通过词频和反向词频算法对所述测试案例数据中的关键字进行提取,得到第一关键字;
本实施例中,通过词频和反向词频算法对每个词的权重的计算,并将通过词频和反向词频算法计算后得到的值进行归一化处理。例如,对于“输入密码1234”可以得到三个的权重,“输入”为w1,“密码”为w2,“1234”为w3,若归一化处理后,w1的权重是最大的,则根据“输入”从关键词词库中寻找与其相关的其他词,例如“输出”,这样就可以拓展出新的测试案例“输出密码1234”,即得到了拓展数据。
步骤S303,通过哈希算法将所述第一关键字与预置关键词词库中的预置关键字进行匹配,得到第二关键字,以及替换所述第一关键字,得到拓展数据集。
本实施例中,预置关键词词库中的每个预置关键字都具有不同的第一权值,当通哈希算法将第一关键字进行计算后,也会得到一个权值,即第二权值,根据第二权值从预置关键词词库中寻找与该权值匹配的第一权值,并将第一权值所对应的关键字提取出来,并替换掉测试案例数据中的第一关键字。
参照图4,图4为图2中步骤S10的细化流程示意图。本实施例中,上述步骤S10具体包括以下步骤:
步骤S101,依次遍历所述原始测试案例数据,并对所述原始测试案例数据进行分类,得到所述原始测试案例数据的数据类型,所述数据类型包括:数值型、类别型和时间型;
本实施例中,依次历遍所述原始测试案例,得到所述原始测试案例数据的数据类型,所述数据类型包括:数值型、类别型和时间型,在本实施例中,区别不同分别的方法不限,例如,若历遍到数值型数据则做上标记A,若历遍到类别型数据则做上标记B,若历遍到时间类别数据则做上标记C。例如,17或18属于数值型数据;byte、short、int、long、float、double、boolean、char属于类别型数据,one year(一年)与one hour(一小时)属于时间类别数据。
步骤S102,根据所述原始测试案例数据的数据类型,采用对应的预置清洗算法对所述原始测试案例数据进行清洗,得到测试案例数据。
本实施例中,由于不同的原始测试案例数据具有不同类型,例如,原始测试案例数据的数据类型包括:数值型、类别型和时间型,而不同的类型原始测试案例数据需要通过不同的方法进行清洗,所以需要根据所述原始测试案例数据的数据类型,采用对应的预置清洗算法对所述原始测试案例数据进行清洗,得到测试案例数据,清洗方法包括:归一化算法、离散化算法和时间划分法。
参照图5,图5为图4中步骤S102的细化流程示意图。本实施例中,上述步骤S102具体包括以下步骤:
步骤S1021,判断所述原始测试案例数据的数据类型是否为数值型;
本实施例中,为了精准清洗掉原始测试案例数据中数值型的数据,因此,需要清洗的操作,在清洗之前需要先判断,判断所述原始测试案例数据的数据类型是否为数值型。以便对不同分类的数据采用不同的处理方式进行处理。
步骤S1022,若所述原始测试案例数据的数据类型为数值型,则采用归一化算法对所述原始测试案例数据进行处理;
本实施例中,若所述原始测试案例数据的数据类型为数值型,则采用归一化算法对所述原始测试案例数据进行处理,为了精准清洗掉原始测试案例数据中类别型的数据,因此,需要清洗的操作,在清洗之前需要先判断,判断所述原始测试案例数据的数据类型是否为类别型。以便对不同分类的数据采用不同的处理方式进行处理。例如,若是数值型数据,则采用归一化处理,若是类别型数据,采用离散化处理,若是时间类别数据,则采用时间划分法进行处理。例如,A{2,4,4,6},依次历遍原始测试案例A,并通过归一化处理后,得到A{4},这样就清洗掉数据2,6以及多余的另外一个数字4。
步骤S1023,若所述原始测试案例数据的数据类型为非数值型,则判断所述原始测试案例数据的数据类型是否为类别型;
本实施例中,若所述原始测试案例数据的数据类型为非数值型,则判断所述原始测试案例数据的数据类型是否为类别型。
步骤S1024,若所述原始测试案例数据的数据类型为类别型,则采用离散化算法对所述原始测试案例数据进行处理;
本实施例中,为了精准清洗掉原始测试案例数据中时间型的数据,因此,需要清洗的操作,在清洗之前需要先判断,判断所述原始测试案例数据的数据类型是否为时间型。以便对不同分类的数据采用不同的处理方式进行处理。
若所述原始测试案例数据的数据类型为类别型,则采用离散化算法对所述原始测试案例数据进行处理,若所述原始测试案例数据的数据类型为非类别型,则判断所述原始测试案例数据的数据类型是否为时间型。对于一组数据A{1,2......18}与另外一组数据B{19,20......30},可以用分类的方式将A划分为“青年”,将B划分为“中年”,例如,目前有一组“青年”数据C{17,18,20},通过采用离散化处理,可以从C中清洗掉数值20,得到C{17,18}。
步骤S1025,若所述原始测试案例数据的数据类型为非类别型,则判断所述原始测试案例数据的数据类型是否为时间型;
本实施例中,若所述原始测试案例数据的数据类型为非类别型,则判断所述原始测试案例数据的数据类型是否为时间型。
步骤S1026,若所述原始测试案例数据的数据类型为时间型,则采用时间划分法对所述原始测试案例数据进行处理,若所述原始测试案例数据的数据类型为非时间型,则不处理。
本实施例中,若原始测试案例数据的数据类型为时间型,则采用时间划分法对原始测试案例数据进行处理,若否,则不处理。在正常的工作日不能满足工作需要时,可以按照早、中、晚三班制进行生产活动,例如6:00-10:00为早班,11:00-14:00为中班,14:00-18:00为晚班,其中10:00-11:00为休息时间,由此可见,可以根据时间划分法,可将不符合实际场景的时间清洗掉。
参照图6,图6为本发明智能测试方法第二实施例的流程示意图。本实施例中,在图2中的步骤S10之后,还包括以下步骤:
步骤S80,判断清洗后的原始测试案例数据是否存在缺失值;
本实施例中,在清洗过程中,存在清洗掉符合实际场景数据的可能,因此需要及时判断清洗后,原始测试案例中是否存在缺失值,若存在缺失值,则需要采用一定的处理方法进行处理。因此需要判断清洗后的原始测试案例数据是否存在缺失值。
步骤S90,若所述清洗后的原始测试案例数据存在缺失值,则采用K近邻算法对缺失值进行插补,若所述清洗后的原始测试案例数据不存在缺失值,则不处理。
本实施例中,k值最近距离邻法的算法描述如下:输入:训练数据集:T={(x1,y1),(x2,y2),...,(xn,yn)},其中xi∈Rn,yi∈{c1,c2,...,ck}和测试数据x。
输出:实例x所属的类别。根据给定的距离度量,在训练集T中找到与x距离最近的k个样本,涵盖这k个点的x的邻域记作Nk(x),在Nk(x)中根据分类规则(如多数表决)确定x的类别y:
分类决策规则通常是多数表决,即由测试样本的k个临近样本的多数类决定测试样本的类别。多数表决规则有如下解释:给定测试样本x,其最邻近的k个训练实例构成集合Nk(x),分类损失函数为0-1损失。如果涵盖Nk(x)区域的类别为cj,则分类误差率是:
分类误差率小即经验风险最小,所以多数表决等价于经验风险最小化。
因此,根据上述公式,可以表决出原始测试案例数据中缺失值所属的分类,例如,原始测试案例为输入17、输入18......输入30、输入31。经过清洗后,变为了输入18......输入30、输入31。采用k值最近距离邻法法后,可以得知,缺失的测试案例为数值型数据分类里面的数据,因此可以将此处缺失的测试案例以数值的形式填补进去。
参照图7,图7为本发明智能测试方法第三实施例的流程示意图。本实施例中,在图2中的步骤S70之前,还包括以下步骤:
步骤S100,通过长短期记忆网络对测试案例数据进行处理,得到第一测试案例;
本实施例中,可以通过改变预置计算路径,来改变不同算法对数据的处理的顺序,在通过长短期记忆网络对测试案例数据进行处理后,会得到第一测试案例,本实施例中,长短期记忆网络是预先训练好的,该长短期记忆网络可以对解析测试案例数据进行处理,然后得到待执行测试案例,长短期记忆网络的训练过程为:例如,测试案例解析数据为:123。长短期记忆网络可以根据初始权重得到测试案例“输入密码123,登录成功”,“输入密码123,登录失败”。要注意的是,这两个测试案例并非最终输出的待执行测试案例,根据人工测试结果可知,“输入密码123,登录成功”,这个案例是符合当前实际需求的,因此在本实施例中,还采用到了归一化算法,通过归一化算法对所述解析测试案例数据进行处理,得到“输入密码123,登录成功”的概率为20%,得到“输入密码123,登录失败”的概率为80%,由人工测试结果可知,“输入密码123,登录成功”的测试案例为正确的,但是“输入密码123,登录成功”的概率小于“输入密码123,登录失败”的概率,因此若要输出测试案例“输入密码123,登录失败”,还需要通过反向传播算法调整输出“输入密码123,登录成功”与“输入密码123,登录失败”各自所占的权重,直至输出的结果为“输入密码123,登录成功”。
步骤S110,判断所述第一测试案例的数量是否小于当前测试场景对测试案例数量的需求量;
本实施例中,为了保证测试结果的准确性,因此需要尽量多的测试案例,判断所述第一测试案例的数量是否小于当前测试场景对测试案例数量的需求量。比如,一个四位并且全部由数字组成的密码共有10000种组合,在不知道具体是哪些组合是正确密码的情况下,当前测试场景对测试案例数量的需求量就是10000个,如果第一测试案例的数量为8000个,小于当前测试场景对测试案例数量的需求量,则有可能遗漏掉正确的密码,从而影响了测试结果。因此第一测试案例的数量必须要大于或者等于当前测试场景对测试案例数量的需求量。
步骤S120,若所述第一测试案例的数量小于当前测试场景对测试案例数量的需求量,则通过穷举法对所述第一测试案例进行拓展,得到第二测试案例集,若所述第一测试案例的数量大于或等于当前测试场景对测试案例数量的需求量,则不处理;
本实施例中,需要根据不同的测试场景按照穷举法拓展新的测试案例。例如,若是数字型的,则需要根据数字的排列组合,将数字所有组合而成的测试案例都列举出来,例如,对于数字组合123,则可以有六种组合分别是:123,132,231,213,321,312。
若所述第一测试案例的数量小于当前测试场景对测试案例数量的需求量,则通过穷举法对所述第一测试案例进行拓展,得到第二测试案例集,若否,则不处理。通过穷举法增加了测试案例的数量。
步骤S130,通过随机算法获取所述第二测试案例集中的测试案例,提取所述测试案例中的关键字,根据所述关键字对所述测试案例进行拓展,得到待执行测试案例。
本实施例中,采用随机算法从第二测试案例集中获取测试案例,并从随机获取到的测试案例中提取提取关键字,根据提取到的关键字对所述测试案例进行拓展,得到新的测试案例,但是由于通过穷举法拓展后,第二测试案例集已经包含该测试场景下的所有测试案例了,那么通过随机算法随机获取其中的一个测试案例,则有可能拓展出与第二测试案例集中的测试案例重合的测试案例,为了避免这种情况的发生,因此预先设置了关键词词库,只有随机获取到的测试案例案例中的关键字与关键词词库中的关键字相互匹配时,才会拓展该测试案例。关键词词库中保存的关键字不限,例如,数字、文字和标点符号等。通过本实施例,再次增加了测试案例的数量。
参照图8,图8为本发明智能测试方法第四实施例的流程示意图。本实施例中,在图2中的步骤S20之后,还包括以下步骤:
步骤S140,通过预先构建的junit单元测试框架对测试案例数据的代码进行检测,得到测试案例数据的代码覆盖率;
本实施例中,通过预先构建的junit单元测试框架获得测试案例代码覆盖率。通过junit单元测试框架对扫描到的代码进行检测,可以检测出代码覆盖率是多少,例如,为90%。检测覆盖率的目的是为了便于让新生成的测试案例的代码有效覆盖完原有的测试案例的代码。若没有效覆盖完原有的测试案例的代码,则说明新生成的测试案例存在数量不足的情况。
步骤S150,判断所述测试案例数据的代码覆盖率是否小于预设覆盖率;
本实施例中,预设覆盖率指的是预先设定的覆盖率的值,例如,可以是90%,也可以是80%,判断的目的是为了检验当前试案例代码覆盖率是否小于预设覆盖率,例如,如果当前试案例代码覆盖率小于预设覆盖率,则说明,当前代码覆盖率并没有达到要求,如果当前试案例代码覆盖率大于于预设覆盖率,则说明,当前代码覆盖率已经达到要求。
步骤S160,若所述测试案例数据的代码覆盖率小于预设覆盖率,则继续根据所述预置计算路径的算法集对测试案例数据进行训练,直至输出的测试案例数据的代码覆盖率大于或等于预设覆盖率,若所述测试案例数据的代码覆盖率大于或等于预设覆盖率,则不处理。
本实施例中,可以借助java工程中集成的junit单元测试框架来统计和展示测试案例代码的覆盖情况,进而可以获得测试案例代码覆盖率。集成junit单元测试框架方法是把junit的jar包导入到工程下Lib,然后根据框架的约定进行使用即可。回归测试的作用是,通过测试原有的功能是否正确,以判断本次新功能的上线不会影响原有功能。通过使用人工智能+探索式测试解决方案框架,即测试案例模型,由于测试案例模型已经自动生成了大量的测试案例,这些案例覆盖了所有原有功能的测试,自动执行这些案例后,就能够解决回归测试覆盖的问题。要注意的是,在实际场景中也有可能会存在,根据预设条件而生成的测试案例不能完全覆盖原测试案例的情况,例如,测试案例1的代码复杂程度过高,因此通过穷举法后仅能生成2、3、4。由此可见,在某些情况下可能会存在不能完全覆盖的情况,因此需要预先设置覆盖率。例如,可以设置覆盖率不得低于90%,若低于90%,则继续训练测试案例模型,直至生成的新测试案例完全覆盖原测试案例;若高于90%,则说明新生成的测试案例完全覆盖了原测试案例,因此不会影响原测试案例的功能。
在以往的测试工作中,要做到回归测试覆盖完全,是一件很困难的事情,因为,原有功能非常多、有大量的功能场景,在有限的时间和人力情况下,要全部回归测试,是不可能的,只能选取主要的原有功能进行测试。现在有了人工智能智能测试,使得完全的回归测试覆盖成为可能。例如,某测试案例是1、2、3,输入测试案例模型后会生成0、1、2、3、4的测试案例,由此可见,新生成的测试案例完全覆盖了原有的测试案例,因此不会影响原来的测试案例。
本发明还提供一种智能测试装置。
参照图9,图9为本发明智能测试装置一实施例的功能模块示意图。本实施例中,所述智能测试装置包括:
清洗模块10,用于依次遍历原始测试案例数据,采用对应的预置清洗算法对所述原始测试案例数据进行清洗,得到测试案例数据;
第一训练模块20,用于通过所述测试案例数据依次对预置计算路径的初始待选算法进行训练,得到待选算法;
第一拓展模块30,用于通过随机算法随机获取测试案例数据,提取所述测试案例数据中的关键字,根据所述关键字拓展所述测试案例数据,得到拓展数据集;
第一处理模块40,用于通过长短期记忆网络对所述拓展数据集进行处理,得到待执行测试案例集;
第一判断模块50,用于判断所述待执行测试案例集中测试案例的数量是否小于当前测试场景所需的测试案例数量;
第二拓展模块60,用于若待执行测试案例数量小于当前测试场景所需的测试案例数量,则通过穷举法对所述待执行测试案例进行拓展,直至所述待执行测试案例数量大于或等于当前测试场景所需的测试案例数量;
执行模块70,用于依次执行所述待执行测试案例集中的测试案例,得到测试结果。
本实施例中,清洗模块10用于依次遍历原始测试案例数据,采用对应的预置清洗算法对所述原始测试案例数据进行清洗,得到测试案例数据;第一训练模块20用于通过所述测试案例数据依次对预置计算路径的初始待选算法进行训练,得到待选算法;第一拓展模块30用于通过随机算法随机获取测试案例数据,提取所述测试案例数据中的关键字,根据所述关键字拓展所述测试案例数据,得到拓展数据集;第一处理模块40用于通过长短期记忆网络对所述拓展数据集进行处理,得到待执行测试案例集;第一判断模块50用于判断所述待执行测试案例集中测试案例的数量是否小于当前测试场景所需的测试案例数量;第二拓展模块60用于若待执行测试案例数量小于当前测试场景所需的测试案例数量,则通过穷举法对所述待执行测试案例进行拓展,直至所述待执行测试案例数量大于或等于当前测试场景所需的测试案例数量;执行模块70用于依次执行所述待执行测试案例集中的测试案例,得到测试结果。本方案通过穷举法和随机随机算法增加了测试案例的数量,解决了测试质量低下的技术问题。
本发明还提供一种计算机可读存储介质。
本实施例中,所述计算机可读存储介质上存储有智能测试程序,所述智能测试程序被处理器执行时实现如上述任一项实施例中所述的智能测试方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,这些均属于本发明的保护之内。
Claims (10)
1.一种智能测试方法,其特征在于,所述智能测试方法包括以下步骤:
依次遍历原始测试案例数据,采用对应的预置清洗算法对所述原始测试案例数据进行清洗,得到测试案例数据;
通过所述测试案例数据依次对预置计算路径的初始待选算法进行训练,得到待选算法,所述待选算法至少包括:长短期记忆网络的算法、穷举法、随机算法;
通过随机算法随机获取测试案例数据,提取所述测试案例数据中的关键字,根据所述关键字拓展所述测试案例数据,得到拓展数据集;
通过长短期记忆网络对所述拓展数据集进行处理,得到待执行测试案例集;
判断所述待执行测试案例集中测试案例的数量是否小于当前测试场景所需的测试案例数量;
若是,则通过穷举法对所述待执行测试案例集进行拓展,直至所述待执行测试案例集中所述测试案例的数量大于或等于所述当前测试场景所需的测试案例数量;
依次执行所述待执行测试案例集中的测试案例,得到测试结果。
2.如权利要求1所述的智能测试方法,其特征在于,所述通过随机算法随机获取测试案例数据,提取所述测试案例数据中的关键字,根据所述关键字拓展所述测试案例数据,得到拓展数据集包括:
通过随机算法随机获取测试案例数据;
通过词频和反向词频算法对所述测试案例数据中的关键字进行提取,得到第一关键字;
通过哈希算法将所述第一关键字与预置关键词词库中的预置关键字进行匹配,得到第二关键字,以及替换所述第一关键字,得到拓展数据集。
3.如权利要求2所述的智能测试方法,其特征在于,所述依次遍历原始测试案例数据,采用对应的预置清洗算法对所述原始测试案例数据进行清洗,得到测试案例数据包括:
依次遍历所述原始测试案例数据,并对所述原始测试案例数据进行分类,得到所述原始测试案例数据的数据类型,所述数据类型包括:数值型、类别型和时间型;
根据所述原始测试案例数据的数据类型,采用对应的预置清洗算法对所述原始测试案例数据进行清洗,得到测试案例数据。
4.如权利要求3所述的智能测试方法,其特征在于,所述根据所述原始测试案例数据的数据类型,采用对应的预置清洗算法对所述原始测试案例数据进行清洗,得到测试案例数据包括:
判断所述原始测试案例数据的数据类型是否为数值型;
若所述原始测试案例数据的数据类型为数值型,则采用归一化算法对所述原始测试案例数据进行处理,若所述原始测试案例数据的数据类型为非数值型,则判断所述原始测试案例数据的数据类型是否为类别型;
若所述原始测试案例数据的数据类型为类别型,则采用离散化算法对所述原始测试案例数据进行处理,若所述原始测试案例数据的数据类型为非类别型,则判断所述原始测试案例数据的数据类型是否为时间型;
若所述原始测试案例数据的数据类型为时间型,则采用时间划分法对所述原始测试案例数据进行处理。
5.如权利要求1所述的智能测试方法,其特征在于,在所述依次遍历原始测试案例数据,采用对应的预置清洗算法对所述原始测试案例数据进行清洗,得到测试案例数据的步骤之后,还包括:
判断清洗后的原始测试案例数据是否存在缺失值;
若存在,则采用K近邻算法对缺失值进行插补。
6.如权利要求1所述的智能测试方法,其特征在于,在所述依次执行所述待执行测试案例集中的测试案例,得到测试结果的步骤之前,还包括:
通过长短期记忆网络对测试案例数据进行处理,得到第一测试案例;
判断所述第一测试案例的数量是否小于当前测试场景对测试案例数量的需求量;
若是,则通过穷举法对所述第一测试案例进行拓展,得到第二测试案例集;
通过随机算法获取所述第二测试案例集中的测试案例,提取所述测试案例中的关键字,根据所述关键字对所述测试案例进行拓展,得到待执行测试案例。
7.如权利要求1所述的智能测试方法,其特征在于,在所述通过所述测试案例数据依次对预置计算路径的初始待选算法进行训练,得到待选算法的步骤之后,还包括:
通过预先构建的junit单元测试框架对测试案例数据的代码进行检测,得到测试案例数据的代码覆盖率;
判断所述测试案例数据的代码覆盖率是否小于预设覆盖率;
若是,则继续根据所述预置计算路径的算法集对测试案例数据进行训练,直至输出的测试案例数据的代码覆盖率大于或等于预设覆盖率。
8.一种智能测试装置,其特征在于,所述智能测试装置包括:
清洗模块,用于依次遍历原始测试案例数据,采用对应的预置清洗算法对所述原始测试案例数据进行清洗,得到测试案例数据;
第一训练模块,用于通过所述测试案例数据依次对预置计算路径的初始待选算法进行训练,得到待选算法;
第一拓展模块,用于通过随机算法随机获取测试案例数据,提取所述测试案例数据中的关键字,根据所述关键字拓展所述测试案例数据,得到拓展数据集;
第一处理模块,用于通过长短期记忆网络对所述拓展数据集进行处理,得到待执行测试案例集;
第一判断模块,用于判断所述待执行测试案例集中测试案例的数量是否小于当前测试场景所需的测试案例数量;
第二拓展模块,用于若待执行测试案例数量小于当前测试场景所需的测试案例数量,则通过穷举法对所述待执行测试案例进行拓展,直至所述待执行测试案例数量大于或等于当前测试场景所需的测试案例数量;
执行模块,用于依次执行所述待执行测试案例集中的测试案例,得到测试结果。
9.一种智能测试设备,其特征在于,所述智能测试设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的智能测试程序,所述智能测试程序被所述处理器执行时实现如权利要求1-7中任一项所述的智能测试方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有智能测试程序,所述智能测试程序被处理器执行时实现如权利要求1-7中任一项所述的智能测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910667875.XA CN110502432B (zh) | 2019-07-23 | 2019-07-23 | 智能测试方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910667875.XA CN110502432B (zh) | 2019-07-23 | 2019-07-23 | 智能测试方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110502432A true CN110502432A (zh) | 2019-11-26 |
CN110502432B CN110502432B (zh) | 2023-11-28 |
Family
ID=68587619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910667875.XA Active CN110502432B (zh) | 2019-07-23 | 2019-07-23 | 智能测试方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110502432B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111597121A (zh) * | 2020-07-24 | 2020-08-28 | 四川新网银行股份有限公司 | 一种基于历史测试用例挖掘的精准测试方法 |
CN113312258A (zh) * | 2021-05-25 | 2021-08-27 | 平安壹钱包电子商务有限公司 | 一种接口测试方法、装置、设备及存储介质 |
CN113342683A (zh) * | 2021-06-29 | 2021-09-03 | 深圳前海微众银行股份有限公司 | 一种测试案例处理方法、装置、平台及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853202A (zh) * | 2010-05-28 | 2010-10-06 | 浙江大学 | 一种基于遗传算法和带权匹配算法的测试案例自动生成方法 |
CN105988920A (zh) * | 2015-02-04 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 一种基于数据集的测试案例生成方法及其装置 |
CN107886366A (zh) * | 2017-11-22 | 2018-04-06 | 深圳市金立通信设备有限公司 | 性别分类模型的生成方法、性别填充方法、终端及存储介质 |
CN108170529A (zh) * | 2017-12-26 | 2018-06-15 | 北京工业大学 | 一种基于长短期记忆网络的云数据中心负载预测方法 |
CN108768946A (zh) * | 2018-04-27 | 2018-11-06 | 中山大学 | 一种基于随机森林算法的网络入侵检测模型 |
CN109379329A (zh) * | 2018-09-05 | 2019-02-22 | 中国人民解放军战略支援部队信息工程大学 | 基于lstm的网络安全协议模糊测试方法及*** |
CN109389030A (zh) * | 2018-08-23 | 2019-02-26 | 平安科技(深圳)有限公司 | 人脸特征点检测方法、装置、计算机设备及存储介质 |
CN109947756A (zh) * | 2019-03-18 | 2019-06-28 | 成都好享你网络科技有限公司 | 用于增广数据的数据清洗方法、装置和设备 |
-
2019
- 2019-07-23 CN CN201910667875.XA patent/CN110502432B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853202A (zh) * | 2010-05-28 | 2010-10-06 | 浙江大学 | 一种基于遗传算法和带权匹配算法的测试案例自动生成方法 |
CN105988920A (zh) * | 2015-02-04 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 一种基于数据集的测试案例生成方法及其装置 |
CN107886366A (zh) * | 2017-11-22 | 2018-04-06 | 深圳市金立通信设备有限公司 | 性别分类模型的生成方法、性别填充方法、终端及存储介质 |
CN108170529A (zh) * | 2017-12-26 | 2018-06-15 | 北京工业大学 | 一种基于长短期记忆网络的云数据中心负载预测方法 |
CN108768946A (zh) * | 2018-04-27 | 2018-11-06 | 中山大学 | 一种基于随机森林算法的网络入侵检测模型 |
CN109389030A (zh) * | 2018-08-23 | 2019-02-26 | 平安科技(深圳)有限公司 | 人脸特征点检测方法、装置、计算机设备及存储介质 |
CN109379329A (zh) * | 2018-09-05 | 2019-02-22 | 中国人民解放军战略支援部队信息工程大学 | 基于lstm的网络安全协议模糊测试方法及*** |
CN109947756A (zh) * | 2019-03-18 | 2019-06-28 | 成都好享你网络科技有限公司 | 用于增广数据的数据清洗方法、装置和设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111597121A (zh) * | 2020-07-24 | 2020-08-28 | 四川新网银行股份有限公司 | 一种基于历史测试用例挖掘的精准测试方法 |
CN113312258A (zh) * | 2021-05-25 | 2021-08-27 | 平安壹钱包电子商务有限公司 | 一种接口测试方法、装置、设备及存储介质 |
CN113342683A (zh) * | 2021-06-29 | 2021-09-03 | 深圳前海微众银行股份有限公司 | 一种测试案例处理方法、装置、平台及存储介质 |
CN113342683B (zh) * | 2021-06-29 | 2024-04-09 | 深圳前海微众银行股份有限公司 | 一种测试案例处理方法、装置、平台及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110502432B (zh) | 2023-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019184557A1 (zh) | 定位根因告警的方法、装置和计算机可读存储介质 | |
KR101965839B1 (ko) | 구성정보 관리 데이터베이스 기반의 it 시스템 장애 분석 기법 | |
CN110502432A (zh) | 智能测试方法、装置、设备及可读存储介质 | |
CN109784636A (zh) | 欺诈用户识别方法、装置、计算机设备及存储介质 | |
US10860410B2 (en) | Technique for processing fault event of IT system | |
US20170200101A1 (en) | Systems and methods for optimized task allocation | |
CN109918554A (zh) | 网页数据爬取方法、装置、***及计算机可读存储介质 | |
KR20200057903A (ko) | 인공지능 모델 플랫폼 및 인공지능 모델 플랫폼 운영 방법 | |
CN109743311A (zh) | 一种WebShell检测方法、装置及存储介质 | |
US11296925B2 (en) | Network analyzer that provides answer to inquiry about network failure and network analyzing method | |
CN111294819A (zh) | 一种网络优化方法及装置 | |
US20210318947A1 (en) | Methods and apparatuses for generating smart contract test case | |
CN114358312A (zh) | 网络告警事件识别模型的训练方法、设备及存储介质 | |
US7395457B2 (en) | System and method for detecting faults in a system | |
CN117221087A (zh) | 告警根因定位方法、装置及介质 | |
CN115577858A (zh) | 基于区块链的碳排放量预测方法、装置及电子设备 | |
US20230205618A1 (en) | Performing root cause analysis on data center incidents | |
Ding et al. | TraceDiag: Adaptive, Interpretable, and Efficient Root Cause Analysis on Large-Scale Microservice Systems | |
CN104657491B (zh) | 一种向客户端发送数据的方法 | |
Xu et al. | Cina: Suppressing the detection of unstable context inconsistency | |
Wang et al. | Nlp-based cross-layer 5g vulnerabilities detection via fuzzing generated run-time profiling | |
US20230306343A1 (en) | Business process management system and method thereof | |
Lee et al. | An investigation of essential topics on software fault-proneness prediction | |
de la Torre-Abaitua et al. | A compression based framework for the detection of anomalies in heterogeneous data sources | |
Venkataraman et al. | Towards identifying impacted users in cellular services |
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 |