发明内容
本申请提供一种测试用例构建装置、方法、电子设备及存储介质,用以解决现有技术中在手工测试用例编写前需要提前约定书写格式(例如预设关键字),以及提前完成用例库,然后按照约定的书写格式编写手工测试用例,基于手工测试用例和用例库实现自动化测试用例的构建,方案实现较为复杂的缺陷,实现不需要提前约定书写格式,用例库也不需要提前完成,直接对第一测试用例进行语句拆分、文本分类、代码实现和代码组合来构建自动化测试用例,方案实现较为简单的目的。
本申请至少一实施例提供一种自动化测试用例构建装置,包括:
获取模块,用于获取待拆分的第一测试用例;
拆分模块,用于将所述第一测试用例拆分成多个包含单个操作的第一初始语句;
分类模块,用于对多个所述第一初始语句进行文本分类,得到多个第一目标语句;
确定模块,用于确定所述多个第一目标语句分别对应的第一实现代码;
构建模块,用于基于多个所述第一初始语句在所述第一测试用例中的执行顺序,将多个所述第一实现代码进行组合,构建第一自动化测试用例。
根据本申请至少一实施例提供的自动化测试用例构建装置,所述分类模块包括:
筛选单元,用于从多个所述第一初始语句中筛选出多组重复的第一初始语句;
合并单元,用于针对每组重复的第一初始语句,将所述每组重复的第一初始语句合并为一个所述第一目标语句;
归集单元,用于针对多个所述第一初始语句中不重复的第一初始语句,将文本相似度大于预设值的每组第一初始语句归集为一个所述第一目标语句。
根据本申请至少一实施例提供的自动化测试用例构建装置,所述归集单元具体用于:
针对多个所述第一初始语句中不重复的第一初始语句,基于编辑距离或杰卡德距离计算第一初始语句之间的文本相似度;
将所述文本相似度大于预设值的每组第一初始语句归集为一个所述第一目标语句。
根据本申请至少一实施例提供的自动化测试用例构建装置,所述第一测试用例中的测试步骤对应的第一初始语句为测试子步骤,所述第一测试用例中的期望结果对应的第一初始语句为期望子结果;
所述拆分模块包括:
第一拆分单元,用于将所述第一测试用例中的测试步骤拆分成多个包含单个操作的测试子步骤;
第二拆分单元,用于将所述第一测试用例中的期望结果拆分成多个包含单个操作的期望子结果。
根据本申请至少一实施例提供的自动化测试用例构建装置,包括:
所述获取模块还用于:获取待拆分的第二测试用例;
所述拆分模块还用于:将所述第二测试用例拆分成多个包含单个操作的第二初始语句;
所述分类模块还用于:对多个所述第二初始语句进行文本分类,得到多个第二目标语句;
所述确定模块还用于:针对与所述第一目标语句不同的第二目标语句,确定所述第二目标语句对应的第二实现代码;
所述构建模块还用于:基于多个所述第二初始语句在所述第二测试用例中的执行顺序,将与所述第一目标语句相同的第二目标语句对应的第一实现代码和与所述第一目标语句不同的第二目标语句对应的第二实现代码进行组合,构建第二自动化测试用例。
根据本申请至少一实施例提供的自动化测试用例构建装置,所述装置还包括:
存储模块,用于以字典格式存储所述第一初始语句、所述第一初始语句的重复次数和所述第一实现代码运行所需数据。
本申请至少一实施例还提供一种自动化测试用例构建方法,包括:
获取待拆分的第一测试用例;
将所述第一测试用例拆分成多个包含单个操作的第一初始语句;
对多个所述第一初始语句进行文本分类,得到多个第一目标语句;
确定所述多个第一目标语句分别对应的第一实现代码;
基于多个所述第一初始语句在所述第一测试用例中的执行顺序,将多个所述第一实现代码进行组合,构建第一自动化测试用例。
根据本申请至少一实施例提供的自动化测试用例构建方法,所述方法还包括:
获取待拆分的第二测试用例;
将所述第二测试用例拆分成多个包含单个操作的第二初始语句;
对多个所述第二初始语句进行文本分类,得到多个第二目标语句;
针对与所述第一目标语句不同的第二目标语句,确定所述第二目标语句对应的第二实现代码;
基于多个所述第二初始语句在所述第二测试用例中的执行顺序,将与所述第一目标语句相同的第二目标语句对应的第一实现代码和与所述第一目标语句不同的第二目标语句对应的第二实现代码进行组合,构建第二自动化测试用例。
本申请至少一实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一实施例所述的自动化测试用例构建方法的步骤。
本申请至少一实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一实施例所述的自动化测试用例构建方法的步骤。
本申请提供的自动化测试用例构建装置、方法、电子设备及存储介质,首先,获取待拆分的第一测试用例,也即,不需要提前约定书写格式,用例库也不需要提前完成,可以直接获取待拆分的第一测试用例进行后续处理;然后,将第一测试用例拆分成多个包含单个操作的第一初始语句,对多个第一初始语句进行文本分类,得到多个第一目标语句;并确定多个第一目标语句分别对应的第一实现代码;最后,基于多个第一初始语句在第一测试用例中的执行顺序,将多个第一实现代码进行组合,可以构建第一自动化测试用例;也即,直接对第一测试用例进行语句拆分、文本分类、代码实现和代码组合等一系列处理,来构建自动化测试用例,方案实现较为简单。因此,本申请不需要提前约定书写格式,用例库也不需要提前完成,可以直接对第一测试用例进行语句拆分、文本分类、代码实现和代码组合来构建自动化测试用例,方案实现较为简单。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面结合图1至图4描述本申请的自动化测试用例构建装置。
请参照图1,图1是本申请至少一实施例提供的自动化测试用例构建装置的结构示意图。如图1所示,该自动化测试用例构建装置可以包括:获取模块10、拆分模块20、分类模块30、确定模块40和构建模块50,其中:
获取模块10,用于获取待拆分的第一测试用例。
具体地,第一测试用例可以为手工测试用例,手工测试用例是测试人员手动编写的测试用例。获取系统输入的待拆分的第一测试用例,待拆分的第一测试用例先前未进行任何关键字约定。
拆分模块20,用于将第一测试用例拆分成多个包含单个操作的第一初始语句。
具体地,如图2所示,将第一测试用例中的语句拆分成多个第一初始语句,并长期存储。其中,每个第一初始语句包含单个操作,第一测试用例中的语句包括:测试步骤和期望结果。
分类模块30,用于对多个第一初始语句进行文本分类,得到多个第一目标语句。
具体地,如图2所示,对多个第一初始语句进行文本分类,文本含义相近的第一初始语句会合并为第一目标语句。如图3所示,在分类开始之前,多个第一初始语句存储在未分类句子库中。在分类开始时,完成一个句子的分类,从未分类句子库中删除该句子,保存到已分类句子库中,直到所有第一初始语句全部分类完毕。
可选地,在测试开发人员的操作界面显示多个第一初始语句的分类结果,即多个第一目标语句。然后,如图2所示,基于测试开发人员的调整操作对可合并语句进行调整,以及对语句总体分类进行审核,基于测试开发人员的创建操作创建第一目标语句的分类。
例如:测试开发人员可以重新审查第一目标语句的句子表达,若存在相同含义的第一目标语句,则进行调整操作,以对其进行统一表达,尽量减少第一目标语句的数量。同时,测试开发人员也会根据开发需要进行创建操作,以创建第一目标语句的分类,由于此时第一初始语句已进行初步分类,测试开发人员分类较为容易。
确定模块40,用于确定多个第一目标语句分别对应的第一实现代码。
具体地,测试开发人员根据多个第一目标语句进行开发工作,得到多个第一目标语句分别对应的第一实现代码。获取测试开发人员开发的多个第一目标语句分别对应的第一实现代码。代码实现时,由于相似的第一初始语句已被分类,测试开发人员可更好地设计接口,实现较为方便。
构建模块50,用于基于多个第一初始语句在第一测试用例中的执行顺序,将多个第一实现代码进行组合,构建第一自动化测试用例。
具体地,如图4所示,根据第一测试用例的标识获取多个第一初始语句,通过第一初始语句获取对应的第一实现代码,然后按照多个第一初始语句在第一测试用例中的执行顺序,将多个第一初始语句分别对应的第一实现代码进行组合,构建第一自动化测试用例。
本实施例提供的自动化测试用例构建装置,首先,获取待拆分的第一测试用例,也即,不需要提前约定书写格式,用例库也不需要提前完成,可以直接获取待拆分的第一测试用例进行后续处理;然后,将第一测试用例拆分成多个包含单个操作的第一初始语句,对多个第一初始语句进行文本分类,得到多个第一目标语句;并确定多个第一目标语句分别对应的第一实现代码;最后,基于多个第一初始语句在第一测试用例中的执行顺序,将多个第一实现代码进行组合,可以构建第一自动化测试用例;也即,直接对第一测试用例进行语句拆分、文本分类、代码实现和代码组合等一系列处理,来构建自动化测试用例,方案实现较为简单。因此,本实施例不需要提前约定书写格式,用例库也不需要提前完成,可以直接对第一测试用例进行语句拆分、文本分类、代码实现和代码组合来构建自动化测试用例,方案实现较为简单。
在一实施例中,第一测试用例中的测试步骤对应的第一初始语句为测试子步骤,第一测试用例中的期望结果对应的第一初始语句为期望子结果;
拆分模块20包括:第一拆分单元、第二拆分单元和保留单元,其中:
第一拆分单元,用于将第一测试用例中的测试步骤拆分成多个包含单个操作的测试子步骤;
第二拆分单元,用于将第一测试用例中的期望结果拆分成多个包含单个操作的期望子结果。
表1测试步骤和期望结果
测试步骤 |
期望结果 |
S1 |
E1 |
S2 |
E2 |
S3 |
E3 |
… |
… |
以表1为例,假设第一测试用例中的测试步骤包括:测试步骤S1、S2、S3等,将第一测试用例中的测试步骤S1拆分成测试子步骤s11和s12。同理,将测试步骤S2拆分成测试子步骤s21;将测试步骤S3拆分成测试子步骤s31和s32。
假设第一测试用例中的期望结果包括:期望结果E1、E2、E3等,将第一测试用例中的期望结果E1拆分成期望子结果e11和e12。同理,将期望结果E2拆分成期望子结果e21、e22和e23;将期望结果E3拆分成期望子结果e31。
根据上述拆分可得到如表2所示的拆分后的测试用例。
表2拆分后的测试用例
测试步骤 |
期望结果 |
S1[s11,s12] |
E1[e11,e12] |
S2[s21] |
E2[e21,e22,e23] |
S3[s31,s32] |
E3[e31] |
… |
… |
表3为第一初始语句的第一实现代码的基础步骤,具体如下:
表3第一实现代码的基础步骤
测试步骤 |
期望结果 |
Auto_Step_1 |
Except_Result_1 |
Auto_Step_2 |
Except_Result_2 |
Auto_Step_3 |
Except_Result_3 |
… |
… |
对表3所示的第一实现代码的基础步骤进行组合,可得到如表4所示的自动化测试用例。
表4自动化测试用例
在一实施例中,分类模块30包括:筛选单元、合并单元和归集单元,其中:
筛选单元,用于从多个第一初始语句中筛选出多组重复的第一初始语句。
具体地,读取所有拆分的第一初始语句,统计第一初始语句的使用次数,例如:[[“句子1”:1],[“句子2”:2]…]。筛选出多组重复的第一初始语句,即使用次数大于1的第一初始语句。
合并单元,用于针对每组重复的第一初始语句,将每组重复的第一初始语句合并为一个第一目标语句。
具体地,假设一组句子2使用了2次,将重复的两个句子2合并为一个句子2,即第一目标语句,可以减少语句数量。
归集单元,用于针对多个第一初始语句中不重复的第一初始语句,将文本相似度大于预设值的每组第一初始语句归集为一个第一目标语句。
具体地,对于不重复的第一初始语句,通过短文本分类技术,依据短句特征和关键词,将文本相似度大于预设值的每组第一初始语句归集为一个第一目标语句。也即,将语义接近的每组第一初始语句合并为一个第一目标语句。
在本实施例中,通过分别合并重复的第一初始语句和语义接近的第一初始语句,可以实现多个第一初始语句的文本分类。
可选地,归集单元具体用于:
针对多个第一初始语句中不重复的第一初始语句,基于编辑距离或杰卡德距离计算第一初始语句之间的文本相似度;
将文本相似度大于预设值的每组第一初始语句归集为一个第一目标语句。
在本实施例中,通过编辑距离或杰卡德距离可以计算第一初始语句之间的文本相似度,基于文本相似度可以对语义接近的第一初始语句进行聚类,从而实现多个第一初始语句的文本分类。
在一实施例中,获取模块10还用于:获取待拆分的第二测试用例;
拆分模块20还用于:将第二测试用例拆分成多个包含单个操作的第二初始语句;
分类模块30还用于:对多个第二初始语句进行文本分类,得到多个第二目标语句;
确定模块40还用于:针对与第一目标语句不同的第二目标语句,确定第二目标语句对应的第二实现代码;
构建模块50还用于:基于多个第二初始语句在第二测试用例中的执行顺序,将与第一目标语句相同的第二目标语句对应的第一实现代码和与第一目标语句不同的第二目标语句对应的第二实现代码进行组合,构建第二自动化测试用例。
具体地,对于第二测试用例的拆分和分类,与第一测试用例相同,此处不再赘述。不同之处在于:测试开发人员在开发时,对于已经开发过的目标语句对应的实现代码,不再重复开发,仅需开发未出现过的第二目标语句对应的第二实现代码。在构建第二自动化测试用例,可以利用已存在的第一实现代码,将其和新开发的第二实现代码进行组合。
在本实施例中,由于测试开发人员在开发时,仅需开发未出现过的第二目标语句对应的第二实现代码,有利于后续自动化用例库的快速扩展,使自动化测试能够覆盖到更多的功能。
在一实施例中,该自动化测试用例构建装置还包括:
存储模块,用于以字典格式存储第一初始语句、第一初始语句的重复次数和第一实现代码运行所需数据。
具体地,以字典格式存储,关键字为第一初始语句,内容包含:第一初始语句的重复次数和第一实现代码运行所需数据,测试开发人员可参考重复次数、第一实现代码运行所需数据等数据规划开发计划,有利于测试开发人员进行后续的规划开发计划。
下面对本申请提供的自动化测试用例构建方法进行描述,下文描述的自动化测试用例构建方法与上文描述的自动化测试用例构建装置可相互对应参照。
请参照图5,图5是本申请至少一实施例提供的自动化测试用例构建方法的流程示意图。如图5所示,该自动化测试用例构建方法可以包括以下步骤:
步骤501、获取待拆分的第一测试用例;
步骤502、将第一测试用例拆分成多个包含单个操作的第一初始语句;
步骤503、对多个第一初始语句进行文本分类,得到多个第一目标语句;
步骤504、确定多个第一目标语句分别对应的第一实现代码;
步骤505、基于多个第一初始语句在第一测试用例中的执行顺序,将多个第一实现代码进行组合,构建第一自动化测试用例。
本实施例提供的自动化测试用例构建方法,不需要提前约定书写格式,用例库也不需要提前完成,可以直接对第一测试用例进行语句拆分、文本分类、代码实现和代码组合来构建自动化测试用例,方案实现较为简单。
可选地,步骤503包括:
步骤5031、从多个第一初始语句中筛选出多组重复的第一初始语句;
步骤5032、针对每组重复的第一初始语句,将每组重复的第一初始语句合并为一个第一目标语句;
步骤5033、针对多个第一初始语句中不重复的第一初始语句,将文本相似度大于预设值的每组第一初始语句归集为一个第一目标语句。
可选地,步骤5033包括:
针对多个第一初始语句中不重复的第一初始语句,基于编辑距离或杰卡德距离计算第一初始语句之间的文本相似度;
将文本相似度大于预设值的每组第一初始语句归集为一个第一目标语句。
可选地,第一测试用例中的测试步骤对应的第一初始语句为测试子步骤,第一测试用例中的期望结果对应的第一初始语句为期望子结果;
步骤502包括:
步骤5021、将第一测试用例中的测试步骤拆分成多个包含单个操作的测试子步骤;
步骤5022、将第一测试用例中的期望结果拆分成多个包含单个操作的期望子结果。
可选地,该方法还包括:
获取待拆分的第二测试用例;
将第二测试用例拆分成多个包含单个操作的第二初始语句;
对多个第二初始语句进行文本分类,得到多个第二目标语句;
针对与第一目标语句不同的第二目标语句,确定第二目标语句对应的第二实现代码;
基于多个第二初始语句在第二测试用例中的执行顺序,将与第一目标语句相同的第二目标语句对应的第一实现代码和与第一目标语句不同的第二目标语句对应的第二实现代码进行组合,构建第二自动化测试用例。
可选地,该方法还包括:
以字典格式存储第一初始语句、第一初始语句的重复次数和第一实现代码运行所需数据。
图6示例了一种电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行自动化测试用例构建方法,该方法可以包括:获取待拆分的第一测试用例;将第一测试用例拆分成多个包含单个操作的第一初始语句;对多个第一初始语句进行文本分类,得到多个第一目标语句;确定多个第一目标语句分别对应的第一实现代码;基于多个第一初始语句在第一测试用例中的执行顺序,将多个第一实现代码进行组合,构建第一自动化测试用例。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本申请还提供一种计算机程序产品,该计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,该计算机程序包括程序指令,当该程序指令被计算机执行时,计算机能够执行上述各方法所提供的自动化测试用例构建方法,该方法可以包括:获取待拆分的第一测试用例;将第一测试用例拆分成多个包含单个操作的第一初始语句;对多个第一初始语句进行文本分类,得到多个第一目标语句;确定多个第一目标语句分别对应的第一实现代码;基于多个第一初始语句在第一测试用例中的执行顺序,将多个第一实现代码进行组合,构建第一自动化测试用例。
又一方面,本申请还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的自动化测试用例构建方法,该方法可以包括:获取待拆分的第一测试用例;将第一测试用例拆分成多个包含单个操作的第一初始语句;对多个第一初始语句进行文本分类,得到多个第一目标语句;确定多个第一目标语句分别对应的第一实现代码;基于多个第一初始语句在第一测试用例中的执行顺序,将多个第一实现代码进行组合,构建第一自动化测试用例。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。