CN112948251A - 软件自动测试方法及装置 - Google Patents
软件自动测试方法及装置 Download PDFInfo
- Publication number
- CN112948251A CN112948251A CN202110233769.8A CN202110233769A CN112948251A CN 112948251 A CN112948251 A CN 112948251A CN 202110233769 A CN202110233769 A CN 202110233769A CN 112948251 A CN112948251 A CN 112948251A
- Authority
- CN
- China
- Prior art keywords
- software
- model
- software testing
- program
- test
- 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
- 238000013522 software testing Methods 0.000 title claims abstract description 177
- 238000000034 method Methods 0.000 title claims abstract description 137
- 238000012360 testing method Methods 0.000 claims abstract description 222
- 238000012549 training Methods 0.000 claims description 57
- 238000012545 processing Methods 0.000 claims description 40
- 238000012795 verification Methods 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 16
- 238000003860 storage Methods 0.000 claims description 13
- 238000011156 evaluation Methods 0.000 claims description 9
- 238000013473 artificial intelligence Methods 0.000 abstract description 4
- 238000013461 design Methods 0.000 description 46
- 230000018109 developmental process Effects 0.000 description 17
- 238000010998 test method Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 238000011161 development Methods 0.000 description 10
- 238000010801 machine learning Methods 0.000 description 10
- 230000001364 causal effect Effects 0.000 description 7
- 238000013135 deep learning Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 6
- 238000011160 research Methods 0.000 description 6
- 239000013598 vector Substances 0.000 description 6
- 239000000872 buffer Substances 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000012827 research and development Methods 0.000 description 4
- 238000012935 Averaging Methods 0.000 description 3
- 238000013499 data model Methods 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000002372 labelling Methods 0.000 description 3
- 238000003058 natural language processing Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000009960 carding Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
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)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供一种软件自动测试方法及装置,可用于人工智能技术领域,方法包括:将当前的目标程序的关键字输入预设的软件测试方案匹配模型,并根据该软件测试方案匹配模型的输出获取所述目标程序对应的软件测试方案,其中,所述软件测试方案匹配模型包括预设的条件随机场CRF模型;基于所述软件测试方案对所述目标程序进行自动测试。本申请能够有效提高软件测试方案匹配的自动化程度、智能化程度及效率,并能够有效提高软件测试的自动化程度、效率及可靠性。
Description
技术领域
本申请涉及数据处理技术领域,特别涉及人工智能技术领域,具体涉及软件自动测试方法及装置。
背景技术
在软件的研发全生命过程中,软件测试都是编写各种测试方法及测试案例,软件测试方式一般包含有黑盒测试、白盒测试和灰盒测试,案例设计方法有等价类、边界值、因果图、判定表、场景法、正交法、枚举法等等方法。
目前的软件测试方式都靠人工先选择测试方法或人工选择案例的设计方法,再进行案例的维护,这样维护方式人工维护成本高,效率较低。一些存在的案例设计方法是通用的,但在不同的场景下,又需要重新人工维护好方法再设计案例,加大了软件测试工程的成本,因此研发效率有待进一步的提升。
发明内容
针对现有技术中的问题,本申请提供一种软件自动测试方法及装置,能够有效提高软件测试方案匹配的自动化程度、智能化程度及效率,并能够有效提高软件测试的自动化程度、效率及可靠性。
为解决上述技术问题,本申请提供以下技术方案:
第一方面,本申请提供一种软件自动测试方法,包括:
将当前的目标程序的关键字输入预设的软件测试方案匹配模型,并根据该软件测试方案匹配模型的输出获取所述目标程序对应的软件测试方案,其中,所述软件测试方案匹配模型包括预设的条件随机场CRF模型;
基于所述软件测试方案对所述目标程序进行自动测试。
进一步地,在所述将当前的目标程序的关键字输入预设的软件测试方案匹配模型之前,还包括:
获取多个历史程序文件;
提取各个历史程序文件的关键字并接收各个所述关键字分别对应的软件测试方案标识,其中,所述关键字用于表示对应程序的程序类型;
根据各个所述历史程序文件的关键字分别对应的软件测试方案标识,分别设置各个所述历史程序文件各自对应的标签,以形成对应的训练集;
基于预设的条件随机场CRF算法,根据所述训练集训练得到用于输出程序对应的软件测试方案标识的条件随机场CRF模型。
进一步地,在所述将当前的目标程序的关键字输入预设的软件测试方案匹配模型之前,还包括:
对训练得到的所述条件随机场CRF模型进行模型验证,并根据对应的模型验证结果对所述条件随机场CRF模型进行调优处理,其中,所述调优处理包括:标签调优处理和/或模型调优处理。
进一步地,在所述将当前的目标程序的关键字输入预设的软件测试方案匹配模型之前,还包括:
接收各个软件自动测试请求,其中,所述软件自动测试请求中包含有目标程序及对应的关键字;
将各个所述软件自动测试请求各自对应的目标程序的关键字加入索引。
进一步地,所述根据该软件测试方案匹配模型的输出获取所述目标程序对应的软件测试方案,包括:
将所述软件测试方案匹配模型输出的所述目标程序的软件测试方案标识存入至批量定时处理任务中,以周期性对所述批量定时处理任务中的各个所述软件测试方案标识建立对应的索引文件并确定各个所述软件测试方案标识各自对应的软件测试方案。
进一步地,在所述基于所述软件测试方案对所述目标程序进行自动测试之后,还包括:
输出对所述目标程序进行自动测试后对应的测试结果,以基于该测试结果获取所述条件随机场CRF模型的评价结果。
进一步地,所述软件测试方案包括:黑盒测试、白盒测试和灰盒测试中的至少一项。
第二方面,本申请提供一种软件自动测试装置,包括:
模型预测模块,用于将当前的目标程序的关键字输入预设的软件测试方案匹配模型,并根据该软件测试方案匹配模型的输出获取所述目标程序对应的软件测试方案,其中,所述软件测试方案匹配模型包括预设的条件随机场CRF模型;
自动测试模块,用于基于所述软件测试方案对所述目标程序进行自动测试。
第三方面,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的软件自动测试方法。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的软件自动测试方法。
由上述技术方案可知,本申请提供的一种软件自动测试方法及装置,方法包括:将当前的目标程序的关键字输入预设的软件测试方案匹配模型,并根据该软件测试方案匹配模型的输出获取所述目标程序对应的软件测试方案,其中,所述软件测试方案匹配模型包括预设的条件随机场CRF模型;基于所述软件测试方案对所述目标程序进行自动测试,通过应用条件随机场CRF模型实现目标程序的软件测试方案的自动选取,能够有效提高软件测试方案匹配的自动化程度及智能化程度,并能够有效提供软件测试方案匹配的效率,能够有效节省人力成本及时间成本;通过基于所述软件测试方案对所述目标程序进行自动测试,能够更进一步提高软件测试的自动化程度,并能够有效提高软件测试的效率及可靠性,可以应用于软件研发过程中,高效自动提供测试案例;测试工程师可以根据开发提交的程序,自动匹配出来的软件测试方案,快速进行测试工程的验证,提高整个软件研发的效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例中的软件自动测试方法的第一种流程示意图。
图2是本申请实施例中的软件自动测试方法的第二种流程示意图。
图3是本申请实施例中的软件自动测试方法的第三种流程示意图。
图4是本申请实施例中的软件自动测试方法的第四种流程示意图。
图5是本申请实施例中的软件自动测试方法的第五种流程示意图。
图6是本申请实施例中的软件自动测试方法的第六种流程示意图。
图7是本申请实施例中的软件自动测试装置的结构示意图。
图8是本申请应用实例中的软件自动测试方法的流程示意图。
图9是本申请实施例中的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请公开的软件自动测试方法及装置可用于人工智能技术领域,也可用于除人工智能技术领域之外的任意领域,本申请公开的软件自动测试方法及装置的应用领域不做限定。
为了解决现有的软件测试方法存在的软件测试方式匹配或选取的自动化程度差且效率低下等问题,本申请分别提供一种软件自动测试方法、软件自动测试装置、电子设备和计算机可读存储介质,通过应用条件随机场CRF模型实现目标程序的软件测试方案的自动选取,能够有效提高软件测试方案匹配的自动化程度及智能化程度,并能够有效提供软件测试方案匹配的效率,能够有效节省人力成本及时间成本;通过基于所述软件测试方案对所述目标程序进行自动测试,能够更进一步提高软件测试的自动化程度,并能够有效提高软件测试的效率及可靠性,可以应用于软件研发过程中,高效自动提供测试案例;测试工程师可以根据开发提交的程序,自动匹配出来的软件测试方案,快速进行测试工程的验证,提高整个软件研发的效率。
基于上述内容,本申请还提供一种用于实现本申请一个或多个实施例中提供的软件自动测试方法的软件自动测试装置,该软件自动测试装置可以自行或通过第三方服务器等与客户端设备之间通信连接,以接收各个客户端设备分别发送的各个软件自动测试请求,其中,所述软件自动测试请求中包含有目标程序及对应的关键字;将当前的目标程序的关键字输入预设的软件测试方案匹配模型,并根据该软件测试方案匹配模型的输出获取所述目标程序对应的软件测试方案,其中,所述软件测试方案匹配模型包括预设的条件随机场CRF模型;基于所述软件测试方案对所述目标程序进行自动测试,并将自动测试对应的测试结果发送至对应的客户端设备,以使研发人员等用户根据持有的客户端设备中显示的测试结果给出所述条件随机场CRF模型的评价结果,并可以经由客户端设备将所述条件随机场CRF模型的评价结果发送至所述软件自动测试装置,以使该软件自动测试装纸根据接收到的所述条件随机场CRF模型的评价结果判断是否需要返回重新调整条件随机场CRF模型。
在本申请的一个或多个实施例中,条件随机场CRF(conditional random fieldalgorithm)结合了最大熵模型和隐马尔可夫模型的特点,是一种无向图模型,近年来在分词、词性标注和命名实体识别等序列标注任务中取得了很好的效果。条件随机场是一个典型的判别式模型,其联合概率可以写成若干势函数联乘的形式,其中最常用的是线性链条件随机场。
可以理解的是,所述客户端设备可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(PDA)、车载设备、智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表、智能手环等。
在另一种实际应用情形中,前述的软件自动测试装置进行软件自动测试的部分可以在如上述内容的服务器中执行,也可以所有的操作都在所述客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本申请对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器,用于软件自动测试的具体处理。
上述的客户端设备可以具有通信模块(即通信单元),可以与远程的服务器进行通信连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通信链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。
上述服务器与所述客户端设备之间可以使用任何合适的网络协议进行通信,包括在本申请提交日尚未开发出的网络协议。所述网络协议例如可以包括TCP/IP协议、UDP/IP协议、HTTP协议、HTTPS协议等。当然,所述网络协议例如还可以包括在上述协议之上使用的RPC协议(Remote Procedure Call Protocol,远程过程调用协议)、REST协议(Representational State Transfer,表述性状态转移协议)等。
具体通过下述各个实施例及应用实例分别进行详细说明。
为了提高软件测试方案选取及应用的自动化程度及效率,本申请提供一种软件自动测试方法的实施例,参见图1,基于软件自动测试装置执行的所述软件自动测试方法具体包含有如下内容:
步骤100:将当前的目标程序的关键字输入预设的软件测试方案匹配模型,并根据该软件测试方案匹配模型的输出获取所述目标程序对应的软件测试方案,其中,所述软件测试方案匹配模型包括预设的条件随机场CRF模型。
可以理解的是,所述关键字是指对应的目标程序或历史程序的程序类型,也可以为用户输入的目标程序或历史程序的程序类型或现象。
在执行步骤100之前,首先要确定测试方案,并基于测试方案的类型对历史软件文件进行标签设置,而后根据设有标签的历史软件文件训练得到所述条件随机场CRF模型,其中的测试方式归类具体为:通过业界内常用方法调研,挑选出测试工程中常见的测试方法,如测试方法有黑盒测试、白盒测试、灰盒测试等;案例设计方法收集及归类:根据测试方法归类的属性,收集案例设计方法的样本,如常见的案例设计方法归类有:黑盒测试案例设计方法有:等价类、边界值、因果图;白盒测试案例设计方法有:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、多重条件覆盖、路径覆盖、逻辑覆盖比较;灰盒测试等。
步骤200:基于所述软件测试方案对所述目标程序进行自动测试。
从上述描述可知,本申请实施例提供的软件自动测试方法,通过应用条件随机场CRF模型实现目标程序的软件测试方案的自动选取,能够有效提高软件测试方案匹配的自动化程度及智能化程度,并能够有效提供软件测试方案匹配的效率,能够有效节省人力成本及时间成本;通过基于所述软件测试方案对所述目标程序进行自动测试,能够更进一步提高软件测试的自动化程度,并能够有效提高软件测试的效率及可靠性,可以应用于软件研发过程中,高效自动提供测试案例;测试工程师可以根据开发提交的程序,自动匹配出来的软件测试方案,快速进行测试工程的验证,提高整个软件研发的效率。
为了预先训练条件随机场CRF模型,在本申请提供的软件自动测试方法的一个实施例,参见图2,所述软件自动测试方法中的步骤100之前具体包含有如下内容:
步骤011:获取多个历史程序文件;
步骤012:提取各个历史程序文件的关键字并接收各个所述关键字分别对应的软件测试方案标识,其中,所述关键字用于表示对应程序的程序类型;
步骤013:根据各个所述历史程序文件的关键字分别对应的软件测试方案标识,分别设置各个所述历史程序文件各自对应的标签,以形成对应的训练集;
步骤014:基于预设的条件随机场CRF算法,根据所述训练集训练得到用于输出程序对应的软件测试方案标识的条件随机场CRF模型。
具体来说,首先筛选程序的相关属性进行相关标签定义,如JAVA程序,程序中带有if,else等关键字,引用的方法可以用判定/条件覆盖的方法验证。可将该程序进行标签定义了判定/条件覆盖的标签。而后进行模型算法的选择,因为是需要机器自动学***均等方法,使用LSTM模型可以更好的捕捉到较长距离的依赖关系。因为LSTM通过训练过程可以学到记忆哪些信息和遗忘哪些信息,通过BiLSTM可以更好的捕捉双向的语义依赖。故本次机器学习采用BILSTM+CRF算法进行建模。
在程序的属性梳理中已整理了相关程序的相关属性,为这些属性设计相关的标签,以程序中if,else,elseif为例,则可以采用判定-条件覆盖的案例设计方法,如程序中带有while将程序可以判定覆盖的方法。
抽调软件项目开发组内的程序工程师及测试工程师来完成标签的收集,让整个研发团队按照自己把程序语句组装成案例设计的标签,将这些标签收集并按照上一步骤中标签的设计完成标签的标注。同时,案例资产库中已经存在案例都标注了具体的设计方法。这样相当于按不同的程序类型区分了具体的案例设计的方法及相关案例。
PaddlePaddle框架中已经引用了CRF算法及BILSTM模型,使用方可以直接调用,该模型分为几个部分,第一层PaddlePaddle框架层,第二层为BILSTM层,第三层为CRF层;第一层是框架层将测试案例及方法中的离散向量转换为连续向量,第二层使用BILSTM算法计算发射矩阵,矩阵中的每个值表示当前字符有多大概率是哪个程序标签,第三层是使用CRF算法来获得上下文信息;收集的程序标签可以手工分为验证集和训练集,并为了加快训练速度设置批量大小为128,同时进行20个epoch训练,训练好后的模型成为了可用的模型,该模型后则进行下一步的调优。
从上述描述可知,本申请实施例提供的软件自动测试方法,通过预先基于预设的条件随机场CRF算法,根据所述训练集训练得到用于输出程序对应的软件测试方案标识的条件随机场CRF模型,能够有效提高条件随机场CRF模型的应用可靠性及准确性,进而能够进一步提高软件测试方案匹配的自动化程度、智能化程度及效率。
为了提供一种模型验证调优方式,在本申请提供的软件自动测试方法的一个实施例,参见图3,所述软件自动测试方法中的步骤100之前以及步骤S014之后还具体包含有如下内容:
步骤020:对训练得到的所述条件随机场CRF模型进行模型验证,并根据对应的模型验证结果对所述条件随机场CRF模型进行调优处理,其中,所述调优处理包括:标签调优处理和/或模型调优处理。
具体来说,使用验证集的数据来完成模型的调优,调用模型来对验证集进行识别,观察相关命名实体即程序属性的识别情况,观察不同程序属性的识别情况,对于无法识别的属性进行算法调优,这里的调优有两个方法,第一个方法是对相关标签的调优,例如:continue这个实体识别度较低,那么首先观察现存标签中用判定覆盖这个标签标注是否准确,其次考虑是否需要新增相关的标签;第二个方法是对模型参数的调优,对于用户使用方法及案例的频率,针对频率参数增大或者减小从而达到最优值,然后再做一个案例的排序,按使用频率由高往低的顺序排。通过上述两个方法来建立新的模型关系,进一步提高本申请的适用性。
从上述描述可知,本申请实施例提供的软件自动测试方法,通过对训练得到的所述条件随机场CRF模型进行模型验证,并根据对应的模型验证结果对所述条件随机场CRF模型进行调优处理,能够进一步提高条件随机场CRF模型的应用可靠性及准确性,进而能够进一步提高软件测试方案匹配的自动化程度、智能化程度及效率。
为了进一步提高软件测试效率,在本申请提供的软件自动测试方法的一个实施例,参见图4,所述软件自动测试方法中的步骤100之前还具体包含有如下内容:
步骤031:接收各个软件自动测试请求,其中,所述软件自动测试请求中包含有目标程序及对应的关键字;
步骤032:将各个所述软件自动测试请求各自对应的目标程序的关键字加入索引。
从上述描述可知,本申请实施例提供的软件自动测试方法,对于程序中的代码,可以说不计其数,如果用程序中关键字里加上索引,这样用户使用时提交时匹配案例资产库里效率更高,也避免大量用户的使用导致查询效率的瓶颈。
为了进一步提高软件测试效率,在本申请提供的软件自动测试方法的一个实施例,参见图5,所述软件自动测试方法中的步骤100中还具体包含有如下内容:
步骤110:将当前的目标程序的关键字输入预设的软件测试方案匹配模型,以使所述软件测试方案匹配模型输出所述目标程序的软件测试方案标识。
步骤120:将所述软件测试方案匹配模型输出的所述目标程序的软件测试方案标识存入至批量定时处理任务中,以周期性对所述批量定时处理任务中的各个所述软件测试方案标识建立对应的索引文件并确定各个所述软件测试方案标识各自对应的软件测试方案。
从上述描述可知,本申请实施例提供的软件自动测试方法,建立批量定时任务,间隔一段时间对筛选出来的程序标签建立统一的索引文件,这样不会因为程序的复杂度及代码量的增加,能够使得耗时降低,并能够进一步提高软件测试的自动化程度、效率及可靠性。
为了进一步提高软件测试准确性,在本申请提供的软件自动测试方法的一个实施例,参见图6,所述软件自动测试方法中的步骤200之后还具体包含有如下内容:
步骤300:输出对所述目标程序进行自动测试后对应的测试结果,以基于该测试结果获取所述条件随机场CRF模型的评价结果。
具体来说,使用者根据***返回的结果,判断查询案例结果是否符合要求,如果符合,则本次查询结束,如果不符合,则反馈本次查询的结果到模型调优步骤,对数据模型进行进一步的调优。
从上述描述可知,本申请实施例提供的软件自动测试方法,通过根据输出的测试结果获取所述条件随机场CRF模型的评价结果来对条件随机场CRF模型进行调优处理,能够进一步提高条件随机场CRF模型的应用可靠性及准确性,进而能够进一步提高软件测试方案匹配的自动化程度、智能化程度及效率。
为了进一步提高软件测试的适用广泛性及全面性,在本申请提供的软件自动测试方法的一个实施例,所述软件自动测试方法中的所述软件测试方案包括:黑盒测试、白盒测试和灰盒测试中的至少一项。
从上述描述可知,本申请实施例提供的软件自动测试方法,通过提供软件测试方案的类型,能够有效提高软件自动测试的适用广泛性及全面性,进而能够进一步提高软件自动测试的自动化程度、效率及可靠性。
从软件层面来说,为了提高软件测试方案选取及应用的自动化程度及效率,本申请提供一种用于执行所述软件自动测试方法中全部或部分内容的软件自动测试装置的实施例,参见图7,所述软件自动测试装置具体包含有如下内容:
模型预测模块10,用于将当前的目标程序的关键字输入预设的软件测试方案匹配模型,并根据该软件测试方案匹配模型的输出获取所述目标程序对应的软件测试方案,其中,所述软件测试方案匹配模型包括预设的条件随机场CRF模型。
可以理解的是,所述关键字是指对应的目标程序或历史程序的程序类型,也可以为用户输入的目标程序或历史程序的程序类型或现象。
在执行模型预测模块10之前,首先要确定测试方案,并基于测试方案的类型对历史软件文件进行标签设置,而后根据设有标签的历史软件文件训练得到所述条件随机场CRF模型,其中的测试方式归类具体为:通过业界内常用方法调研,挑选出测试工程中常见的测试方法,如测试方法有黑盒测试、白盒测试、灰盒测试等;案例设计方法收集及归类:根据测试方法归类的属性,收集案例设计方法的样本,如常见的案例设计方法归类有:黑盒测试案例设计方法有:等价类、边界值、因果图;白盒测试案例设计方法有:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、多重条件覆盖、路径覆盖、逻辑覆盖比较;灰盒测试等。
自动测试模块20,用于基于所述软件测试方案对所述目标程序进行自动测试。
本申请提供的软件自动测试装置的实施例具体可以用于执行上述实施例中的软件自动测试方法的实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
从上述描述可知,本申请实施例提供的软件自动测试装置,通过应用条件随机场CRF模型实现目标程序的软件测试方案的自动选取,能够有效提高软件测试方案匹配的自动化程度及智能化程度,并能够有效提供软件测试方案匹配的效率,能够有效节省人力成本及时间成本;通过基于所述软件测试方案对所述目标程序进行自动测试,能够更进一步提高软件测试的自动化程度,并能够有效提高软件测试的效率及可靠性,可以应用于软件研发过程中,高效自动提供测试案例;测试工程师可以根据开发提交的程序,自动匹配出来的软件测试方案,快速进行测试工程的验证,提高整个软件研发的效率。
为了预先训练条件随机场CRF模型,在本申请提供的软件自动测试装置的一个实施例,所述软件自动测试装置还具体用于执行下述内容:
步骤011:获取多个历史程序文件;
步骤012:提取各个历史程序文件的关键字并接收各个所述关键字分别对应的软件测试方案标识,其中,所述关键字用于表示对应程序的程序类型;
步骤013:根据各个所述历史程序文件的关键字分别对应的软件测试方案标识,分别设置各个所述历史程序文件各自对应的标签,以形成对应的训练集;
步骤014:基于预设的条件随机场CRF算法,根据所述训练集训练得到用于输出程序对应的软件测试方案标识的条件随机场CRF模型。
具体来说,首先筛选程序的相关属性进行相关标签定义,如JAVA程序,程序中带有if,else等关键字,引用的装置可以用判定/条件覆盖的装置验证。可将该程序进行标签定义了判定/条件覆盖的标签。而后进行模型算法的选择,因为是需要机器自动学***均等装置,使用LSTM模型可以更好的捕捉到较长距离的依赖关系。因为LSTM通过训练过程可以学到记忆哪些信息和遗忘哪些信息,通过BiLSTM可以更好的捕捉双向的语义依赖。故本次机器学习采用BILSTM+CRF算法进行建模。
在程序的属性梳理中已整理了相关程序的相关属性,为这些属性设计相关的标签,以程序中if,else,elseif为例,则可以采用判定-条件覆盖的案例设计装置,如程序中带有while将程序可以判定覆盖的装置。
抽调软件项目开发组内的程序工程师及测试工程师来完成标签的收集,让整个研发团队按照自己把程序语句组装成案例设计的标签,将这些标签收集并按照上一步骤中标签的设计完成标签的标注。同时,案例资产库中已经存在案例都标注了具体的设计装置。这样相当于按不同的程序类型区分了具体的案例设计的装置及相关案例。
PaddlePaddle框架中已经引用了CRF算法及BILSTM模型,使用方可以直接调用,该模型分为几个部分,第一层PaddlePaddle框架层,第二层为BILSTM层,第三层为CRF层;第一层是框架层将测试案例及装置中的离散向量转换为连续向量,第二层使用BILSTM算法计算发射矩阵,矩阵中的每个值表示当前字符有多大概率是哪个程序标签,第三层是使用CRF算法来获得上下文信息;收集的程序标签可以手工分为验证集和训练集,并为了加快训练速度设置批量大小为128,同时进行20个epoch训练,训练好后的模型成为了可用的模型,该模型后则进行下一步的调优。
从上述描述可知,本申请实施例提供的软件自动测试装置,通过预先基于预设的条件随机场CRF算法,根据所述训练集训练得到用于输出程序对应的软件测试方案标识的条件随机场CRF模型,能够有效提高条件随机场CRF模型的应用可靠性及准确性,进而能够进一步提高软件测试方案匹配的自动化程度、智能化程度及效率。
为了提供一种模型验证调优方式,在本申请提供的软件自动测试装置的一个实施例,所述软件自动测试装置还具体用于执行下述内容:
步骤020:对训练得到的所述条件随机场CRF模型进行模型验证,并根据对应的模型验证结果对所述条件随机场CRF模型进行调优处理,其中,所述调优处理包括:标签调优处理和/或模型调优处理。
具体来说,使用验证集的数据来完成模型的调优,调用模型来对验证集进行识别,观察相关命名实体即程序属性的识别情况,观察不同程序属性的识别情况,对于无法识别的属性进行算法调优,这里的调优有两个装置,第一个装置是对相关标签的调优,例如:continue这个实体识别度较低,那么首先观察现存标签中用判定覆盖这个标签标注是否准确,其次考虑是否需要新增相关的标签;第二个装置是对模型参数的调优,对于用户使用装置及案例的频率,针对频率参数增大或者减小从而达到最优值,然后再做一个案例的排序,按使用频率由高往低的顺序排。通过上述两个装置来建立新的模型关系,进一步提高本申请的适用性。
从上述描述可知,本申请实施例提供的软件自动测试装置,通过对训练得到的所述条件随机场CRF模型进行模型验证,并根据对应的模型验证结果对所述条件随机场CRF模型进行调优处理,能够进一步提高条件随机场CRF模型的应用可靠性及准确性,进而能够进一步提高软件测试方案匹配的自动化程度、智能化程度及效率。
为了进一步提高软件测试效率,在本申请提供的软件自动测试装置的一个实施例,所述软件自动测试装置还具体用于执行下述内容:
步骤031:接收各个软件自动测试请求,其中,所述软件自动测试请求中包含有目标程序及对应的关键字;
步骤032:将各个所述软件自动测试请求各自对应的目标程序的关键字加入索引。
从上述描述可知,本申请实施例提供的软件自动测试装置,对于程序中的代码,可以说不计其数,如果用程序中关键字里加上索引,这样用户使用时提交时匹配案例资产库里效率更高,也避免大量用户的使用导致查询效率的瓶颈。
为了进一步提高软件测试效率,在本申请提供的软件自动测试装置的一个实施例,所述软件自动测试装置中的模型预测模块10还具体用于执行下述内容:
步骤110:将当前的目标程序的关键字输入预设的软件测试方案匹配模型,以使所述软件测试方案匹配模型输出所述目标程序的软件测试方案标识。
步骤120:将所述软件测试方案匹配模型输出的所述目标程序的软件测试方案标识存入至批量定时处理任务中,以周期性对所述批量定时处理任务中的各个所述软件测试方案标识建立对应的索引文件并确定各个所述软件测试方案标识各自对应的软件测试方案。
从上述描述可知,本申请实施例提供的软件自动测试装置,建立批量定时任务,间隔一段时间对筛选出来的程序标签建立统一的索引文件,这样不会因为程序的复杂度及代码量的增加,能够使得耗时降低,并能够进一步提高软件测试的自动化程度、效率及可靠性。
为了进一步提高软件测试准确性,在本申请提供的软件自动测试装置的一个实施例,所述软件自动测试装置还具体用于执行下述内容:
步骤300:输出对所述目标程序进行自动测试后对应的测试结果,以基于该测试结果获取所述条件随机场CRF模型的评价结果。
具体来说,使用者根据***返回的结果,判断查询案例结果是否符合要求,如果符合,则本次查询结束,如果不符合,则反馈本次查询的结果到模型调优步骤,对数据模型进行进一步的调优。
从上述描述可知,本申请实施例提供的软件自动测试装置,通过根据输出的测试结果获取所述条件随机场CRF模型的评价结果来对条件随机场CRF模型进行调优处理,能够进一步提高条件随机场CRF模型的应用可靠性及准确性,进而能够进一步提高软件测试方案匹配的自动化程度、智能化程度及效率。
为了进一步提高软件测试的适用广泛性及全面性,在本申请提供的软件自动测试装置的一个实施例,所述软件自动测试装置中的所述软件测试方案包括:黑盒测试、白盒测试和灰盒测试中的至少一项。
从上述描述可知,本申请实施例提供的软件自动测试装置,通过提供软件测试方案的类型,能够有效提高软件自动测试的适用广泛性及全面性,进而能够进一步提高软件自动测试的自动化程度、效率及可靠性。
为了进一步说明书本方案,本申请还提供一种软件自动测试方法的具体应用实例,本申请应用实例是针对测试案例中,用户通过提交程序,实现自动匹配测试方法及机器学习自动生成案例。用户输入程序类型或现象,自动匹配最佳测试方法供用户选择,机器学习根据用户提供标签选择最适合这个程序的测试方法,并自动生成案例。同时在机器学习根据用户的选择的频率,逐步优化选择的顺序,用户选择频率高的优先排序。
本申请应用实例有效的进行数据分析,通过机器学习技术来准确预测案例设计者所需案例,并最终生成给使用者,使软件测试效率有了提高,软件的研发周期进一步缩短。
参见图8,本申请应用实例提供的软件自动测试方法具体包含有如下内容:
步骤1:筛选程序关键字的相关属性,将程序相关的关键字存到数据库中;
步骤2:通过建立模型,让机器学习;
步骤3:根据程序库中,对已有的程序根据模型建立索引;
步骤4:机器学习方法判断及案例设计的选择;
步骤5:根据关键字提取的案例是否符合预期。
具体来说,本申请应用实例的技术方案主要分为如下几个步骤:
步骤一、测试方法归类:通过业界内常用方法调研,挑选出测试工程中常见的测试方法,如测试方法有黑盒测试、白盒测试、灰盒测试等;案例设计方法收集及归类:根据测试方法归类的属性,收集案例设计方法的样本,如常见的案例设计方法归类有:黑盒测试案例设计方法有:等价类、边界值、因果图;白盒测试案例设计方法有:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、多重条件覆盖、路径覆盖、逻辑覆盖比较;灰盒测试等。
步骤二、筛选程序的相关属性进行相关标签定义,如JAVA程序,程序中带有if,else等关键字,引用的方法可以用判定/条件覆盖的方法验证。可将该程序进行标签定义了判定/条件覆盖的标签。以表1进行举例说明,引用了不同的方法分析,及相关的不同案例组合。
表1
1.语句覆盖法
测试案例如下,可以可执行语句是指语句块1到语句块4中的语句。
{x=2,y=2}可以执行到语句块1和语句块4,所走的路径:a-b-e-f
{x=-4,y=0}可以执行到语句块2、语句块3和语句块4,所走的路径:a-c-d-f
这样,通过两个测试案例即达到了语句覆盖的标准,当然,测试案例并不是唯一的。
假设第一个判断语句if(x>0&&y>0)中的“&&”被程序员错误地写成了“||”,即if(x>0||y>0),使用上面设计出来的一组测试案例来进行测试,仍然可以达到100%的语句覆盖,所以语句覆盖无法发现上述的逻辑错误。
2.判定覆盖
设计足够多的测试案例,使得被测试程序中的每个判断的“真”、“假”分支至少被执行一次。在本例中共有两个判断if(x>0&&y>0)(记为P1)和if(magic<0)(记为P2),判断覆盖对应的测试案例参见表2。
表2
数据 | P1 | P2 | 路径 |
{x=3,y=3} | T | F | a-b-e-f |
{x=-3,y=0} | F | T | a-c-d-f |
两个判断的取真、假分支都已经被执行过,所以满足了判断覆盖的标准。
测试的充分性
假设第一个判断语句if(x>0&&y>0)中的“&&”被程序员错误地写成了“||”,即if(x>0||y>0),使用上面设计出来的一组测试案例来进行测试,仍然可以达到100%的判定覆盖,所以判定覆盖也无法发现上述的逻辑错误。
跟语句覆盖相比:由于可执行语句要不就在判定的真分支,要不就在假分支上,所以,只要满足了判定覆盖标准就一定满足语句覆盖标准,反之则不然。
3.条件覆盖
设计足够多的测试案例,使得被测试程序中的每个判断语句中的每个逻辑条件的可能值至少被满足一次。也可以描述成设计足够多的测试案例,使得被测试程序中的每个逻辑条件的可能值至少被满足一次。
在本例中有两个判断if(x>0&&y>0)(记为P1)和if(magic<0)(记为P2),共计三个条件x>0(记为C1)、y>0(记为C2)和magic<0(记为C3)。条件覆盖的测试案例参见表3。
表3
数据 | C1 | C2 | C3 | P1 | P2 | 路径 |
{x=3,y=3} | T | T | T | T | F | a-b-e-f |
{x=-3,y=0} | F | F | F | F | T | a-c-d-f |
三个条件的各种可能取值都满足了一次,因此,达到了100%条件覆盖的标准。
测试的充分性
上面的测试案例同时也到达了100%判定覆盖的标准,但并不能保证达到100%条件覆盖标准的测试案例(组)都能到达100%的判定覆盖标准,举例如表4:
表4
数据 | C1 | C2 | C3 | P1 | P2 | 路径 |
{x=3,y=0} | T | F | T | F | F | a-c-e-f |
{x=-3,y=5} | F | T | F | F | F | a-c-e-f |
既然条件覆盖标准不能100%达到判定覆盖的标准,也就不一定能够达到100%的语句覆盖标准了。
4.判定/条件覆盖
设计足够多的测试案例,使得被测试程序中的每个判断本身的判定结果(真假)至少满足一次,同时,每个逻辑条件的可能值也至少被满足一次。即同时满足100%判定覆盖和100%条件覆盖的标准。判定/条件覆盖的测试案例参见表5。
表5
数据 | C1 | C2 | C3 | P1 | P2 | 路径 |
{x=3,y=3} | T | T | T | T | F | a-b-e-f |
{x=-3,y=0} | F | F | F | F | T | a-c-d-f |
所有条件的可能取值都满足了一次,而且所有的判断本身的判定结果也都满足了一次。
测试的充分性
达到100%判定-条件覆盖标准一定能够达到100%条件覆盖、100%判定覆盖和100%语句覆盖。
步骤三、建立模型,利用机器学习算法调优
①首先进行模型算法的选择,因为是需要机器自动学***均等方法,使用LSTM模型可以更好的捕捉到较长距离的依赖关系。因为LSTM通过训练过程可以学到记忆哪些信息和遗忘哪些信息,通过BiLSTM可以更好的捕捉双向的语义依赖。故本次机器学习采用BILSTM+CRF算法进行建模。
②程序标签设计
③在程序的属性梳理中已整理了相关程序的相关属性,在这里为这些属性设计相关的标签,以程序中if,else,elseif为例,则可以采用判定-条件覆盖的案例设计方法,如程序中带有while将程序可以判定覆盖的方法。
④程序标签的收集及处理
抽调软件项目开发组内的程序工程师及测试工程师来完成标签的收集,让整个研发团队按照自己把程序语句组装成案例设计的标签,将这些标签收集并按照上一步骤中标签的设计完成标签的标注。同时,案例资产库中已经存在案例都标注了具体的设计方法。这样相当于按不同的程序类型区分了具体的案例设计的方法及相关案例。
⑤模型搭建并训练
PaddlePaddle框架中已经引用了CRF算法及BILSTM模型,使用方可以直接调用,该模型分为几个部分,第一层PaddlePaddle框架层,第二层为BILSTM层,第三层为CRF层;第一层是框架层将测试案例及方法中的离散向量转换为连续向量,第二层使用BILSTM算法计算发射矩阵,矩阵中的每个值表示当前字符有多大概率是哪个程序标签,第三层是使用CRF算法来获得上下文信息;收集的程序标签可以手工分为验证集和训练集,并为了加快训练速度设置批量大小为128,同时进行20个epoch训练,训练好后的模型成为了可用的模型,该模型后则进行下一步的调优。
⑥模型调优
使用验证集的数据来完成模型的调优,调用模型来对验证集进行识别,观察相关命名实体即程序属性的识别情况,观察不同程序属性的识别情况,对于无法识别的属性进行算法调优,这里的调优有两个方法,第一个方法是对相关标签的调优,例如:continue这个实体识别度较低,那么首先观察现存标签中用判定覆盖这个标签标注是否准确,其次考虑是否需要新增相关的标签;第二个方法是对模型参数的调优,对于用户使用方法及案例的频率,针对频率参数增大或者减小从而达到最优值,然后再做一个案例的排序,按使用频率由高往低的顺序排。通过上述两个方法来建立新的模型关系,进一步提高本申请的适用性。
⑦接口及服务的封装
使用微服务方法来实现模型的调用,即服务的入参字段为程序的关键字,如程序中带的while,该服务将该语句传入模型,并将模型的输出返回为用户。
步骤四、创建索引文件
对于程序中的代码,可以说不计其数,如果用程序中关键字里加上索引,这样用户使用时提交时匹配案例资产库里效率更高,也避免大量用户的使用导致查询效率的瓶颈。建立批量定时任务,间隔一段时间对筛选出来的程序标签建立统一的索引文件,这样不会因为程序的复杂度及代码量的增加,导致耗时增加。
步骤五、方法判断及案例设计的选择
对于检查程序输入条件,可以预期输出结果的,则可以用因果分析的方法,并引用案例资产库中涉及的案例。如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试案例的设计。
具体举例如下:
恒等:若ci是1,则ei也是1;否则ei为0。
非:若ci是1,则ei是0;否则ei是1。
或:若c1或c2或c3是1,则ei是1;否则ei为0。“或”可有任意个输入。
与:若c1和c2都是1,则ei为1;否则ei为0。“与”也可有任意个输入。
步骤六、判断查询结果
使用者根据***返回的结果,判断查询案例结果是否符合要求,如果符合,则本次查询结束,如果不符合,则反馈本次查询的结果到模型调优步骤,对数据模型进行进一步的调优。
综上所述,本申请提供了一种软件自动测试方法,提出了一种利用机器学习技术,将程序按自学习及高频率的案例及方法进行直接引用,可以应用于软件研发过程中,高效自动提供测试案例。通过本方法,测试工程师可以根据开发提交的程序,自动匹配出来的案例及其方法,快速进行测试工程的验证,提高整个软件研发的效率。
从硬件层面来说,为了提高软件测试方案选取及应用的自动化程度及效率,本申请提供一种用于实现所述软件自动测试方法中的全部或部分内容的电子设备的实施例,所述电子设备具体包含有如下内容:
图9为本申请实施例的电子设备9600的***构成的示意框图。如图9所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图9是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
在一实施例中,软件自动测试功能可以被集成到中央处理器中。其中,中央处理器可以被配置为进行如下控制:
步骤100:将当前的目标程序的关键字输入预设的软件测试方案匹配模型,并根据该软件测试方案匹配模型的输出获取所述目标程序对应的软件测试方案,其中,所述软件测试方案匹配模型包括预设的条件随机场CRF模型。
可以理解的是,所述关键字是指对应的目标程序或历史程序的程序类型,也可以为用户输入的目标程序或历史程序的程序类型或现象。
在执行步骤100之前,首先要确定测试方案,并基于测试方案的类型对历史软件文件进行标签设置,而后根据设有标签的历史软件文件训练得到所述条件随机场CRF模型,其中的测试方式归类具体为:通过业界内常用方法调研,挑选出测试工程中常见的测试方法,如测试方法有黑盒测试、白盒测试、灰盒测试等;案例设计方法收集及归类:根据测试方法归类的属性,收集案例设计方法的样本,如常见的案例设计方法归类有:黑盒测试案例设计方法有:等价类、边界值、因果图;白盒测试案例设计方法有:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、多重条件覆盖、路径覆盖、逻辑覆盖比较;灰盒测试等。
步骤200:基于所述软件测试方案对所述目标程序进行自动测试。
从上述描述可知,本申请实施例提供的电子设备,通过应用条件随机场CRF模型实现目标程序的软件测试方案的自动选取,能够有效提高软件测试方案匹配的自动化程度及智能化程度,并能够有效提供软件测试方案匹配的效率,能够有效节省人力成本及时间成本;通过基于所述软件测试方案对所述目标程序进行自动测试,能够更进一步提高软件测试的自动化程度,并能够有效提高软件测试的效率及可靠性,可以应用于软件研发过程中,高效自动提供测试案例;测试工程师可以根据开发提交的程序,自动匹配出来的软件测试方案,快速进行测试工程的验证,提高整个软件研发的效率。
在另一个实施方式中,软件自动测试装置可以与中央处理器9100分开配置,例如可以将软件自动测试装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现软件自动测试功能。
如图9所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图9中所示的所有部件;此外,电子设备9600还可以包括图9中没有示出的部件,可以参考现有技术。
如图9所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
本申请的实施例还提供能够实现上述实施例中的软件自动测试方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的执行主体为服务器或客户端的软件自动测试方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤100:将当前的目标程序的关键字输入预设的软件测试方案匹配模型,并根据该软件测试方案匹配模型的输出获取所述目标程序对应的软件测试方案,其中,所述软件测试方案匹配模型包括预设的条件随机场CRF模型。
可以理解的是,所述关键字是指对应的目标程序或历史程序的程序类型,也可以为用户输入的目标程序或历史程序的程序类型或现象。
在执行步骤100之前,首先要确定测试方案,并基于测试方案的类型对历史软件文件进行标签设置,而后根据设有标签的历史软件文件训练得到所述条件随机场CRF模型,其中的测试方式归类具体为:通过业界内常用方法调研,挑选出测试工程中常见的测试方法,如测试方法有黑盒测试、白盒测试、灰盒测试等;案例设计方法收集及归类:根据测试方法归类的属性,收集案例设计方法的样本,如常见的案例设计方法归类有:黑盒测试案例设计方法有:等价类、边界值、因果图;白盒测试案例设计方法有:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、多重条件覆盖、路径覆盖、逻辑覆盖比较;灰盒测试等。
步骤200:基于所述软件测试方案对所述目标程序进行自动测试。
从上述描述可知,本申请实施例提供的计算机可读存储介质,通过应用条件随机场CRF模型实现目标程序的软件测试方案的自动选取,能够有效提高软件测试方案匹配的自动化程度及智能化程度,并能够有效提供软件测试方案匹配的效率,能够有效节省人力成本及时间成本;通过基于所述软件测试方案对所述目标程序进行自动测试,能够更进一步提高软件测试的自动化程度,并能够有效提高软件测试的效率及可靠性,可以应用于软件研发过程中,高效自动提供测试案例;测试工程师可以根据开发提交的程序,自动匹配出来的软件测试方案,快速进行测试工程的验证,提高整个软件研发的效率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种软件自动测试方法,其特征在于,包括:
将当前的目标程序的关键字输入预设的软件测试方案匹配模型,并根据该软件测试方案匹配模型的输出获取所述目标程序对应的软件测试方案,其中,所述软件测试方案匹配模型包括预设的条件随机场CRF模型;
基于所述软件测试方案对所述目标程序进行自动测试。
2.根据权利要求1所述的软件自动测试方法,其特征在于,在所述将当前的目标程序的关键字输入预设的软件测试方案匹配模型之前,还包括:
获取多个历史程序文件;
提取各个历史程序文件的关键字并接收各个所述关键字分别对应的软件测试方案标识,其中,所述关键字用于表示对应程序的程序类型;
根据各个所述历史程序文件的关键字分别对应的软件测试方案标识,分别设置各个所述历史程序文件各自对应的标签,以形成对应的训练集;
基于预设的条件随机场CRF算法,根据所述训练集训练得到用于输出程序对应的软件测试方案标识的条件随机场CRF模型。
3.根据权利要求2所述的软件自动测试方法,其特征在于,在所述将当前的目标程序的关键字输入预设的软件测试方案匹配模型之前,还包括:
对训练得到的所述条件随机场CRF模型进行模型验证,并根据对应的模型验证结果对所述条件随机场CRF模型进行调优处理,其中,所述调优处理包括:标签调优处理和/或模型调优处理。
4.根据权利要求1所述的软件自动测试方法,其特征在于,在所述将当前的目标程序的关键字输入预设的软件测试方案匹配模型之前,还包括:
接收各个软件自动测试请求,其中,所述软件自动测试请求中包含有目标程序及对应的关键字;
将各个所述软件自动测试请求各自对应的目标程序的关键字加入索引。
5.根据权利要求1所述的软件自动测试方法,其特征在于,所述根据该软件测试方案匹配模型的输出获取所述目标程序对应的软件测试方案,包括:
将所述软件测试方案匹配模型输出的所述目标程序的软件测试方案标识存入至批量定时处理任务中,以周期性对所述批量定时处理任务中的各个所述软件测试方案标识建立对应的索引文件并确定各个所述软件测试方案标识各自对应的软件测试方案。
6.根据权利要求1所述的软件自动测试方法,其特征在于,在所述基于所述软件测试方案对所述目标程序进行自动测试之后,还包括:
输出对所述目标程序进行自动测试后对应的测试结果,以基于该测试结果获取所述条件随机场CRF模型的评价结果。
7.根据权利要求1至6任一项所述的软件自动测试方法,其特征在于,所述软件测试方案包括:黑盒测试、白盒测试和灰盒测试中的至少一项。
8.一种软件自动测试装置,其特征在于,包括:
模型预测模块,用于将当前的目标程序的关键字输入预设的软件测试方案匹配模型,并根据该软件测试方案匹配模型的输出获取所述目标程序对应的软件测试方案,其中,所述软件测试方案匹配模型包括预设的条件随机场CRF模型;
自动测试模块,用于基于所述软件测试方案对所述目标程序进行自动测试。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的软件自动测试方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7任一项所述的软件自动测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110233769.8A CN112948251B (zh) | 2021-03-03 | 2021-03-03 | 软件自动测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110233769.8A CN112948251B (zh) | 2021-03-03 | 2021-03-03 | 软件自动测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112948251A true CN112948251A (zh) | 2021-06-11 |
CN112948251B CN112948251B (zh) | 2024-06-21 |
Family
ID=76247290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110233769.8A Active CN112948251B (zh) | 2021-03-03 | 2021-03-03 | 软件自动测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112948251B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116578500A (zh) * | 2023-07-14 | 2023-08-11 | 安徽华云安科技有限公司 | 基于强化学习的代码测试方法、装置以及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130024847A1 (en) * | 2011-07-21 | 2013-01-24 | International Business Machines Corporation | Software test automation systems and methods |
CN110209586A (zh) * | 2019-06-04 | 2019-09-06 | 苏州浪潮智能科技有限公司 | 一种基于人工智能的软件自动化测试方法,终端及存储介质 |
US20200341888A1 (en) * | 2019-04-25 | 2020-10-29 | Hewlett Packard Enterprise Development Lp | System and methods for amalgamation of artificial intelligence (ai) and machine learning (ml) in test creation, execution, and prediction |
CN112148620A (zh) * | 2020-10-12 | 2020-12-29 | 中国农业银行股份有限公司 | 一种测试案例生成方法及相关设备 |
-
2021
- 2021-03-03 CN CN202110233769.8A patent/CN112948251B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130024847A1 (en) * | 2011-07-21 | 2013-01-24 | International Business Machines Corporation | Software test automation systems and methods |
US20200341888A1 (en) * | 2019-04-25 | 2020-10-29 | Hewlett Packard Enterprise Development Lp | System and methods for amalgamation of artificial intelligence (ai) and machine learning (ml) in test creation, execution, and prediction |
CN110209586A (zh) * | 2019-06-04 | 2019-09-06 | 苏州浪潮智能科技有限公司 | 一种基于人工智能的软件自动化测试方法,终端及存储介质 |
CN112148620A (zh) * | 2020-10-12 | 2020-12-29 | 中国农业银行股份有限公司 | 一种测试案例生成方法及相关设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116578500A (zh) * | 2023-07-14 | 2023-08-11 | 安徽华云安科技有限公司 | 基于强化学习的代码测试方法、装置以及设备 |
CN116578500B (zh) * | 2023-07-14 | 2023-09-26 | 安徽华云安科技有限公司 | 基于强化学习的代码测试方法、装置以及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112948251B (zh) | 2024-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112199580B (zh) | 面向云计算和大数据定位的业务处理方法及人工智能平台 | |
CN109961032B (zh) | 用于生成分类模型的方法和装置 | |
CN116049397B (zh) | 基于多模态融合的敏感信息发现并自动分类分级方法 | |
CN110598869B (zh) | 基于序列模型的分类方法、装置、电子设备 | |
CN111382228A (zh) | 用于输出信息的方法和装置 | |
CN112163074A (zh) | 用户意图识别方法、装置、可读存储介质及电子设备 | |
CN114494709A (zh) | 特征提取模型的生成方法、图像特征提取方法和装置 | |
CN116595154A (zh) | 任务处理方法以及自动问答方法 | |
CN116756576B (zh) | 数据处理方法、模型训练方法、电子设备及存储介质 | |
CN112948251B (zh) | 软件自动测试方法及装置 | |
CN117725220A (zh) | 文档表征和文档检索的方法、服务器及存储介质 | |
CN117669726A (zh) | 自然语言问题处理方法、电子设备及计算机可读存储介质 | |
CN110532448B (zh) | 基于神经网络的文档分类方法、装置、设备及存储介质 | |
CN114491010A (zh) | 信息抽取模型的训练方法及装置 | |
CN116881462A (zh) | 文本数据处理、文本表示、文本聚类的方法及设备 | |
CN111860852A (zh) | 用于处理数据的方法、装置和*** | |
CN114898184A (zh) | 模型训练方法、数据处理方法、装置及电子设备 | |
CN114676705A (zh) | 一种对话关系处理方法、计算机及可读存储介质 | |
CN112926952A (zh) | 结合云计算的大数据办公业务处理方法及大数据服务器 | |
CN111382191A (zh) | 一种基于深度学习的机器学习识别方法 | |
Fugini et al. | A text analytics architecture for smart companies | |
CN117934997B (zh) | 用于corner case样本生成的大语言模型***及方法 | |
CN111460169B (zh) | 语义表达式生成方法、装置及设备 | |
CN117992598B (zh) | 基于大模型的需求响应方法、装置、介质及设备 | |
CN111581944B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |