CN110162468A - 一种测试方法、装置以及计算机可读存储介质 - Google Patents

一种测试方法、装置以及计算机可读存储介质 Download PDF

Info

Publication number
CN110162468A
CN110162468A CN201910343944.1A CN201910343944A CN110162468A CN 110162468 A CN110162468 A CN 110162468A CN 201910343944 A CN201910343944 A CN 201910343944A CN 110162468 A CN110162468 A CN 110162468A
Authority
CN
China
Prior art keywords
test
demand data
case
data
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
Application number
CN201910343944.1A
Other languages
English (en)
Inventor
张伟杰
陈振坤
周俊
邓月堂
王鹏程
夏凡
吴菁
姚良超
曾夏
何光华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910343944.1A priority Critical patent/CN110162468A/zh
Publication of CN110162468A publication Critical patent/CN110162468A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Abstract

本发明实施例公开了一种测试方法、装置以及计算机可读存储介质,该测试方法包括:获取基于自然语言的需求文档,将所述需求文档转换成结构化需求数据;获取所述结构化需求数据所包含的测试执行单元,根据所述测试执行单元,将所述结构化需求数据转换成有向图,对所述有向图所包含的路径进行遍历,生成所述结构化需求数据对应的测试场景集合;获取所述测试场景集合中每个测试场景所包含的业务约束信息,根据所述业务约束信息,生成所述每个测试场景分别对应的测试用例,根据所述测试用例中的测试执行单元,生成所述测试用例对应的测试脚本。采用本发明实施例,可以降低人工成本,并提高测试用例的完备性。

Description

一种测试方法、装置以及计算机可读存储介质
技术领域
本发明涉及软件测试领域,尤其涉及一种测试方法、装置以及计算机可读存储介质。
背景技术
随着互联网的快速发展,用户使用软件开发商提供的服务的频率日益增加。在软件发布之前,为确保软件的稳定性,可以对软件进行一系列的测试。
现有的测试方法可以通过脚本语言对系统进行建模,根据构建好的模型可以生成测试用例,连接适配器,可以将生成的测试用例作为数据,驱动被测系统执行测试。由于测试用例和测试脚本的生成需要测试人员使用脚本语言进行编写,进而增加了人工成本;而且测试用例直接由模型生成,模型的完备性决定测试用例的完备性,当构建的模型不能完全复原需求时,容易导致测试用例的完备性过低。
发明内容
本发明实施例提供一种测试方法、装置以及计算机可读存储介质,可以降低人工成本,提高测试用例的完备性。
本发明实施例一方面提供了一种测试方法,包括:
获取基于自然语言的需求文档,将所述需求文档转换成结构化需求数据;
获取所述结构化需求数据所包含的测试执行单元,根据所述测试执行单元,将所述结构化需求数据转换成有向图,对所述有向图所包含的路径进行遍历,生成所述结构化需求数据对应的测试场景集合;
获取所述测试场景集合中每个测试场景所包含的业务约束信息,根据所述业务约束信息,生成所述每个测试场景分别对应的测试用例,根据所述测试用例中的测试执行单元,生成所述测试用例对应的测试脚本。
其中,所述结构化需求数据包括每个测试用例中的所述测试执行单元;所述根据所述测试用例所中的测试执行单元,生成所述测试用例对应的测试脚本,包括:
对结构化需求数据中的所述测试执行单元进行相似度分析和层次聚类,确定所述结构化需求数据对应的应用程序接口集合;
从所述应用程序接口集合中,获取与所述测试用例相匹配的应用程序接口子集合;
获取所述测试用例对应的元数据,根据所述元数据与所述应用程序接口子集合,生成所述测试用例对应的测试脚本。
其中,所述对结构化需求数据中的所述测试执行单元进行相似度分析和层次聚类,确定所述结构化需求数据对应的应用程序接口集合,包括:
获取所述每个测试用例中的测试执行单元分别对应的测试特征,根据所述测试特征,确定所述测试执行单元之间的相似度;
将所述相似度大于相似度阈值的测试执行单元划分到相同的簇,得到多个具有属性类别的簇;
根据每个簇的属性类别,确定所述结构化需求数据对应的应用程序接口集合;所述应用程序接口集合中的每个应用程序接口分别与一个属性类别相关联。
其中,所述获取所述测试用例对应的元数据,包括:
基于互信息与左右熵,获取所述结构化需求数据中所包含的更新短语,将所述更新短语添加至业务词库;
根据所述业务词库对所述结构化需求数据进行分词处理,获取所述结构化需求数据中的目标短语;
根据所述目标短语,确定所述结构化需求数据对应的元数据集,从所述元数据集中获取与所述测试用例相匹配的元数据。
其中,所述根据所述元数据与所述应用程序接口子集合,生成所述测试用例对应的测试脚本,包括:
获取所述应用程序接口子集合中每个应用程序接口分别对应的子代码;
将所述子代码进行组合,生成所述测试用例对应的初始测试脚本;
获取所述元数据中的测试参数,根据所述测试参数对所述初始化测试脚本进行赋值,生成所述测试用例对应的测试脚本。
其中,所述方法还包括:
响应针对所述结构化需求数据的查询操作,输出所述结构化需求数据中与所述查询操作相关联的目标需求数据;
响应针对所述目标需求数据的修改操作,对所述目标需求数据进行修改,对修改后的目标需求数据进行语法检查,根据修改后且语法正常的目标需求数据对所述结构化需求数据进行更新。
其中,所述方法还包括:
加载所述测试脚本,根据所述测试脚本生成所述测试用例的测试结果,输出所述测试结果。
其中,所述方法还包括:
将所述测试脚本发送至多台测试设备,以使所述多台测试设备加载所述测试脚本;
获取所述多台测试设备针对所述测试脚本的测试结果,输出所述测试结果。
其中,所述加载所述测试脚本,根据所述测试脚本生成所述测试用例的测试结果,输出所述测试结果,包括:
加载所述测试脚本,在所述测试脚本的第一运行过程中获取第一页面视图,获取所述第一页面视图中的第一文本信息;
在所述测试脚本的第二运行过程中获取第二页面视图,获取所述第二页面视图中的第二文本信息;
根据所述第一文本信息和第二文本信息,生成针对所述测试用例的测试结果,输出所述测试结果。
本发明实施例一方面提供了一种测试装置,包括:
数据转换模块,用于获取基于自然语言的需求文档,将所述需求文档转换成结构化需求数据;
场景生成模块,用于获取所述结构化需求数据所包含的测试执行单元,根据所述测试执行单元,将所述结构化需求数据转换成有向图,对所述有向图所包含的路径进行遍历,生成所述结构化需求数据对应的测试场景集合;
脚本生成模块,用于获取所述测试场景集合中每个测试场景所包含的业务约束信息,根据所述业务约束信息,生成所述每个测试场景分别对应的测试用例,根据所述测试用例中的测试执行单元,生成所述测试用例对应的测试脚本。
其中,所述脚本生成模块包括:
聚类单元,用于对结构化需求数据中的所述测试执行单元进行相似度分析和层次聚类,确定所述结构化需求数据对应的应用程序接口集合;
匹配单元,用于从所述应用程序接口集合中,获取与所述测试用例相匹配的应用程序接口子集合;
测试脚本生成单元,用于获取所述测试用例对应的元数据,根据所述元数据与所述应用程序接口子集合,生成所述测试用例对应的测试脚本。
其中,所述聚类单元包括:
相似度确定子单元,用于获取所述每个测试用例中的测试执行单元分别对应的测试特征,根据所述测试特征,确定所述测试执行单元之间的相似度;
划分子单元,用于将所述相似度大于相似度阈值的测试执行单元划分到相同的簇,得到多个具有属性类别的簇;
接口确定子单元,用于根据每个簇的属性类别,确定所述结构化需求数据对应的应用程序接口集合;所述应用程序接口集合中的每个应用程序接口分别与一个属性类别相关联。
其中,所述测试脚本生成单元包括:
更新短语获取子单元,用于基于互信息与左右熵,获取所述结构化需求数据中所包含的更新短语,将所述更新短语添加至业务词库;
目标短语获取子单元,用于根据所述业务词库对所述结构化需求数据进行分词处理,获取所述结构化需求数据中的目标短语;
元数据获取子单元,用于根据所述目标短语,确定所述结构化需求数据对应的元数据集,从所述元数据集中获取与所述测试用例相匹配的元数据。
其中,所述测试脚本生成单元还包括:
代码获取子单元,用于获取所述应用程序接口子集合中每个应用程序接口分别对应的子代码;
代码组合子单元,用于将所述子代码进行组合,生成所述测试用例对应的初始测试脚本;
赋值子单元,用于获取所述元数据中的测试参数,根据所述测试参数对所述初始化测试脚本进行赋值,生成所述测试用例对应的测试脚本。
其中,所述装置还包括:
查询响应模块,用于响应针对所述结构化需求数据的查询操作,输出所述结构化需求数据中与所述查询操作相关联的目标需求数据;
修改响应模块,用于响应针对所述目标需求数据的修改操作,对所述目标需求数据进行修改,对修改后的目标需求数据进行语法检查,根据修改后且语法正常的目标需求数据对所述结构化需求数据进行更新。
其中,所述装置还包括:
加载模块,用于加载所述测试脚本,根据所述测试脚本生成所述测试用例的测试结果,输出所述测试结果。
其中,所述装置还包括:
发送模块,用于将所述测试脚本发送至多台测试设备,以使所述多台测试设备加载所述测试脚本;
输出模块,用于获取所述多台测试设备针对所述测试脚本的测试结果,输出所述测试结果。
其中,所述加载模块包括:
第一文本获取单元,用于加载所述测试脚本,在所述测试脚本的第一运行过程中获取第一页面视图,获取所述第一页面视图中的第一文本信息;
第二文本获取单元,用于在所述测试脚本的第二运行过程中获取第二页面视图,获取所述第二页面视图中的第二文本信息;
结果生成单元,用于根据所述第一文本信息和第二文本信息,生成针对所述测试用例的测试结果,输出所述测试结果。
本发明实施例一方面提供了一种测试装置,包括:处理器和存储器;
所述处理器和存储器相连,其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行如本发明实施例中一方面中的方法。
本发明实施例另一方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如本发明实施例中一方面中的方法。
本发明实施例可以将自然语言描述的需求文档转换成结构化需求数据,对结构化需求数据进行语义分析,获取结构化需求数据中的测试执行单元(也可以称为路径步骤),根据获取到的测试执行单元生成有向图,并通过对有向图进行路径探索,可以生成测试场景集合,进而可以根据每个测试场景中所包含的业务约束信息,生成每个测试场景对应的测试用例,进而可以根据测试用例中的测试执行单元,确定测试用例对应的测试脚本。可见,通过对自然语言描述的结构化需求数据进行自然语言处理,并根据结构化需求数据自动生成测试脚本,即测试脚本可以根据结构化需求数据自动生成,无需进行人工编写,进而可以降低人工成本,还可以避免需求文档中测试场景的缺漏,进而提高测试用例的完备性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种测试方法的场景示意图;
图2是本发明实施例提供的一种测试方法的流程示意图;
图3是本发明实施例提供的一种测试场景有向图的示意图;
图4是本发明实施例提供的一种结构化需求与测试用例关系的结构示意图;
图5是本发明实施例提供的一种测试用例的界面示意图;
图6是本发明实施例提供的另一种测试方法的流程示意图;
图7a-图7f是本发明实施例提供的一种测试方法的界面示意图;
图8是本发明实施例提供的一种需求管理系统的时序示意图;
图9是本发明实施例提供的另一种测试方法的流程示意图;
图10a-图10c是本发明实施例提供的另一种测试方法的界面示意图;
图11是本发明实施例提供的一种测试方法的架构示意图;
图12是本发明实施例提供的一种测试装置的结构示意图;
图13是本发明实施例提供的另一种测试装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,是本发明实施例提供的一种测试方法的场景示意图。在软件发布之前,通过对软件进行测试,可以保证软件的稳定性。如图1所示,软件的整个测试过程可以通过测试装置来完成,该测试装置可以包括终端侧和后台服务侧。在对软件进行测试之前,需要对软件产品的需求功能进行梳理,并使用自然语言进行描述,撰写成需求文档,用户可以将撰写完成的需求文档上传至终端设备200a,在终端设备200a获取到该需求文档后,可以根据该需求文档进行后续处理(包括生成测试用例和测试脚本等),也可以将该需求文档发送至服务器100a,由服务器100a根据该需求文档来完成后续处理,这里不做限定。本实施例以服务器100a进行后续处理为例,整个测试过程可以包括:在终端设备200a获取到用户上传的需求文档后,可以将该需求文档发送至服务器100a,服务器100a可以对该需求文档进行解析,并检查该需求文档的语法合法性,在检查合格后可以将该需求文档转换为结构化需求数据,即将需求文档转换成二维形式的数据;通过对结构化需求数据进行语义分析,可以识别结构化需求数据中所包含的内容(可以包括需求数据中的前置条件、路径步骤、补充约束等),确定该结构化需求数据对应的测试场景集合(该测试场景集合可以包括多个测试场景),进而可以根据每个测试场景所包含的路径步骤以及每个步骤的业务约束信息,自动生成每个测试场景分别对应的测试用例,并将根据上述测试场景集合生成的全部测试用例发送至终端设备200a,以使终端设备200a可以将全部测试用例进行汇总,以表格的形式在屏幕上进行显示。例如,该结构化需求数据是针对某应用软件的支付系统的测试,则通过对使用自然语言描述的结构化需求数据进行语义识别,可以根据某个测试场景自动生成测试用例300a。该测试用例300a中可以包括用例名、前置条件、用例步骤、预期结果、测试用例ID。其中,用例名、前置条件、用例步骤、预期结果均可以从结构化需求数据中进行识别并提取,测试用例ID是服务器100a为测试用例自动匹配的标识信息,每个测试用例对应一个测试用例ID,即测试用例ID可以作为测试用例的唯一标识。服务器100a可以根据测试用例300a所包含的数据信息,确定与该测试用例300a相匹配的应用程序编程接口(ApplicationProgramming Interface,API),也可以称为应用程序接口,应用程序编程接口为一些预先定义的函数,可以提供应用程序与开发人员以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节,每个应用程序编程接口均可以提供不同的特定功能。通过调用与该测试用例300a相关联的应用程序编程接口中的代码信息,可以自动生成该测试用例300a对应的测试脚本400a,该测试脚本400a中的代码1可以为def test_app_pay_8146_12837(self),表示定义好一个以测试用例ID命名的函数;代码2可以为self.init(“8146_12837”),表示对测试用例ID为8146_12837的用例进行初始化(可以包括数据获取和前置操作);代码3可以为self.user_apply_for_payment(),表示测试用例中用户请求付款步骤对应的函数,即应用程序编程接口;代码4可以为self.user_use_new_card_payment(),表示测试用例中用户选择新卡付款步骤对应的函数;代码5可以为self.user_choose_other_verify_method(),表示测试用例中用户选择其他验证方式步骤对应的函数;代码6可以为self.user_choose_return(),表示用户选择返回对应的函数;代码7可以为self.exit(),表示为用例结束后的账号还原及后置操作对应的函数。运行该测试脚本400a,可以得到该测试脚本400a的运行结果,将运行结果发送至终端设备200a,以使终端设备200a在屏幕的展示页面上显示上述运行结果,便于用户查看运行结果。
其中,终端设备200a可以包括手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobile internet device,MID)或其他具有安装浏览器功能的终端设备。
请参见图2,是本发明实施例提供的一种测试方法的流程示意图。如图2所示,该测试方法可以包括以下步骤:
步骤S101,获取基于自然语言的需求文档,将所述需求文档转换成结构化需求数据;
具体的,用户可以在测试装置的网页浏览器上上传自然语言描述的需求文档,在用户上传成功后,测试装置可以获取用户上传的需求文档,并对该需求文档进行解析,检查该需求文档的格式(如docx格式等)以及语法的合法性,将检查合格的需求文档转换为结构化需求数据。换言之,可以将需求文档中的非结构化数据(即文档)转换成可以存储在数据库中,用二维表结构来逻辑表达的结构化数据。其中,非结构化数据是指以各种类型的文件形式存放的数据,通常无法直接知道文件内容,需要通过对应的软件才能打开浏览,此类数据没有规定的结构,不易于进行管理;结构化数据是指具有一定结构性、可以划分为固定的基本组成要素,并通过一个或多个二维表来表示的数据,结构化数据可以存储在关系数据库中,具有一定的逻辑结构。
需要说明的是,上述需求文档可以按照巴科斯范式(Backus-Naur Form,BNF)进行编写,BNF范式是一种形式化的语法表示方法,用来描述语法的一种形式体系,BNF范式是一种典型的元语言。BNF范式具有固定的语法结构,因此在将按照BNF范式编写的需求文档转换成结构化需求数据之前,需要检查需求文档中文本数据的语法是否符合BNF范式的语法结构,即检查语法的合法性。当检测到需求文档中存在语法不合法的文本信息时,可以在终端设备的浏览器上弹出一个提示窗口,提醒用户对需求文档数据进行修改后再次上传;当需求文档中的全部文本数据的语法结构均符合BNF范式的语法结构时,可以将按照BNF范式编写的需求文档转换成结构化需求数据,并将结构化需求数据录入数据库中,以便用户进行查询、修改等操作。
步骤S102,获取所述结构化需求数据所包含的测试执行单元,根据所述测试执行单元,将所述结构化需求数据转换成有向图,对所述有向图所包含的路径进行遍历,生成所述结构化需求数据对应的测试场景集合;
具体的,测试装置可以利用自动分词、词性分析、句法分析和语义分析等神经语言程序学(Neuro-Linguistic Programming,NLP)技术对使用自然语言描述的结构化需求数据进行分析,识别出该结构化需求数据中的测试执行单元(也可以称为路径步骤)和业务规则等信息,通过识别出的信息可以将结构化需求数据转换成有向图,即可以将结构化需求数据中的测试执行单元或者业务规则作为有向图中的点,测试执行单元之间或者业务规则之间的跳转作为有向图中的边,生成该结构化需求数据对应的有向图。可以对该有向图进行路径探索,深度优先遍历所有路径,生成该结构化需求数据对应的测试场景集合。请一并参见图3,是本发明实施例提供的一种测试场景有向图的示意图。如图3所示,结构化需求数据对应的有向图可以包括主路径(也可以成为基本路径)和多条扩展路径,如扩展路径1、扩展路径2、扩展路径3、扩展路径4等,扩展路径的起始点可以为主路径中的某一个测试执行单元,终点可以为主路径中的另一个测试执行单元,也可以为主路径之外的另一个测试执行单元。通过对该有向图进行路径探索,当遍历完该有向图中的所有路径时,可以生成该有向图对应的测试场景集合,测试场景集合中的每一个测试场景均包含主路径,具体的测试场景集合可以参见表1:
表1
测试场景 路径组合
场景1 主路径
场景2 主路径+扩展路径1
场景3 主路径+扩展路径1+扩展路径2
场景4 主路径+扩展路径3
场景5 主路径+扩展路径4
场景6 主路径+扩展路径3+扩展路径4
步骤S103,获取所述测试场景集合中每个测试场景所包含的业务约束信息,根据所述业务约束信息,生成所述每个测试场景分别对应的测试用例,根据所述测试用例中的测试执行单元,生成所述测试用例对应的测试脚本。
具体的,测试装置可以根据自然语言的语法规则(如主谓宾关系),并获取每个测试场景所包含的每个测试执行单元的业务约束信息,生成每个测试场景分别对应的测试用例,其中,业务约束信息可以是指测试执行单元在执行过程中的一些约束条件。请一并参见图4,是本发明实施例提供的一种结构化需求与测试用例关系的结构示意图。如图4所示,测试用例的生成取决于结构化需求数据中的描述,结构化需求数据可以包括软件产品功能测试过程中的执行者40a以及关于用例41a的详细描述,完整的用例41a可以包括前置条件42a、后置条件43a、基本路径44a、扩展路径45a、补充约束46a,当然,对于用例41a,还可以包括能够体现用例目标的用例名。前置条件42a可以是指启动该用例41a所应该满足的条件(如用例的初始化设置);后置条件43a可以是指在该用例41a完成之后,还需要执行什么操作(如账号还原);基本路径44a可以是指该用例41a在触发事件到目标完成的步骤;扩展路径45a可以是指对上述基本路径44a的扩展,同样需要说明步骤;补充约束46a可以是指该用例41a实现时需要考虑的规则和约束条件,补充约束46a可以包括字段列表47a、业务规则48a、质量需求49a、设计约束50a。字段列表47a可以是指该用例41a实现过程中需要进行输入或输出的限定字段,如成功付款用例中,用户输入的订单金额即为字段列表47a;业务规则48a可以包括业务参数规则51a和业务处理规则52a,参数校验规则是指在用例41a实现过程中涉及到参数信息时所需的规则,业务处理规则52a可以是指用例41a相关业务处理过程所需遵循的规则;质量需求49a可以是指用户或开发者对产品的质量需求;设计约束50a可以是指在研发过程中,为产品设计的各种界面形式,如对产品进行某操作后,应该显示的界面是怎样的,这都是产品开发者在设计过程中提前设计好的。在实际测试中,可以根据产品的实际需求来决定用例的描述内容,具体的描述内容不做限定,如用例41a的补充约束中不包含字段列表47a时,可以不进行描述等。测试装置通过对用例41a进行分析,可以获取用例41a中基本路径44a和扩展路径45a所对应的路径属性,可以将获取路径属性的过程称为用例交互过程,具体过程可以描述为:接收到用户请求54a,即接收到用户发起的用例执行请求后,可以进行系统校验55a,即进行用户输入合法性校验;在完成系统校验55a后,可以根据校验结果进行系统处理56a,并将系统处理56a结果进行系统返回57a,系统处理56a可以用于处理用例41a中的路径步骤(包括基本路径44a和扩展路径45a),系统返回57a可以用于返回用例41a中的后置条件43a。通过上述用例交互过程,可以自动生成用例41a对应的测试用例300b。在测试用例300b中,可以包括用例场景、前置条件、用例步骤和预期结果。测试用例300b中的用例场景可以包括正常场景和异常场景,正常场景表示可以达到用例目标的场景,异常场景表示不能达到用例目标的场景,在用例场景中可以包括结构化需求数据中的用例名。以正常场景为例,测试用例300b中的前置条件即为结构化需求数据中前置条件42a;用例步骤可以为基本路径44a和扩展路径45a中所有主语为执行者40a的步骤;预期结果可以为系统处理56a和系统返回57a的路径步骤集合和用例41a中后置条件43a(若路径步骤的补充约束包含字段列表47a,可以将字段列表47a中的字段作为用例41a实现过程中的详细检查点)。例如某个正常场景为:转账方发起付款,付款成功;前置条件为:转账方已登录;测试步骤为:1.转账方发起转账,2.转账方提交转账请求;预期结果为:1.系统记录状态为“等待支付”的转账信息,2.系统通知支付系统收款。
测试装置在根据结构化需求数据对应的测试场景集合自动生成相应的测试用例后,可以在展示页面上展示生成的所有测试用例,并为每个测试用例配置一个测试用例ID。请一并参见图5,是本发明实施例提供的一种测试用例的界面示意图。如图5所示,在展示页面上可以用表格的形式(如excel表格)进行显示,以便用户进行浏览,如一个完整的测试用例可以包括:用例名为“付款,用户提交付款信息,请求付款,密码输入键盘格式校验”,前置条件为“1.用户已登录,2.【系统】存在状态为“待付款”交易订单”,用例步骤为“1.用户请求付款,2.用户提交付款信息,请求付款”,预期结果为“密码输入键盘格式校验,是否仅存在0-9数字”,测试用例ID为“8146_13347”。在测试装置的展示页面上,用户可以在浏览了上述测试用例后,若用户不满意现有测试用例的覆盖情况,用户可以通过触发“添加经验测试用例59a”所在区域,根据人为测试经验添加测试用例,在用户输入经验测试用例后,可以对测试用例表格进行更新并保存;另外,用户还可以触发“下载excel版测试用例58a”所在区域,下载上述更新后的测试用例表格。其中,触发“添加经验测试用例59a”所在区域和“下载excel版测试用例58a”所在区域的方式可以包括使用鼠标点击、手指触摸、语音等方式。
在生成每个测试场景分别对应的测试用例后,可以根据测试用例中的测试执行单元,确定每个测试用例中每个测试执行单元对应的应用程序接口,通过调用应用程序接口对应的子代码,可以自动生成每个测试用例对应的测试脚本。换言之,在整个测试脚本生成的过程中,可以根据测试用例对应的应用程序接口,自动生成对上述应用程序接口的调用,无需人工干预即可自动生成整个测试脚本。
本发明实施例可以将自然语言描述的需求文档转换成结构化需求数据,对结构化需求数据进行语义分析,获取结构化需求数据中的测试执行单元(也可以称为路径步骤),根据获取到的测试执行单元生成有向图,并通过对有向图进行路径探索,可以生成测试场景集合,进而可以根据每个测试场景中所包含的业务约束信息,生成每个测试场景对应的测试用例,进而可以根据测试用例中的测试执行单元,确定测试用例对应的测试脚本。可见,通过对自然语言描述的结构化需求数据进行自然语言处理,并根据结构化需求数据自动生成测试脚本,即测试脚本可以根据结构化需求数据自动生成,无需进行人工编写,进而可以降低人工成本,还可以避免需求文档中测试场景的缺漏,进而提高测试用例的完备性。
请参见图6,是本发明实施例提供的另一种测试方法的流程示意图。如图6所示,该测试方法可以包括以下步骤:
步骤S201,获取基于自然语言的需求文档,将所述需求文档转换成结构化需求数据;
其中,步骤S201的具体实现方式可以参见上述图2所对应实施例中的步骤S101,这里不再进行赘述。
步骤S202,响应针对所述结构化需求数据的查询操作,输出所述结构化需求数据中与所述查询操作相关联的目标需求数据;
具体的,测试装置在将需求文档转换城结构化需求数据后,可以将结构化需求数据存储在数据库中并为用户提供页面进行查询和修改。当用户在测试装置的页面输入用例名称等信息在结构化需求数据中进行数据查询时,测试装置可以响应该用户针对结构化需求数据的查询操作,在测试装置的页面上输出该结构化需求数据中与输入的用例名称等信息相匹配的目标需求数据,即输出与输入的用例名称等信息相匹配的用例描述内容。请一并参见图7a和图7b,是本发明实施例提供的一种测试方法的界面示意图。如图7a所示,对于某应用软件支付系统的功能测试需求文档,当用户输入用例名称进行查询时,可以在展示页面上显示与该用例名称相匹配的描述内容,如用户输入的用例名称为“某应用支付简化注册用户-付款”,则在页面上可以展示出“某应用支付简化注册用户-付款”用例的相关描述,可以包括该用例对应的目标系统(即待测试系统)、用例名称、主执行者和辅助执行者等信息和菜单栏71a,并可以为用户提供编辑、收藏等功能。由于是对某应用支付系统的功能测试,因此目标系统即为该应用支付系统,主执行者为应用的支付简化注册用户,辅助执行者为银行系统(由于涉及到用户的付款,因此需要银行系统进行辅助),可见从目标系统以及用例名称中,可以得知该用例的测试对象和该用例需要达到的目标;菜单栏71a可以包括涉众利益(是指受到应用支付系统影响的人或组织的利益)、前置条件、后置条件、路径步骤以及补充约束等选项,用户可以选择不同的选项查看相应的内容。例如,用户选择路径步骤选项,可以查看该用例对应的详细步骤72a,详细步骤72a中可以显示该用例包含的基本路径,可以用编号1,2,…来表示基本路径,例如:基本路径1可以表示为:1.用户提交付款信息,请求付款,基本路径2可以表示为:2.系统检查付款信息和交易信息的合法性等。详细步骤中还可以包括扩展路径,可以用编号1a,1b,…来表示基本路径1对应的扩展路径,用编号2a,2b,…来表示基本路径2对应的扩展路径,如:扩展路径1a可以表示为:1a.用户取消付款,扩展路径1b可以表示为:1b.用户选择添加银行卡支付等。扩展路径还可以包括扩展子路径,可以用编号1a1,1a2,…来表示扩展路径1a对应的扩展子路径,例如,扩展子路径1a1可以表示为:1a1.系统进入9(即基本路径9)。在详细步骤72a中,为便于查看每个步骤,可以对每个基本路径进行展开和折叠操作。当用户选择菜单栏71a中的补充约束选项时,如图7b所示,可以在展示页面上显示补充约束选项对应的子菜单栏73a,子菜单栏73a可以包括字段列表、业务规则、质量需求、设计约束等选项。当用户选择业务规则选项时,可以在展示页面上显示该用例中的业务规则所包含的具体规则,如业务规则可以包括优惠规则,并可以显示出该优惠规则约束的关联路径,例如,优惠规则可以关联2条路径,分别为基本路径1和扩展路径2a,还可以在展示页面上展示该优惠规则(该优惠规则可以为付款过程中代金券是否可用规则)中的具体检查点、检查结果以及处理方式。如优惠规则中的检查点为订单金额是否大于等于商户设置的可参加活动的订单金额,对应的检查结果为否,处理方式为不可用;检查点为该代金券是否在有效期内,对应的检查结果为否,处理方式为不可用等。
步骤S203,响应针对所述目标需求数据的修改操作,对所述目标需求数据进行修改,对修改后的目标需求数据进行语法检查,根据修改后且语法正常的目标需求数据对所述结构化需求数据进行更新;
具体的,测试装置可以在展示界面上为用户提供结构化需求数据修改功能,即若用户需要对结构化需求数据进行修改,则可以对需要修改的结构化需求数据进行查询,随后在查询结果展示页面上选择编辑功能,对结构化需求数据进行修改。当用户选择编辑选项,对展示页面上显示的目标需求数据进行重新编辑,并触发修改操作时,测试装置可以响应该用户针对目标需求数据的修改操作,获取修改后的目标需求数据,并对修改后的目标需求数据进行语法合法性检查,在检查合格(即语法合法)后,可以根据修改后的目标需求数据对结构化需求数据进行更新。请一并参见图7c-图7e,是本发明实施例提供的一种测试方法的界面示意图。如图7c所示,若用户需要对上述图7b所示的业务规则进行修改,则可以选择编辑功能。在用户选择编辑功能后,可以在展示页面上显示编辑窗口74a,并在编辑窗口74a中显示原有的优惠规则内容。用户可以在编辑窗口74a中对优惠规则中的检查点、处理结果以及处理方式进行增删减操作,如增加检查点:订单的优惠标示是否在商户设置的优惠标示中(若商户设置了优惠标示),对应的检查结果为否,处理方式为不可用等。用户还可以修改该优惠规则约束的关联路径,在用户编辑完成后,若用户满意修改后的优惠规则,可以选择“修改”按钮,以确认对业务规则进行修改,测试装置在检测到用户的修改确认操作后,可以根据用户修改后的业务规则对结构化数据进行更新;若用户不满意修改后的优惠规则,可以选择“取消”按钮,放弃对业务规则进行修改。当用户上传的需求文档不够完善时,用户可以选择新增需求文档,如图7d所示,用户可以在测试装置的展示页面上选择新增需求文档,以进入新增需求文档入口,在该新增文档入口中,用户可以在文档上传区域76a上传新增需求文档,在新增需求文档上传的过程中,可以在进度条78a中显示新增需求文档的上传进度,并在新增需求文档上传完成后,可以在区域77a中显示该新增需求文档的文件名称、文件大小、文件上传时间以及上传状态等信息,用户可以选择“下一页”按钮,进入下一步骤。如图7e所示,测试装置可以在用户上传完新增需求文档后,对新增需求文档进行合法性检查(如符合BNF范式的语法规范),并在区域79a中显示新增需求文档中每个用例分别对应的合法性检查结果,当每个用例对应的合法性检查结果均为语法正常时,用户可以选择“下一页”按钮以使测试装置显示下一步骤对应的展示页面,进而可以为用例选择关联业务,在选择了关联业务后,可以为结构化需求数据完成用例的新增过程。
其中,步骤S201-步骤S203的具体实现过程可以通过测试装置中的需求管理系统与NLP分析系统来完成,需求管理系统是浏览器/服务器(Browser/Server,BS)结构,这种结构下的用户工作界面可以通过网页浏览器来实现,少部分事务逻辑可以在前端(即浏览器)实现,主要事务逻辑可以在服务器实现,NLP系统可以对使用自然语言描述的需求文档进行分析,以使需求能够被机器所理解,NLP分析系统可以部署在服务器上,具体参数可以包括硬件参数和软件参数。其中,硬件参数可以是指服务器机型型号(如SS430)、内存大小(如8G*2)、中央处理器(Central Processing Unit,CPU)、硬盘大小(如1T);软件参数可以是指操作系统、数据库、网页服务器、编程语言、开源软件等参数信息。
请一并参见图8,是本发明实施例提供的一种需求管理系统的时序示意图。如图8所示,需求管理系统可以包括用户、网页浏览器、需求管理系统逻辑层、需求管理系统数据处理层、数据库以及NLP系统之间的交互过程。用户可以在网页浏览器上上传自然语言描述的需求文档,以新增需求。在需求文档上传成功后,网页浏览器可以解析并处理需求文档,通过需求管理系统逻辑层检查需求文档格式以及语法合法性,并将检查结果反馈给NLP系统,在NLP系统接收了检查结果且检查合格后,需求管理系统逻辑层可以将自然语言描述的需求文档转换成结构化文档数据(即结构化需求数据),并将结构化文档数据传输至需求管理系统数据处理层,以使需求管理系统数据处理层将结构化文档数据录入到数据库中,对于数据库中录入的结构化文档数据,需求管理系统逻辑层、网页浏览器、用户均可以接收到数据录入结果。在需求管理系统中,用户可以对结构化文档数据进行查询,在用户发起查询请求后,网页浏览器可以处理查询请求,需求管理系统逻辑层可以根据用户的查询请求,对结构化文档数据中与该查询请求相匹配的数据进行组装,以使需求管理系统数据处理层对数据库中存储的结构化文档数据进行读取,将读取到的数据通过需求管理系统逻辑层返回至网页浏览器,以便用户可以在网页浏览器上对数据进行浏览。在需求管理系统中,用户还可以对需求文档进行修改,在用户发起修改请求后,网页浏览器可以处理修改请求,即为用户提供编辑窗口,以便用户可以在编辑窗口中对需求进行重新编辑,需求管理系统逻辑层可以对修改的需求后的数据进行合法性检查,并将合法性检查结果反馈给NLP系统,在NLP系统接收了检查结果且检查合格后,需求管理系统数据处理层可以根据上述修改请求对结构化文档数据进行修改,并将修改后的数据录入至数据库,需求管理系统数据处理层还可以将数据修改结果通过需求管理系统逻辑层返回至网页浏览器,以便用户可以在网页浏览器上进行修改结果的确认。
需要说明的是,上述需求管理系统可以对不同自然语言描述的需求文档进行处理,例如中文、英文、德文等,只要使用自然语言描述的需求文档符合结构化描述以及形式化约束即可。
步骤S204,获取所述结构化需求数据所包含的测试执行单元,根据所述测试执行单元,将所述结构化需求数据转换成有向图,对所述有向图所包含的路径进行遍历,生成所述结构化需求数据对应的测试场景集合;
步骤S205,获取所述测试场景集合中每个测试场景所包含的业务约束信息,根据所述业务约束信息,生成所述每个测试场景分别对应的测试用例,根据所述测试用例中的测试执行单元,生成所述测试用例对应的测试脚本;
其中,步骤S204-步骤S205的具体实现方式可以参见上述图2所对应实施例中对步骤S102-步骤S103的描述,这里不再进行赘述。
步骤S206,加载所述测试脚本,在所述测试脚本的第一运行过程中获取第一页面视图,获取所述第一页面视图中的第一文本信息;
具体的,测试装置可以加载上述测试脚本,在测试脚本的运行过程(也可以称为第一运行过程)中可以获取待测软件对应的第一页面视图,即待测软件在运行过程中相应的界面截图,并通过光学字符识别(Optical Character Recognition,OCR)技术对第一页面视图中的字符进行识别,并将第一页面视图与相应的OCR识别结果(即第一文本信息)作为基准进行保存。请一并参见图7f,是本发明实施例提供的一种测试方法的界面示意图。如图7f所示,若第一页面视图80a为通过某软件支付系统成功支付视频会员费用的界面图,可以通过OCR技术对第一页面视图80a中的文字进行识别,进而得到识别结果81a,该识别结果81a可以包括第一页面视图80a中所有的文字信息,如第一页面视图80a对应的文字信息可以为:9:00、80%、视频会员、¥15.00、原价、¥8.00、优惠、开通自动续费,每月月租立减3元、备注、你已开通视频自动续费、视频小程序、查看我的积分、完成、关注视频等词语或短语。
步骤S207,在所述测试脚本的第二运行过程中获取第二页面视图,获取所述第二页面视图中的第二文本信息;
具体的,测试装置可以对相同的待测软件进行多次测试,即可以对不同设备上的待测软件进行测试,或者对同一设备上的待测软件进行多次测试。在对不同设备上的待测软件进行测试时,由于设备的自带功能与参数的不同,为确保测试结果的稳定性,可以在测试脚本的再次运行过程(可以称为第二运行过程,这里的第二运行过程是为了区分步骤S206中的第一运行过程)中,获取待测软件的第二页面视图,并通过OCR技术对该第二页面视图进行识别,获得该第二页面视图对应的识别结果(即第二文本信息)。
步骤S208,根据所述第一文本信息和第二文本信息,生成针对所述测试用例的测试结果,输出所述测试结果。
具体的,若上述获取到的第一文本信息与第二文本信息是一样的,测试装置可以确定上述测试脚本是可行的,进而可以将加载测试脚本得到的结果,确定为上述测试用例对应的测试结果,并在展示界面上进行显示;若上述获取到的第一文本信息与第二文本信息不一样,则表示上述测试脚本存在问题,需要对该测试脚本进行修改,修改之后重新进行测试。
本发明实施例可以将自然语言描述的需求文档转换成结构化需求数据,对结构化需求数据进行语义分析,获取结构化需求数据中的测试执行单元(也可以称为路径步骤),根据获取到的测试执行单元生成有向图,并通过对有向图进行路径探索,可以生成测试场景集合,进而可以根据每个测试场景中所包含的业务约束信息,生成每个测试场景对应的测试用例,进而可以根据测试用例中的测试执行单元,确定测试用例对应的测试脚本。可见,通过对自然语言描述的结构化需求数据进行自然语言处理,并根据结构化需求数据自动生成测试脚本,即测试脚本可以根据结构化需求数据自动生成,无需进行人工编写,进而可以降低人工成本,从需求直达测试用例以及测试脚本,使得质量保证的全流程得到闭环,最大程度的减少测试过程中对人的依赖性,完全取决于需求的验证实现的正确性,可以避免需求文档中测试场景的缺漏,进而提高测试用例的完备性。
请参见图9,是本发明实施例提供的另一种测试方法的流程示意图。如图9所示,该测试方法可以包括以下步骤:
步骤S301,获取基于自然语言的需求文档,将所述需求文档转换成结构化需求数据;
步骤S302,获取所述结构化需求数据所包含的测试执行单元,根据所述测试执行单元,将所述结构化需求数据转换成有向图,对所述有向图所包含的路径进行遍历,生成所述结构化需求数据对应的测试场景集合;
步骤S303,获取所述测试场景集合中每个测试场景所包含的业务约束信息,根据所述业务约束信息,生成所述每个测试场景分别对应的测试用例;
具体的,步骤S301-步骤S303的具体实现方式可以参见上述图2所对应实施例中对步骤S101-步骤S103的描述,这里不再进行赘述。
步骤S304,获取所述每个测试用例中的测试执行单元分别对应的测试特征,根据所述测试特征,确定所述测试执行单元之间的相似度;
具体的,测试装置可以对上述获取到的所有测试用例中的测试执行单元进行相似度分析和层次聚类。可以将测试用例中的每个测试执行单元作为一个初始簇,进而可以获取每个测试用例中的测试执行单元对应的测试特征,即可以将每条测试用例步骤(这里的步骤也可以称为测试执行单元)分为步骤本身描述、步骤主执行人、步骤所属业务系统、该步骤前面的步骤和该步骤后面的步骤等至少5个维度,上述至少5个维度分别对应的内容描述即为每个步骤对应的测试特征。分别计算所有测试用例所包含的所有步骤中每个维度之间的相似度,相似度的计算方式可以具体表示为:利用NLP系统中的自动分词技术将所有步骤中的每个维度分别对应的描述进行分词,计算每个维度分词后的词组集合与其他步骤相应维度的词组集合的交集,在计算出每两个步骤中每个维度分别对应的相似度后,可以对上述至少5个维度的相似度进行加权求和,得到两个步骤之间的最终总相似度,总相似度的最小值为0,最大值为1。例如,测试执行单元1对应的5个维度分别表示为:步骤本身描述是“用户提交付款信息,请求付款”,步骤主执行人是“用户”,步骤所属业务系统是“支付系统”,该步骤前面的步骤是“用户请求付款”,该步骤后面的步骤是“用户选择验证短信的手机,请求验证”;测试执行单元2对应的5个维度分别表示为:步骤本身描述是“用户输入支付密码,请求付款”,步骤主执行人是“用户”,步骤所属业务系统是“支付系统”,该步骤前面的步骤是“用户请求付款”,该步骤后面的步骤是“用户请求确认付款结果”。可以分别计算出“用户提交付款信息,请求付款”与“用户输入支付密码,请求付款”之间的相似度1,“用户”与“用户”之间的相似度2,“支付系统”与“支付系统”之间的相似度3,“用户请求付款”与“用户请求付款”之间的相似度4,“用户选择验证短信的手机,请求验证”和“用户请求确认付款结果”之间的相似度5,则测试执行单元1与测试执行单元2之间的总相似度可以为相似度1、相似度2、相似度3、相似度4以及相似度5之间的加权求和。
步骤S305,将所述相似度大于相似度阈值的测试执行单元划分到相同的簇,得到多个具有属性类别的簇;
具体的,在测试装置得到每两个测试执行单元之间的总相似度后,可以将总相似度大于相似度阈值的测试执行单元划分到相同的簇,即可以根据相似度进行初始簇的合并,生成新的簇,重新计算每两个新簇之间的总相似度,根据相似度阈值将相似度高的簇进行合并,直至生成的簇的数量等于预先设定的值,最终生成的簇可以实现相同簇中所包含的测试执行单元之间的总相似度高,不同簇中所包含的测试执行单元相似度低,因此可以认为不同的簇具有不同的属性类别。需要说明的是,在实际应用中,可以根据总相似度确定每两个测试执行单元之间的距离矩阵,两个测试执行单元之间的总相似度越大,距离越小,相似度越小则距离越大。在确定了上述距离矩阵后,可以调用层次聚类函数(设置的距离阈值可以为0.1)对上述测试执行单元进行自动划分,得到多个具有属性类别的簇。
步骤S306,根据每个簇的属性类别,确定所述结构化需求数据对应的应用程序接口集合;
具体的,测试装置可以根据每个簇的属性类别,得到每个簇对应的API。换言之,在对结构化需求数据进行分析,自动生成测试用例后,可以将所有测试用例所包含的测试执行单元进行划分,将相似度高的测试执行单元划分为同一个属性类别,具有相同属性类别的测试执行单元具有相同的API,因此可以得到结构化需求数据所需的API集合,测试装置可以利用机器翻译接口将API集合翻译成相应的API名称。
步骤S307,从所述应用程序接口集合中,获取与所述测试用例相匹配的应用程序接口子集合;
具体的,对于单个测试用例,测试装置可以根据该测试用例中的测试执行单元,可以在上述API集合中进行查找,获取与该测试执行单元相匹配的API子集合。例如,单个测试用例中包含5个测试执行单元,则可以从API集合中获取上述5个测试执行单元分别对应的API,即单个测试用例中每个测试执行单元均对应一个API。
步骤S308,基于互信息与左右熵,获取所述结构化需求数据中所包含的更新短语,将所述更新短语添加至业务词库;
具体的,测试装置可以对结构化需求数据进行元数据计算,元数据是指描述数据的数据(data about data),也可以称为中介数据、中继数据,主要是用来描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。元数据算是一种电子式目录,为了达到编制目录的目的,必须在描述并收藏数据的内容或特色,进而达成协助数据检索的目的。在本发明实施例中,元数据可以包括账户数据(可以包括用户账户和商户账户等)、输入数据和输出数据等。
元数据的获取方式可以基于互信息与左右熵的计算规则,提取结构化需求数据中的更新短语(即已有业务词库中不存在的短语),即该结构化需求数据中固定多字词表达串的识别,并将更新短语添加至业务词库中。其中,互信息是指两个变量(两个变量可以是指相邻的单词)之间的相互依赖程度,互信息值越高,表明两个变量之间的相关性越高,则两个变量组成短语的可能性越大,互信息越低,表明两个变量之间的相关度越低,则两个变量存在短语边界的可能性越大。左右熵是指多字词表达的左边界的信息熵和右边界的信息熵,可以用来表示预选词的自由程度,信息熵越大,表示这个词的左边或者右边的词换动的频率越高,则这个词是一个单独的词的可能性就越大,信息熵越小,表示这个词的左边或者右边的词换动的频率越低,则这个词与左边的词或者右边的词组成短语的可能性就越大,当信息熵为0时,表示这个词只有一种接续,即这个词与左边的词或者右边的词为一个固定词语搭配。
其中,业务词库是指利用NLP技术对相应业务范围内的常用自然语言进行预先分词处理的词库信息。
步骤S309,根据所述业务词库对所述结构化需求数据进行分词处理,获取所述结构化需求数据中的目标短语;
具体的,测试装置可以根据添加了更新短语后的业务词库,对结构化需求数据中的语料进行自动分词操作,可以将结构化需求数据中的数据信息进行清洗,即可以利用现有的中文停用词表将结构化需求数据中的副词、连词以及其它不影响语句主干含义的字词和符号去除,提取出结构化需求数据中的特征词(即将分词后的结构化需求数据进行数据清洗后的所有单词),也可以称为目标短语。
步骤S310,根据所述目标短语,确定所述结构化需求数据对应的元数据集,从所述元数据集中获取与所述测试用例相匹配的元数据;
具体的,测试装置可以对上述提取到的特征词(即目标短语)进行词向量计算,将同义词进行合并归类,在完成上述自动合并归类后,可以进行人工修正处理,通过语句的主语成份或所处的场景将特征词分类到账号数据、输入数据、输出数据中,将同义特征词作为一类,并进行命名,一类特征词即为一个元数据,因此可以根据上述特征词确定结构化需求数据对应的元数据集,即获取结构化需求数据中的全部元数据。其中,词向量可以是指计算机中一种词的表现形式,可以用具有大小和方向的量来表示单词。生成词向量的方式可以为基于统计的方法、基于语言模型的方法等。
对于单个测试用例,测试装置可以对该测试用例所包含的语料进行分词,获取该测试用例对应的特征词,并从上述结构化需求数据对应的元数据集中提取与该测试用例相匹配的元数据。
步骤S311,获取所述应用程序接口子集合中每个应用程序接口分别对应的子代码;
具体的,测试装置可以从API函数库中获取API子集合中每个API分别对应的子代码,即根据API子集合中每个API的名称从API函数库中调用相应的代码。
步骤S312,将所述子代码进行组合,生成所述测试用例对应的初始测试脚本;
具体的,测试装置可以将上述获取到的子代码按照测试用例中测试执行单元的执行逻辑进行组合,或者根据API子集合中每个API的名称确定调用函数,生成测试用例初始化测试脚本。在该初始化测试脚本的头部可以包括初始化操作,例如一些前置的参数赋值或数据库操作等,在该初始化测试脚本的尾部可以包括数据清理的操作,例如参数的还原或销毁,数据库的还原恢复等。
步骤S313,获取所述元数据中的测试参数,根据所述测试参数对所述初始化测试脚本进行赋值,生成所述测试用例对应的测试脚本;
具体的,测试装置可以根据测试用例对应的元数据中的测试参数,可以对上述初始化测试脚本进行赋值,生成该测试用例对应的测试脚本,测试脚本的命名为该测试脚本对应的测试用例所分配的ID。其中,上述测试参数可以是指该测试用例中的账户信息、输入数据和输出数据等。
步骤S314,将所述测试脚本发送至多台测试设备,以使所述多台测试设备加载所述测试脚本;
具体的,在生成测试用例对应的测试脚本后,测试装置可以将该测试脚本分派到多台测试设备(如手机)上,以使多台测试设备加载所述测试脚本,进而可以实现一个测试脚本多台测试设备同时并行执行。在测试脚本运行失败,即该测试脚本对应的测试用例执行失败时,可以进行重试,若重试成功则表示测试通过;若重试次数超过阈值(如3次)仍不成功,则表示测试失败。在测试设备执行完测试用例后,可以将测试结果发送至测试装置。
步骤S315,获取所述多台测试设备针对所述测试脚本的测试结果,输出所述测试结果。
具体的,测试装置可以获取上述多台测试设备发送的测试结果,并将接收到的测试结果汇总成一个结果页面进行展示,以便用户进行查看。请一并参见图10a-图10c,是本发明实施例提供的另一种测试方法的界面示意图。如图10a所示,可以在测试装置的结果页面显示测试结果报告,在该测试结果报告中,可以显示该次测试的测试包信息、测试状态、测试开始的时间、测试结束的时间、测试计划、测试负责人、功能以及文件等信息。在该结果页面中,用户可以选择“离线报告”进行测试结果报告下载或者选择“切换报告”查看另一个测试的结果报告,用户还可以选择“加机器”添加测试设备。该结果页面中,还可以显示该次测试的测试用例成功率以及每条测试用例对应的执行情况。其中,在测试用例汇总中,每个测试用例可以包括测试用例和测试脚本的编写人,测试脚本对应的包名称、用例名称、执行过程、测试结果、耗时、链接、总成功率以及总次数等信息。由于测试用例和测试脚本是根据结构化需求数据自动生成的,因此编写人一栏为None(无);包名称表示测试脚本的存放路径及测试脚本的文件名;过程0+4=4表示在该次测试中,该测试用例共测试了4次,其中有0次成功和4次失败,因此测试结果为失败;耗时表示该测试用例的执行过程所花费的时间;链接可以为用户提供查看用例详情和用例执行趋势的功能;总成功率表示测试装置针对该测试用例的所有历史运行次数里的总成功率,总次数表示测试装置针对该测试用例的所有历史运行次数。用户可以在结果页面上选择某一个测试用例的用例详情,如图10b所示,可以在结果页面上显示在多台测试设备上的执行情况和相关的截屏,以便于用户能够快速地定位到问题。在结果页面的区域101a中可以显示测试设备的相关参数信息(如测试设备的机型、分辨率等),以及测试过程中的账号信息、测试结果信息(如造成测试结果失败的原因是测试脚本中的第6544行代码出现运行错误)等。在测试过程中,测试装置可以对待测软件的每一个操作界面图进行截图,如界面图103a、界面图104a以及界面图105a等。若通过截屏仍然无法准确定位到问题所在,则用户可以通过点击区域102a中的case日志查看报错的地方,也可以通过点击区域102a中的远程调试直接连到该设备进行调试。如图10c所示,该结果页面为单个测试用例运行时的详细信息,区域106a是对该测试用例的简介(可以包括该测试用例的名称、执行人、前置条件、用户类型、测试功能点等信息)以及运行该测试用例的设备机型介绍,该结果页面还可以包括断言检测结果,该断言检测结果可以通过traceback(一个用于检测脚本异常的模块)来跟踪测试脚本运行过程中的异常返回信息,即可以定位到测试脚本在运行过程中出现异常的代码行数(如6544行)以及出现异常的原因,例如出现的异常为KeyError(一种脚本标准异常类型)时,可以表示为关键字不存在),该结果界面还可以显示待测软件在测试过程的截图(如图10b中的界面图103a、界面图104a等)。在测试脚本中使用断言可以用于对测试脚本进行调试,可以创建更稳定不易出错的测试脚本。
可选的,上述步骤S304-步骤S307的实现过程可以通过测试装置中的API聚类系统来实现,上述步骤S308-步骤S310的实现过程可以通过测试装置中的元数据计算系统来完成,上述步骤S311-步骤S313的具体实现过程可以通过测试装置中的自动化测试代码生成系统来完成。上述API聚类系统、元数据计算系统、自动化测试代码生成系统均可以在服务器上完成,可以用于离线计算,具体参数可以参见包括硬件参数和软件参数。其中,硬件参数可以是指内存大小(如128G)、中央处理器、硬盘大小(如1T);软件参数可以是指操作系统、数据库、编程语言、开源软件等参数信息。
请一并参见图11,是本发明实施例提供的一种测试方法的架构示意图。如图11所示,在该架构图中,用户可以在需求管理系统111a中上传需求文档,需求管理系统111a可以将用户上传的需求文档转换城结构化需求数据,并根据结构化需求数据自动生成测试剧本(即测试用例),自动化测试平台112a可以用于对结构化需求数据进行数据运算,可以利用NLP技术对结构化需求数据进行特征提取114a,即提取结构化需求数据中的元数据,得到环境上下文元数据115a,该环境上下文元数据115a可以包括用户类型、商户类型、支付方式、是否优惠等,元数据的具体获取过程可以参见上述步骤S308-步骤S310,这里不再进行赘述。自动化测试平台112a还可以对结构化需求数据中的所有步骤进行相似度分析和层次聚类,得到步骤API命名列表116a,该步骤API命名列表116a可以包括初始化API,用户操作API-1,结果断言-1等,层次聚类的具体实现过程可以参见上述步骤S304-步骤S307,这里不再进行赘述。自动化测试平台112a通过将单个测试剧本与结构化需求数据对应的环境上下文元数据115a、步骤API命名列表116a进行特征匹配117a,即在环境上下文元数据115a、步骤API命名列表116a中获取与该测试剧本相匹配的环境上下文元数据118a和API序列119a(也可以称为API子集合),可以根据API序列119a自动生成该测试剧本对应的自动化测试脚本123a,该自动化测试脚本123a中的具体表示可以参见上述图1所对应实施例中对测试脚本的描述,这里不再进行赘述。另外,在测试过程中,对于一些不容易构造或者获取的对象,可以通过MOCK(一个模拟数据生成器)平台121a创建一个MOCK对象来模拟对象的行为,自动化测试管理者可以将创建的MOCK对象加入测试用例,即对测试剧本进行MOCK映射配置120a。随后,可以根据环境上下文元数据118a、自动化测试脚本123a、MOCK映射配置120a以及步骤API库122a,可以在测试脚本运行平台113a进行测试脚本运行。其中,步骤API库122a是软件测试开发员预先编写好的函数代码,测试装置可以根据自动化测试脚本123a中的API名称从步骤API库中调用相应的函数代码,进而可以在测试脚本运行平台113a上正常运行自动化测试脚本123a。当然,测试脚本运行平台113a还可以将自动化测试脚本123a分派到多台测试设备上,进而可以使一个自动化测试脚本123a能够在多台测试设备上同时执行。对于步骤API库122a,软件测试开发员可以对步骤API库122a进行开发维护。
可选的,需求管理系统111a与自动化测试平台112a的部分实现过程是可以同时进行的,如需求管理系统111a中测试剧本的自动生成过程与自动化测试平台112a中的特征提取114a过程是可以同时进行的。
在该架构图中,自动化框架主要由底层操作层、界面操作层和用例层组成,用例层通过调用界面操作层的接口把用户在各个界面上的操作组装起来,形成用例逻辑,而界面操作层的界面操作则是通过底层的接口来实际操控设备上的诸如点击、滑动、输入等操作,从而实现用例逻辑和底层操作之间的彻底解耦。另外,在用例层的用例具体实现里,把账号属性等数据全部放在初始化函数里进行统一获取,而后面的步骤所对应的各个API只负责具体的步骤操作,不会跟数据有任何的关联,从而使得数据和具体的操作实现也得到了分离,从而使得代码结构更加严谨,开发对用例代码的调试也更加简便。
本发明实施例可以将自然语言描述的需求文档转换成结构化需求数据,对结构化需求数据进行语义分析,获取结构化需求数据中的测试执行单元(也可以称为路径步骤),根据获取到的测试执行单元生成有向图,并通过对有向图进行路径探索,可以生成测试场景集合,进而可以根据每个测试场景中所包含的业务约束信息,生成每个测试场景对应的测试用例,进而可以根据测试用例中的测试执行单元,确定测试用例对应的测试脚本。可见,通过对自然语言描述的结构化需求数据进行自然语言处理,并根据结构化需求数据自动生成测试脚本,即测试脚本可以根据结构化需求数据自动生成,无需进行人工编写,进而可以降低人工成本,从需求直达测试用例以及测试脚本,使得质量保证的全流程得到闭环,最大程度的减少测试过程中对人的依赖性,完全取决于需求的验证实现的正确性,可以避免需求文档中测试场景的缺漏,进而提高测试用例的完备性。
请参见图12,是本发明实施例提供的一种测试装置的结构示意图。如图12所示,该测试装置1可以包括:数据转换模块10,场景生成模块20,脚本生成模块30;
数据转换模块10,用于获取基于自然语言的需求文档,将所述需求文档转换成结构化需求数据;
场景生成模块20,用于获取所述结构化需求数据所包含的测试执行单元,根据所述测试执行单元,将所述结构化需求数据转换成有向图,对所述有向图所包含的路径进行遍历,生成所述结构化需求数据对应的测试场景集合;
脚本生成模块30,用于获取所述测试场景集合中每个测试场景所包含的业务约束信息,根据所述业务约束信息,生成所述每个测试场景分别对应的测试用例,根据所述测试用例中的测试执行单元,生成所述测试用例对应的测试脚本。
其中,数据转换模块10,场景生成模块20,脚本生成模块30的具体功能实现方式可以参见上述图2所对应实施例中的步骤S101-步骤S103,这里不再进行赘述。
请一并参见图12,该测试装置1还包括:查询响应模块40,修改响应模块50,加载模块60,发送模块70,输出模块80;
查询响应模块40,用于响应针对所述结构化需求数据的查询操作,输出所述结构化需求数据中与所述查询操作相关联的目标需求数据;
修改响应模块50,用于响应针对所述目标需求数据的修改操作,对所述目标需求数据进行修改,对修改后的目标需求数据进行语法检查,根据修改后且语法正常的目标需求数据对所述结构化需求数据进行更新;
加载模块60,用于加载所述测试脚本,根据所述测试脚本生成所述测试用例的测试结果,输出所述测试结果;
发送模块70,用于将所述测试脚本发送至多台测试设备,以使所述多台测试设备加载所述测试脚本;
输出模块80,用于获取所述多台测试设备针对所述测试脚本的测试结果,输出所述测试结果。
其中,查询响应模块40,修改响应模块50的具体功能实现方式可以参见上述图6所对应实施例中的步骤S202-步骤S203,加载模块60的具体功能实现方式可以参见上述图6所对应实施例中的步骤S206步骤S208,发送模块70,输出模块80的具体功能实现方式可以参见上述图9所对应实施例中的步骤S314-步骤S315,这里不再进行赘述。
请一并参见图12,脚本生成模块30可以包括:聚类单元301,匹配单元302,测试脚本生成单元303;
聚类单元301,用于对结构化需求数据中的所述测试执行单元进行相似度分析和层次聚类,确定所述结构化需求数据对应的应用程序接口集合;
匹配单元302,用于从所述应用程序接口集合中,获取与所述测试用例相匹配的应用程序接口子集合;
测试脚本生成单元303,用于获取所述测试用例对应的元数据,根据所述元数据与所述应用程序接口子集合,生成所述测试用例对应的测试脚本。
其中,聚类单元301,匹配单元302,测试脚本生成单元303的具体功能实现方式可以参见上述图9所对应实施例中的步骤S304-步骤S313,这里不再进行赘述。
请一并参见图12,加载模块60可以包括:第一文本获取单元601,第二文本获取单元602,结果生成单元603;
第一文本获取单元601,用于加载所述测试脚本,在所述测试脚本的第一运行过程中获取第一页面视图,获取所述第一页面视图中的第一文本信息;
第二文本获取单元602,用于在所述测试脚本的第二运行过程中获取第二页面视图,获取所述第二页面视图中的第二文本信息;
结果生成单元603,用于根据所述第一文本信息和第二文本信息,生成针对所述测试用例的测试结果,输出所述测试结果。
其中,第一文本获取单元601,第二文本获取单元602,结果生成单元603的具体功能实现方式可以参见上述图6所对应实施例中的步骤S206-步骤S208,这里不再进行赘述。
请一并参见图12,聚类单元301可以包括:相似度确定子单元3011,划分子单元3012,接口确定子单元3013;
相似度确定子单元3013,用于获取所述每个测试用例中的测试执行单元分别对应的测试特征,根据所述测试特征,确定所述测试执行单元之间的相似度;
划分子单元3012,用于将所述相似度大于相似度阈值的测试执行单元划分到相同的簇,得到多个具有属性类别的簇;
接口确定子单元3012,用于根据每个簇的属性类别,确定所述结构化需求数据对应的应用程序接口集合;所述应用程序接口集合中的每个应用程序接口分别与一个属性类别相关联。
其中,相似度确定子单元3011,划分子单元3012,接口确定子单元3013的具体功能实现方式可以参见上述图9所对应实施例中的步骤S304-步骤S306,这里不再进行赘述。
请一并参见图12,测试脚本生成单元303可以包括:更新短语获取子单元3031,目标短语获取子单元3032,元数据获取子单元3033,代码获取子单元3034,代码组合子单元3035,赋值子单元3036;
更新短语获取子单元3031,用于基于互信息与左右熵,获取所述结构化需求数据中所包含的更新短语,将所述更新短语添加至业务词库;
目标短语获取子单元3032,用于根据所述业务词库对所述结构化需求数据进行分词处理,获取所述结构化需求数据中的目标短语;
元数据获取子单元3033,用于根据所述目标短语,确定所述结构化需求数据对应的元数据集,从所述元数据集中获取与所述测试用例相匹配的元数据;
代码获取子单元3034,用于获取所述应用程序接口子集合中每个应用程序接口分别对应的子代码;
代码组合子单元3035,用于将所述子代码进行组合,生成所述测试用例对应的初始测试脚本;
赋值子单元3036,用于获取所述元数据中的测试参数,根据所述测试参数对所述初始化测试脚本进行赋值,生成所述测试用例对应的测试脚本。
其中,更新短语获取子单元3031,目标短语获取子单元3032,元数据获取子单元3033,代码获取子单元3034,代码组合子单元3035,赋值子单元3036的具体功能实现方式可以参见上述图9所对应实施例中的步骤S308-步骤S313,这里不再进行赘述。
本发明实施例可以将自然语言描述的需求文档转换成结构化需求数据,对结构化需求数据进行语义分析,获取结构化需求数据中的测试执行单元(也可以称为路径步骤),根据获取到的测试执行单元生成有向图,并通过对有向图进行路径探索,可以生成测试场景集合,进而可以根据每个测试场景中所包含的业务约束信息,生成每个测试场景对应的测试用例,进而可以根据测试用例中的测试执行单元,确定测试用例对应的测试脚本。可见,通过对自然语言描述的结构化需求数据进行自然语言处理,并根据结构化需求数据自动生成测试脚本,即测试脚本可以根据结构化需求数据自动生成,无需进行人工编写,进而可以降低人工成本,从需求直达测试用例以及测试脚本,使得质量保证的全流程得到闭环,最大程度的减少测试过程中对人的依赖性,完全取决于需求的验证实现的正确性,可以避免需求文档中测试场景的缺漏,进而提高测试用例的完备性。
请参见图13,图13是本发明实施例提供的一种测试装置的结构示意图。如图13所示,该测试装置1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述测试装置1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1004可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图13所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在如图13所示的测试装置1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现上述图2、图6、图9任一个所对应实施例中对所述测试方法的描述,在此不再赘述。
应当理解,本发明实施例中所描述的测试装置1000可执行前文图2、图6、图9任一个所对应实施例中对所述测试方法的描述,也可执行前文图12所对应实施例中对所述测试装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本发明实施例还提供了一种计算机可读存储介质,且所述计算机可读存储介质中存储有前文提及的测试装置1所执行的计算机程序,且所述计算机程序包括程序指令,当所述处理器执行所述程序指令时,能够执行前文图2、图6、图9任一个所对应实施例中对所述测试方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本发明所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本发明方法实施例的描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储存储器(Read-Only Memory,ROM)或随机存储存储器(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (11)

1.一种测试方法,其特征在于,包括:
获取基于自然语言的需求文档,将所述需求文档转换成结构化需求数据;
获取所述结构化需求数据所包含的测试执行单元,根据所述测试执行单元,将所述结构化需求数据转换成有向图,对所述有向图所包含的路径进行遍历,生成所述结构化需求数据对应的测试场景集合;
获取所述测试场景集合中每个测试场景所包含的业务约束信息,根据所述业务约束信息,生成所述每个测试场景分别对应的测试用例,根据所述测试用例中的测试执行单元,生成所述测试用例对应的测试脚本。
2.根据权利要求1所述的方法,其特征在于,所述结构化需求数据包括每个测试用例中的所述测试执行单元;所述根据所述测试用例中的测试执行单元,生成所述测试用例对应的测试脚本,包括:
对结构化需求数据中的所述测试执行单元进行相似度分析和层次聚类,确定所述结构化需求数据对应的应用程序接口集合;
从所述应用程序接口集合中,获取与所述测试用例相匹配的应用程序接口子集合;
获取所述测试用例对应的元数据,根据所述元数据与所述应用程序接口子集合,生成所述测试用例对应的测试脚本。
3.根据权利要求2所述的方法,其特征在于,所述对结构化需求数据中的所述测试执行单元进行相似度分析和层次聚类,确定所述结构化需求数据对应的应用程序接口集合,包括:
获取所述每个测试用例中的测试执行单元分别对应的测试特征,根据所述测试特征,确定所述测试执行单元之间的相似度;
将所述相似度大于相似度阈值的测试执行单元划分到相同的簇,得到多个具有属性类别的簇;
根据每个簇的属性类别,确定所述结构化需求数据对应的应用程序接口集合;所述应用程序接口集合中的每个应用程序接口分别与一个属性类别相关联。
4.根据权利要求2所述的方法,其特征在于,所述获取所述测试用例对应的元数据,包括:
基于互信息与左右熵,获取所述结构化需求数据中所包含的更新短语,将所述更新短语添加至业务词库;
根据所述业务词库对所述结构化需求数据进行分词处理,获取所述结构化需求数据中的目标短语;
根据所述目标短语,确定所述结构化需求数据对应的元数据集,从所述元数据集中获取与所述测试用例相匹配的元数据。
5.根据权利要求2所述的方法,其特征在于,所述根据所述元数据与所述应用程序接口子集合,生成所述测试用例对应的测试脚本,包括:
获取所述应用程序接口子集合中每个应用程序接口分别对应的子代码;
将所述子代码进行组合,生成所述测试用例对应的初始测试脚本;
获取所述元数据中的测试参数,根据所述测试参数对所述初始化测试脚本进行赋值,生成所述测试用例对应的测试脚本。
6.根据权利要求1所述的方法,其特征在于,还包括:
响应针对所述结构化需求数据的查询操作,输出所述结构化需求数据中与所述查询操作相关联的目标需求数据;
响应针对所述目标需求数据的修改操作,对所述目标需求数据进行修改,并对修改后的目标需求数据进行语法检查,根据修改后且语法正常的目标需求数据对所述结构化需求数据进行更新。
7.根据权利要求1所述的方法,其特征在于,还包括:
加载所述测试脚本,根据所述测试脚本生成所述测试用例的测试结果,输出所述测试结果。
8.根据权利要求1所述的方法,其特征在于,还包括:
将所述测试脚本发送至多台测试设备,以使所述多台测试设备加载所述测试脚本;
获取所述多台测试设备针对所述测试脚本的测试结果,输出所述测试结果。
9.根据权利要求7所述的方法,其特征在于,所述加载所述测试脚本,根据所述测试脚本生成所述测试用例的测试结果,输出所述测试结果,包括:
加载所述测试脚本,在所述测试脚本的第一运行过程中获取第一页面视图,获取所述第一页面视图中的第一文本信息;
在所述测试脚本的第二运行过程中获取第二页面视图,获取所述第二页面视图中的第二文本信息;
根据所述第一文本信息和第二文本信息,生成针对所述测试用例的测试结果,输出所述测试结果。
10.一种测试装置,其特征在于,包括:
数据转换模块,用于获取基于自然语言的需求文档,将所述需求文档转换成结构化需求数据;
场景生成模块,用于获取所述结构化需求数据所包含的测试执行单元,根据所述测试执行单元,将所述结构化需求数据转换成有向图,对所述有向图所包含的路径进行遍历,生成所述结构化需求数据对应的测试场景集合;
脚本生成模块,用于获取所述测试场景集合中每个测试场景所包含的业务约束信息,根据所述业务约束信息,生成所述每个测试场景分别对应的测试用例,根据所述测试用例中的测试执行单元,生成所述测试用例对应的测试脚本。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至9中任一项所述的方法。
CN201910343944.1A 2019-04-26 2019-04-26 一种测试方法、装置以及计算机可读存储介质 Pending CN110162468A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910343944.1A CN110162468A (zh) 2019-04-26 2019-04-26 一种测试方法、装置以及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910343944.1A CN110162468A (zh) 2019-04-26 2019-04-26 一种测试方法、装置以及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN110162468A true CN110162468A (zh) 2019-08-23

Family

ID=67638735

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910343944.1A Pending CN110162468A (zh) 2019-04-26 2019-04-26 一种测试方法、装置以及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN110162468A (zh)

Cited By (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110597728A (zh) * 2019-09-20 2019-12-20 中国银行股份有限公司 构建测试数据的方法、装置及系统
CN110597730A (zh) * 2019-09-20 2019-12-20 中国工商银行股份有限公司 基于场景法的自动化测试用例生成方法及系统
CN110727595A (zh) * 2019-10-14 2020-01-24 北京智游网安科技有限公司 一种应用登录界面识别方法、智能终端及存储介质
CN110781673A (zh) * 2019-09-06 2020-02-11 平安科技(深圳)有限公司 文档验收方法、装置、计算机设备及存储介质
CN110781090A (zh) * 2019-10-31 2020-02-11 北京东软望海科技有限公司 数据处理测试的控制方法、装置、计算机设备及存储介质
CN110825618A (zh) * 2019-10-10 2020-02-21 重庆金融资产交易所有限责任公司 一种生成测试用例的方法及相关装置
CN110928777A (zh) * 2019-11-15 2020-03-27 深圳前海微众银行股份有限公司 测试用例的处理方法、装置、设备及存储介质
CN110941559A (zh) * 2019-11-27 2020-03-31 北京搜狐新媒体信息技术有限公司 自动测试方法及系统
CN110955608A (zh) * 2019-12-23 2020-04-03 金蝶软件(中国)有限公司 测试数据处理方法、装置、计算机设备和存储介质
CN111258916A (zh) * 2020-03-06 2020-06-09 贝壳技术有限公司 自动化测试方法、装置、存储介质及设备
CN111581090A (zh) * 2020-04-30 2020-08-25 重庆富民银行股份有限公司 一种基于nlp和rf框架的自动化测试用例生成方法及系统
CN111813443A (zh) * 2020-07-28 2020-10-23 南京大学 一种用JavaFX进行代码样例自动填充的方法和工具
CN111949521A (zh) * 2020-07-31 2020-11-17 中国工商银行股份有限公司 软件性能测试方法及装置
CN112015661A (zh) * 2020-09-08 2020-12-01 江苏云柜网络技术有限公司 一种软件测试方法及装置
CN112231224A (zh) * 2020-10-30 2021-01-15 平安银行股份有限公司 基于人工智能的业务系统测试方法、装置、设备和介质
CN112286827A (zh) * 2020-12-01 2021-01-29 中国人寿保险股份有限公司 一种软件测试方法、设备、电子设备及存储介质
CN112363924A (zh) * 2020-11-10 2021-02-12 中国平安人寿保险股份有限公司 基于有向图的文本覆盖率测试方法及相关设备
CN112433941A (zh) * 2020-11-23 2021-03-02 中国建设银行股份有限公司 一种测试分析方法、装置、设备和存储介质
CN112434309A (zh) * 2020-12-18 2021-03-02 国网河北省电力有限公司电力科学研究院 渗透测试方法、装置、设备和存储介质
CN112445692A (zh) * 2019-08-27 2021-03-05 腾讯科技(深圳)有限公司 一种用例测试方法及终端
CN112527621A (zh) * 2019-09-17 2021-03-19 中移动信息技术有限公司 测试路径构建方法、装置、设备及存储介质
CN112765040A (zh) * 2021-02-04 2021-05-07 深圳市捷视飞通科技股份有限公司 页面测试方法、系统、计算机设备和存储介质
CN112965909A (zh) * 2021-03-19 2021-06-15 湖南大学 测试数据、测试用例生成方法及系统、存储介质
CN113011689A (zh) * 2019-12-19 2021-06-22 中国移动通信集团辽宁有限公司 软件开发工作量的评估方法、装置及计算设备
CN113032241A (zh) * 2019-12-09 2021-06-25 腾讯科技(深圳)有限公司 一种测试数据处理方法、装置及存储介质
CN113051171A (zh) * 2021-04-08 2021-06-29 平安国际智慧城市科技股份有限公司 接口测试方法、装置、设备及存储介质
CN113282519A (zh) * 2021-07-22 2021-08-20 北京关键科技股份有限公司 一种用于软件测试的用例数据推荐方法、系统和介质
CN113360386A (zh) * 2021-06-17 2021-09-07 锐捷网络股份有限公司 交换芯片驱动测试方法、装置、电子设备和存储介质
CN113468065A (zh) * 2021-07-19 2021-10-01 京东科技控股股份有限公司 测试用例的运行方法及装置
CN113590453A (zh) * 2021-01-28 2021-11-02 腾讯科技(深圳)有限公司 测试用例的生成方法、装置与存储介质
CN113641591A (zh) * 2021-10-14 2021-11-12 腾讯科技(深圳)有限公司 测试用例生成方法及装置、测试方法及装置
CN113672522A (zh) * 2021-10-25 2021-11-19 腾讯科技(深圳)有限公司 测试资源压缩方法以及相关设备
CN114238070A (zh) * 2021-11-09 2022-03-25 中国电力科学研究院有限公司 一种基于语义识别的测试脚本生成方法及系统
CN114637692A (zh) * 2022-05-17 2022-06-17 杭州优诗科技有限公司 测试数据生成及测试案例管理方法
CN114721931A (zh) * 2021-01-06 2022-07-08 腾讯科技(深圳)有限公司 一种数据处理方法、装置、设备及存储介质
WO2022237253A1 (zh) * 2021-05-11 2022-11-17 华为云计算技术有限公司 一种测试用例生成方法、装置及设备
WO2022268062A1 (zh) * 2021-06-25 2022-12-29 华为云计算技术有限公司 一种测试用例选择方法及相关装置
CN116245108A (zh) * 2022-11-25 2023-06-09 北京瑞风协同科技股份有限公司 验证匹配导向方法、验证匹配导向器、设备及存储介质
WO2023104121A1 (zh) * 2021-12-09 2023-06-15 北京罗克维尔斯科技有限公司 测试用例的测试方法及装置、电子设备和存储介质
CN116955210A (zh) * 2023-09-19 2023-10-27 北京普太科技有限公司 一种测试用例的生成方法、装置、电子设备及存储介质
CN117112391A (zh) * 2022-11-15 2023-11-24 领悦数字信息技术有限公司 用于功能测试的方法和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080244523A1 (en) * 2007-03-27 2008-10-02 Tim Kelso Program Test System
CN106569947A (zh) * 2016-11-01 2017-04-19 北京大学(天津滨海)新代信息技术研究院 一种从单元测试代码中提取api使用示例的方法与工具
CN108415838A (zh) * 2018-03-01 2018-08-17 吉旗(成都)科技有限公司 一种基于自然语言处理技术的自动化测试方法
CN109117363A (zh) * 2018-06-28 2019-01-01 腾讯科技(深圳)有限公司 一种测试用例生成方法、装置及服务器
CN109446059A (zh) * 2018-09-12 2019-03-08 北京邮电大学 测试模板脚本的生成方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080244523A1 (en) * 2007-03-27 2008-10-02 Tim Kelso Program Test System
CN106569947A (zh) * 2016-11-01 2017-04-19 北京大学(天津滨海)新代信息技术研究院 一种从单元测试代码中提取api使用示例的方法与工具
CN108415838A (zh) * 2018-03-01 2018-08-17 吉旗(成都)科技有限公司 一种基于自然语言处理技术的自动化测试方法
CN109117363A (zh) * 2018-06-28 2019-01-01 腾讯科技(深圳)有限公司 一种测试用例生成方法、装置及服务器
CN109446059A (zh) * 2018-09-12 2019-03-08 北京邮电大学 测试模板脚本的生成方法及装置

Cited By (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112445692A (zh) * 2019-08-27 2021-03-05 腾讯科技(深圳)有限公司 一种用例测试方法及终端
CN112445692B (zh) * 2019-08-27 2024-01-26 腾讯科技(深圳)有限公司 一种用例测试方法及终端
CN110781673A (zh) * 2019-09-06 2020-02-11 平安科技(深圳)有限公司 文档验收方法、装置、计算机设备及存储介质
CN110781673B (zh) * 2019-09-06 2022-06-17 平安科技(深圳)有限公司 文档验收方法、装置、计算机设备及存储介质
CN112527621A (zh) * 2019-09-17 2021-03-19 中移动信息技术有限公司 测试路径构建方法、装置、设备及存储介质
CN110597730B (zh) * 2019-09-20 2023-08-22 中国工商银行股份有限公司 基于场景法的自动化测试用例生成方法及系统
CN110597730A (zh) * 2019-09-20 2019-12-20 中国工商银行股份有限公司 基于场景法的自动化测试用例生成方法及系统
CN110597728A (zh) * 2019-09-20 2019-12-20 中国银行股份有限公司 构建测试数据的方法、装置及系统
CN110825618A (zh) * 2019-10-10 2020-02-21 重庆金融资产交易所有限责任公司 一种生成测试用例的方法及相关装置
CN110727595B (zh) * 2019-10-14 2023-09-05 北京智游网安科技有限公司 一种应用登录界面识别方法、智能终端及存储介质
CN110727595A (zh) * 2019-10-14 2020-01-24 北京智游网安科技有限公司 一种应用登录界面识别方法、智能终端及存储介质
CN110781090B (zh) * 2019-10-31 2023-09-12 望海康信(北京)科技股份公司 数据处理测试的控制方法、装置、计算机设备及存储介质
CN110781090A (zh) * 2019-10-31 2020-02-11 北京东软望海科技有限公司 数据处理测试的控制方法、装置、计算机设备及存储介质
CN110928777A (zh) * 2019-11-15 2020-03-27 深圳前海微众银行股份有限公司 测试用例的处理方法、装置、设备及存储介质
CN110941559A (zh) * 2019-11-27 2020-03-31 北京搜狐新媒体信息技术有限公司 自动测试方法及系统
CN110941559B (zh) * 2019-11-27 2023-10-03 北京搜狐新媒体信息技术有限公司 自动测试方法及系统
CN113032241A (zh) * 2019-12-09 2021-06-25 腾讯科技(深圳)有限公司 一种测试数据处理方法、装置及存储介质
CN113032241B (zh) * 2019-12-09 2024-02-13 腾讯科技(深圳)有限公司 一种测试数据处理方法、装置及存储介质
CN113011689A (zh) * 2019-12-19 2021-06-22 中国移动通信集团辽宁有限公司 软件开发工作量的评估方法、装置及计算设备
CN113011689B (zh) * 2019-12-19 2024-05-07 中国移动通信集团辽宁有限公司 软件开发工作量的评估方法、装置及计算设备
CN110955608A (zh) * 2019-12-23 2020-04-03 金蝶软件(中国)有限公司 测试数据处理方法、装置、计算机设备和存储介质
CN110955608B (zh) * 2019-12-23 2024-03-08 金蝶软件(中国)有限公司 测试数据处理方法、装置、计算机设备和存储介质
CN111258916B (zh) * 2020-03-06 2023-08-15 贝壳技术有限公司 自动化测试方法、装置、存储介质及设备
CN111258916A (zh) * 2020-03-06 2020-06-09 贝壳技术有限公司 自动化测试方法、装置、存储介质及设备
CN111581090A (zh) * 2020-04-30 2020-08-25 重庆富民银行股份有限公司 一种基于nlp和rf框架的自动化测试用例生成方法及系统
CN111581090B (zh) * 2020-04-30 2023-02-24 重庆富民银行股份有限公司 一种基于nlp和rf框架的自动化测试用例生成方法及系统
CN111813443A (zh) * 2020-07-28 2020-10-23 南京大学 一种用JavaFX进行代码样例自动填充的方法和工具
CN111949521B (zh) * 2020-07-31 2023-07-25 中国工商银行股份有限公司 软件性能测试方法及装置
CN111949521A (zh) * 2020-07-31 2020-11-17 中国工商银行股份有限公司 软件性能测试方法及装置
CN112015661A (zh) * 2020-09-08 2020-12-01 江苏云柜网络技术有限公司 一种软件测试方法及装置
CN112015661B (zh) * 2020-09-08 2023-10-03 南京云柜网络科技有限公司 一种软件测试方法及装置
CN112231224A (zh) * 2020-10-30 2021-01-15 平安银行股份有限公司 基于人工智能的业务系统测试方法、装置、设备和介质
CN112363924B (zh) * 2020-11-10 2023-09-29 中国平安人寿保险股份有限公司 基于有向图的文本覆盖率测试方法及相关设备
CN112363924A (zh) * 2020-11-10 2021-02-12 中国平安人寿保险股份有限公司 基于有向图的文本覆盖率测试方法及相关设备
CN112433941A (zh) * 2020-11-23 2021-03-02 中国建设银行股份有限公司 一种测试分析方法、装置、设备和存储介质
CN112286827A (zh) * 2020-12-01 2021-01-29 中国人寿保险股份有限公司 一种软件测试方法、设备、电子设备及存储介质
CN112434309A (zh) * 2020-12-18 2021-03-02 国网河北省电力有限公司电力科学研究院 渗透测试方法、装置、设备和存储介质
CN114721931A (zh) * 2021-01-06 2022-07-08 腾讯科技(深圳)有限公司 一种数据处理方法、装置、设备及存储介质
CN114721931B (zh) * 2021-01-06 2024-04-09 腾讯科技(深圳)有限公司 一种数据处理方法、装置、设备及存储介质
CN113590453A (zh) * 2021-01-28 2021-11-02 腾讯科技(深圳)有限公司 测试用例的生成方法、装置与存储介质
CN112765040B (zh) * 2021-02-04 2024-01-26 深圳市捷视飞通科技股份有限公司 页面测试方法、系统、计算机设备和存储介质
CN112765040A (zh) * 2021-02-04 2021-05-07 深圳市捷视飞通科技股份有限公司 页面测试方法、系统、计算机设备和存储介质
CN112965909B (zh) * 2021-03-19 2024-04-09 湖南大学 测试数据、测试用例生成方法及系统、存储介质
CN112965909A (zh) * 2021-03-19 2021-06-15 湖南大学 测试数据、测试用例生成方法及系统、存储介质
CN113051171A (zh) * 2021-04-08 2021-06-29 平安国际智慧城市科技股份有限公司 接口测试方法、装置、设备及存储介质
CN113051171B (zh) * 2021-04-08 2024-04-02 深圳赛安特技术服务有限公司 接口测试方法、装置、设备及存储介质
WO2022237253A1 (zh) * 2021-05-11 2022-11-17 华为云计算技术有限公司 一种测试用例生成方法、装置及设备
CN113360386A (zh) * 2021-06-17 2021-09-07 锐捷网络股份有限公司 交换芯片驱动测试方法、装置、电子设备和存储介质
WO2022268062A1 (zh) * 2021-06-25 2022-12-29 华为云计算技术有限公司 一种测试用例选择方法及相关装置
CN113468065A (zh) * 2021-07-19 2021-10-01 京东科技控股股份有限公司 测试用例的运行方法及装置
CN113282519A (zh) * 2021-07-22 2021-08-20 北京关键科技股份有限公司 一种用于软件测试的用例数据推荐方法、系统和介质
CN113641591A (zh) * 2021-10-14 2021-11-12 腾讯科技(深圳)有限公司 测试用例生成方法及装置、测试方法及装置
CN113641591B (zh) * 2021-10-14 2022-06-24 腾讯科技(深圳)有限公司 测试用例生成方法及装置、测试方法及装置
CN113672522A (zh) * 2021-10-25 2021-11-19 腾讯科技(深圳)有限公司 测试资源压缩方法以及相关设备
CN114238070B (zh) * 2021-11-09 2023-08-18 中国电力科学研究院有限公司 一种基于语义识别的测试脚本生成方法及系统
CN114238070A (zh) * 2021-11-09 2022-03-25 中国电力科学研究院有限公司 一种基于语义识别的测试脚本生成方法及系统
WO2023104121A1 (zh) * 2021-12-09 2023-06-15 北京罗克维尔斯科技有限公司 测试用例的测试方法及装置、电子设备和存储介质
CN114637692A (zh) * 2022-05-17 2022-06-17 杭州优诗科技有限公司 测试数据生成及测试案例管理方法
CN114637692B (zh) * 2022-05-17 2022-08-19 杭州优诗科技有限公司 测试数据生成及测试案例管理方法
CN117112391A (zh) * 2022-11-15 2023-11-24 领悦数字信息技术有限公司 用于功能测试的方法和系统
CN116245108B (zh) * 2022-11-25 2023-09-26 北京瑞风协同科技股份有限公司 验证匹配导向方法、验证匹配导向器、设备及存储介质
CN116245108A (zh) * 2022-11-25 2023-06-09 北京瑞风协同科技股份有限公司 验证匹配导向方法、验证匹配导向器、设备及存储介质
CN116955210B (zh) * 2023-09-19 2024-01-19 北京普太科技有限公司 一种测试用例的生成方法、装置、电子设备及存储介质
CN116955210A (zh) * 2023-09-19 2023-10-27 北京普太科技有限公司 一种测试用例的生成方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN110162468A (zh) 一种测试方法、装置以及计算机可读存储介质
Deng et al. Mind2web: Towards a generalist agent for the web
US11250033B2 (en) Methods, systems, and computer program product for implementing real-time classification and recommendations
US11086601B2 (en) Methods, systems, and computer program product for automatic generation of software application code
Hellendoorn et al. Deep learning type inference
US10705796B1 (en) Methods, systems, and computer program product for implementing real-time or near real-time classification of digital data
US10656927B2 (en) Methods, systems, and computer program products for automating releases and deployment of a softawre application along the pipeline in continuous release and deployment of software application delivery models
US11954461B2 (en) Autonomously delivering software features
US11430443B2 (en) Developer platform for providing automated assistant in new domains
US20100325491A1 (en) Mining a use case model by analyzing its description in plain language and analyzing textural use case models to identify modeling errors
Mencl Deriving behavior specifications from textual use cases
US20140222662A1 (en) Intelligent automated online transaction system for automated interaction with online transaction web sites
EP4364044A1 (en) Automated troubleshooter
Aronsson et al. A maturity assessment framework for conversational AI development platforms
Eberhart et al. A wizard of oz study simulating api usage dialogues with a virtual assistant
Zhang et al. A Survey on Large Language Models for Software Engineering
KR101916781B1 (ko) 다양한 의미 범주에 기반한 번역 결과 제공 방법 및 시스템
CN117252261A (zh) 知识图谱的构建方法、电子设备及存储介质
CN110447026B (zh) 用于在新的域中提供自动化助理的开发人员平台
Kiyavitskaya et al. Requirements model generation to support requirements elicitation: the Secure Tropos experience
Zhang et al. Towards mutation analysis for use cases
Li et al. Error leakage and wasted time: sensitivity and effort analysis of a requirements consistency checking process
Matsumoto et al. A method of verifying time-response requirements
Kapoor Device-Retargetable User Interface Reengineering Using XML
Yang et al. OCL2NL: Automatic Generation Natural Language Description from OCL Contracts

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