CN109614324A - 一种测试用例生成方法和装置 - Google Patents
一种测试用例生成方法和装置 Download PDFInfo
- Publication number
- CN109614324A CN109614324A CN201811466589.9A CN201811466589A CN109614324A CN 109614324 A CN109614324 A CN 109614324A CN 201811466589 A CN201811466589 A CN 201811466589A CN 109614324 A CN109614324 A CN 109614324A
- Authority
- CN
- China
- Prior art keywords
- test
- title
- code
- case
- test case
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 311
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000013461 design Methods 0.000 claims abstract description 36
- 238000003860 storage Methods 0.000 claims description 18
- 238000004806 packaging method and process Methods 0.000 claims description 7
- 238000004458 analytical method Methods 0.000 claims description 3
- 238000013522 software testing Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 17
- 238000004590 computer program Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 241000208306 Apium Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 238000012795 verification Methods 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/3684—Test management for test design, e.g. generating new test cases
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)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种测试用例生成方法和装置。该方法包括:获取目标软件的测试代码和所述测试代码的设计文档;解析所述测试代码和所述设计文档,获取所述目标软件的测试用例编写要素;基于所述测试用例编写要素,生成所述目标软件的测试用例。本申请通过在自动化测试的过程中,并行的确定测试用例,以有效提高测试用例编写效率,进而提高软件测试效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种测试用例生成方法和装置。
背景技术
测试用例是指为某个特殊目标而编制的一组测试输入、执行条件以及预期结果。
目前,测试用例一般是由相关技术人员基于相关测试需求人为确定需要编写哪些测试用例,并进行手动编写,但这种测试用例生成效率比较低。
因此,需要更加高效的测试用例生成方法。
发明内容
本说明书实施例提供一种测试用例生成方法,用于提高需要编写的测试用例的生成效率。
本说明书实施例还提供一种测试用例生成方法,包括:
获取目标软件的测试代码和所述测试代码的设计文档;
解析所述测试代码和所述设计文档,获取所述目标软件的测试用例编写要素;
基于所述测试用例编写要素,确定所述目标软件的测试用例。
可选的,解析所述测试代码和所述设计文档,获取所述目标软件的测试用例编写要素包括:
解析所述测试代码的代码注释,得到所述测试用例编写要素中的标题要素;
解析所述测试代码的代码事件,得到所述测试用例编写要素中的步骤要素;
解析所述设计文档,得到所述测试用例编写要素中的预期结果要素。
可选的,解析所述测试代码的代码注释,得到所述测试用例编写要素中的标题要素包括:
抓取所述测试代码的代码注释中的标题关键字和所述标题关键字关联的标题级别,以生成标题要素。
可选的,解析所述测试代码的代码事件,得到所述测试用例编写要素中的步骤要素包括:
确定所述测试代码中每个标题关键字关联的代码事件;
抓取该标题关键字关联的代码事件中的步骤关键字,并确定所述步骤关键字对应的步骤的执行顺序;
将所述步骤关键字和所述执行顺序,作为该标题关键字对应的步骤要素。
可选的,基于所述测试用例编写要素,生成所述目标软件的测试用例包括:
基于所述标题要素,确定用例标题的数据结构;
基于标题要素和步骤要素之间的对应关系,确定每个用例标题对应的测试步骤;
基于所述预期结果要素,确定每个用例标题对应的预期结果;
基于用例标题的数据结构,以及每个用例标题对应的测试步骤和预期结果,生成所述目标软件的测试用例。
可选的,基于所述标题要素,确定用例标题的数据结构包括:
基于所述标题关键字,生成用例标题;
基于所述标题级别关键字,确定各用例标题之间的级别关系;
基于所述级别关系,生成用例标题的数据结构。
可选的,方法还包括:
对每个用例标题进行编号,得到每个用例标题对应的编号。
可选的,方法还包括:
确定所述测试代码对应的测试日志,所述测试日志为使用所述测试代码对所述目标软件进行自动化测试生成的;
解析所述测试日志,得到每个用例标题对应的实际结果。
可选的,所述测试日志包括:自动化测试输出的日志,以及基于预置格式和结果封装输出的日志中的一个或多个。
本说明书实施例还提供一种测试用例生成装置,包括:
获取模块,用于获取目标软件的测试代码和所述测试代码的设计文档;
解析模块,用于解析所述测试代码和所述设计文档,获取所述目标软件的测试用例编写要素;
生成模块,用于基于所述测试用例编写要素,生成所述目标软件的测试用例。
可选的,解析模块,具体用于:
解析所述测试代码的代码注释,得到所述测试用例编写要素中的标题要素;解析所述测试代码的代码事件,得到所述测试用例编写要素中的步骤要素;解析所述设计文档,得到所述测试用例编写要素中的预期结果要素。
可选的,解析模块,具体用于:
抓取所述测试代码的代码注释中的标题关键字和所述标题关键字关联的标题级别,以生成标题要素。
可选的,解析模块,具体用于:
确定所述测试代码中每个标题关键字关联的代码事件;抓取该标题关键字关联的代码事件中的步骤关键字,并确定所述步骤关键字对应的步骤的执行顺序;将所述步骤关键字和所述执行顺序,作为该标题关键字对应的步骤要素。
可选的,生成模块,具体用于:
基于所述标题要素,确定用例标题的数据结构;基于标题要素和步骤要素之间的对应关系,确定每个用例标题对应的测试步骤;基于所述预期结果要素,确定每个用例标题对应的预期结果;基于用例标题的数据结构,以及每个用例标题对应的测试步骤和预期结果,生成所述目标软件的测试用例。
可选的,生成模块,具体用于:
基于所述标题关键字,生成用例标题;基于所述标题级别关键字,确定各用例标题之间的级别关系;基于所述级别关系,生成用例标题的数据结构。
可选的,生成模块,还用于:
对每个用例标题进行编号,得到每个用例标题对应的编号。
可选的,生成模块,还用于:
确定所述测试代码对应的测试日志,所述测试日志为使用所述测试代码对所述目标软件进行自动化测试生成的;解析所述测试日志,得到每个用例标题对应的实际结果。
可选的,所述测试日志包括:自动化测试输出的日志,以及基于预置格式和结果封装输出的日志中的一个或多个。
本说明书实施例还提供一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如上述的测试用例生成方法的步骤。
本说明书实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的测试用例生成方法的步骤。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
通过解析自动化测试用的测试代码和测试代码的设计文档,以从中得到测试用例的编写要素,进而确定需要编写的测试用例。与现有技术中自动化测试和测试用例编写相互独立的方案相比,能够实现自动化测试和测试用例编写的并行执行,有效提高测试用例编写效率,进而提高软件测试效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本说明书提供的一种应用场景的示意图;
图2为本说明书一实施例提供的一种测试用例生成方法的流程示意图;
图3为本说明书一实施例提供的步骤240的一种实现方式的流程示意图;
图4为本说明书一实施例提供的用例标题的数据结构的示意图;
图5为本说明书另一实施例提供的一种测试用例生成方法的流程图;
图6为本说明书另一实施例提供的解析过程的示意图;
图7为本说明书一实施例提供的一种测试用例生成装置的结构示意图;
图8为本说明书一实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
正如背景技术部分陈述的,目前的测试用例编写与自动化测试的过程没有直接关系,导致技术人员需要人为确定需要编写哪些测试用例,并通过手动编写以及修改来完成,存在测试用例确定、编写效率低的问题。
基于此,本发明提供一种测试用例生成方法,通过解析自动化测试用的测试代码和测试代码的设计文档,以从中得到测试用例的编写要素,进而生成需要编写的测试用例。与现有技术中自动化测试和测试用例编写相互独立的方案相比,能够实现自动化测试和测试用例编写的并行执行,有效提高测试用例编写效率,进而提高软件测试效率。
其中,自动化测试一般是指软件测试的自动化,软件测试就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件;测试代码是指对软件进行自动化测试所需的代码段;测试用例(Test Case)是指为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求;测试用例的要素包括核心要素和非核心要素,对于前者,其包括:标题、步骤和预期结果;对于后者,其包括预支条件、测试用例所属的项目、用例编号、重要级别以及测试用例输入;其中,标题是指对测试用例的描述,标题应该清楚的表达测试用例的用例;步骤是指对测试执行过程进行描述;预期结果是指提供测试执行的预期结果,预期结果一般是根据产品需求得出,如果实际结果和预期结果一致则测试通过;反之失败;预支条件是指执行当前测试用例所需要的前提条件,如果这些前提条件不满足,则后面的步骤无法进行或无法的到预期结果。
下面参见图1对本发明的应用场景进行示例性说明。
该应用场景中,包括自动化测试部分和测试用例确定部分;其中,
自动化测试部分包括:输入目标软件对应的测试代码,基于测试代码对目标软件进行自动化测试,输出测试报告;
测试用例确定部分包括:输入目标软件对应的测试代码以及该测试代码的设计文档,并可选的输入自动化测试过程中产生的日志,解析输入的数据得到所需的测试用例要素,输出需要编写的测试用例。
其中,测试报告是指把测试的过程和结果写成文档,对发现的问题和缺陷进行分析,为纠正软件的存在的质量问题提供依据,同时为软件验收和交付打下基础;日志包含测试运行或调度运行期间发生的事件的历史记录,以及每个验证点的状态;设计文档主要是指测试的前期准备工作阶段完成的测试文档,用以对将要进行的测试工作做整体计划安排。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图2为本说明书一实施例提供的一种测试用例生成方法的流程示意图,参见图2,该方法具体可以包括如下步骤:
步骤220、获取目标软件的测试代码和所述测试代码的设计文档;
其中,设计文档是指该测试代码的设计说明,至少包括各测试代码段对应的预期结果。
步骤240、解析所述测试代码和所述设计文档,获取所述目标软件的测试用例编写要素;参见图3,其一种实现方式可以为:
步骤320、解析所述测试代码的代码注释,得到所述测试用例编写要素中标题要素;其具体可以示例为:
抓取所述测试代码的代码注释中的标题关键字(例如:登录、注册等)和所述标题关键字关联的标题级别(例如:一级、二级等),以生成标题要素,例如:#登录注册-登录-三级-四级#。
步骤340、解析所述测试代码的代码事件,得到所述测试用例编写要素中的步骤要素;其具体可以示例为:
确定所述测试代码中每个标题关键字关联的代码事件;抓取该标题关键字关联的代码事件中的步骤关键字,并确定所述步骤关键字对应的步骤的执行顺序;将所述步骤关键字和所述执行顺序,作为该标题关键字对应的步骤要素。
其中,标题关键字关联的代码事件是指该标题关键字与同级的下一个标题关键字之间的代码段中的代码事件,例如:drive.tap(“XXX”),其中的步骤关键字包括:tap点击。
步骤360、解析所述设计文档,得到所述测试用例编写要素中的预期结果要素。
即,从设计文档中提取出每个标题关键字对应的预期结果。
步骤260、基于所述测试用例编写要素,生成所述目标软件的测试用例。其一种实现方式可以为:
基于所述标题要素,确定用例标题的数据结构;基于标题要素和步骤要素之间的对应关系,确定每个用例标题对应的测试步骤;基于所述预期结果要素,确定每个用例标题对应的预期结果;基于用例标题的数据结构,以及每个用例标题对应的测试步骤和预期结果,生成所述目标软件的测试用例。
即,先确定各个用例标题之间的上下级关系并构建数据结构,然后,将各个用例标题的测试步骤/预期结果填充至数据结构,或者,建立用例标题和测试步骤/预期结果的关联关系。
其中,确定用例标题的数据结构的步骤具体示例为:
基于所述标题关键字,生成用例标题;基于所述标题级别关键字,确定各用例标题之间的级别关系;基于所述级别关系,生成用例标题的数据结构,参见图4。
进一步地,方法还可为各用例增加编号要素,其一种实现方式可以为:
对每个用例标题进行编号,得到每个用例标题对应的编号。具体可以示例为:
同级用例标题之间使用不同编号,下级用例标题使用上级用例标题的编号+本级用例标题的编号来表示。
进一步地,方法还可为各用例增加实际结果要素,其一种实现方式可以为:
确定所述测试代码对应的测试日志,所述测试日志为使用所述测试代码对所述目标软件进行自动化测试生成的;解析所述测试日志,得到每个用例标题对应的实际结果。
其中,所述测试日志包括:自动化测试输出的日志,以及基于预置格式和结果封装输出的日志中的一个或多个。
可见,本实施例通过解析自动化测试用的测试代码和测试代码的设计文档,以从中得到测试用例的编写要素,进而确定需要编写的测试用例。与现有技术中自动化测试和测试用例编写相互独立的方案相比,能够实现自动化测试和测试用例编写的并行执行,有效提高测试用例编写效率,进而提高软件测试效率。
图5为本说明书另一实施例提供的一种测试用例生成方法的流程图,参见图5,该方法具体可以包括如下步骤:
步骤520、对目标软件进行自动化测试;具体可以基于appium实现。
其中,Appium是一个开源、跨平台的测试框架,可以用来测试原生及混合的移动端应用。
步骤540、解析自动化测试用的测试代码和测试代码的设计文档,得到测试用例要素;参见图6,其一种实现方式可以为:
步骤S1、解析出测试代码中的注释,并将其抓取为用例标题。具体可以示例为:
对于测试代码中的注释:
#登录-输入正确的手机号和密码后点击确定
……………..代码段
#注册-xxxx
……………..代码段
抓取出的用例标题包括:登录、注册。
步骤S2、解析测试代码中的代码事件(例如:tap--点击),并封装成测试用例的步骤。具体可以示例为:
对于代码段:
findElement(By.UIAutomation(“XXX"))
drive.tap(“XXX”)
其中的tap,submit等代码事件作为测试步骤封装。并根据执行顺序,依次写入步骤并编号。
步骤S3、解析测试代码的设计文档,得到设计文档在appium中设置的期望结果。
步骤S4、解析自动化测试的日志,得到测试代码实际执行的实际结果。
其中,日志主要分成两块,一块是appium提供的日志,主要封装下面几类:
-安装是否成功
-设备是否连接
-输入法
第二块是logging记录每执行一个事件的日志,根据设置的日志格式以及结果,进行封装分类,全日志保存,封装的log输出到实际结果中。
主要封装下面几种:
-元素是否存在
-截图是否成功
-每条点击事件的执行情况
步骤560、基于测试用例要素,生成需要编写的测试用例。其一种实现方式可以为:
通过python脚本写入,将测试用例要素写入excel等类型的文件中,生成测试用例格式,以供相关人员编写各测试步骤具体的代码段,形成一个个完整的测试用例。
其中,测试用例格式参见下表所示:
其中,编号:生成顺序阿拉伯数字,从1开始,逐行增1;标题:抓取代码中所有的标题,依次放到同列,不同行下;测试步骤:根据2个同级标题中的代码段,算出有几个事件,生成步骤序号,根据事件生成具体步骤,如tap-点击,submit-提交等;期望结果:每个代码段设置一个assert值,程序最后抓取作为期望结果;实际结果:代码执行后,根据封装的日志以及实际执行的日志匹配的部分,输出到实际结果中;截图:是指基于预设置的截图位置所截的图,可以在必要时进行截图并放到用例中。
步骤580、执行编写完成的测试用例,得到实际结果;具体可以示例为:
步骤S1、编写python脚本生成完整测试用例,主要是完成表中编号,标题,测试步骤,期望结果四列;
步骤S2、基于完整测试用例执行appium测试;
步骤S3、把实际结果以及截图补充到上表中。
可见,本实施例通过解析自动化测试用的测试代码和测试代码的设计文档,以从中得到测试用例的编写要素,进而生成需要编写的测试用例,并在完成需要编写的测试用例后,基于完成的测试用例进行自动化测试。能够建立自动化测试和测试用例编写的关联性,以有效提高测试用例编写效率,进而提高软件测试效率。
另外,对于上述方法实施方式,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施方式并不受所描述的动作顺序的限制,因为依据本发明实施方式,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施方式均属于优选实施方式,所涉及的动作并不一定是本发明实施方式所必须的。
图7为本说明书一实施例提供的一种测试用例生成装置的结构示意图,参见图7,该装置具体可以包括:获取模块71、解析模块72和生成模块73,其中:
获取模块71,用于获取目标软件的测试代码和所述测试代码的设计文档;
解析模块72,用于解析所述测试代码和所述设计文档,获取所述目标软件的测试用例编写要素;
生成模块73,用于基于所述测试用例编写要素,确定所述目标软件的测试用例。
可选的,解析模块72,具体用于:
解析所述测试代码的代码注释,得到所述测试用例编写要素中的标题要素;解析所述测试代码的代码事件,得到所述测试用例编写要素中的步骤要素;解析所述设计文档,得到所述测试用例编写要素中的预期结果要素。
可选的,解析模块72,具体用于:
抓取所述测试代码的代码注释中的标题关键字和所述标题关键字关联的标题级别,以生成标题要素。
可选的,解析模块72,具体用于:
确定所述测试代码中每个标题关键字关联的代码事件;抓取该标题关键字关联的代码事件中的步骤关键字,并确定所述步骤关键字对应的步骤的执行顺序;将所述步骤关键字和所述执行顺序,作为该标题关键字对应的步骤要素。
可选的,生成模块73,具体用于:
基于所述标题要素,确定用例标题的数据结构;基于标题要素和步骤要素之间的对应关系,确定每个用例标题对应的测试步骤;基于所述预期结果要素,确定每个用例标题对应的预期结果;基于用例标题的数据结构,以及每个用例标题对应的测试步骤和预期结果,生成所述目标软件的测试用例。
可选的,生成模块73,具体用于:
基于所述标题关键字,生成用例标题;基于所述标题级别关键字,确定各用例标题之间的级别关系;基于所述级别关系,生成用例标题的数据结构。
可选的,生成模块73,还用于:
对每个用例标题进行编号,得到每个用例标题对应的编号。
可选的,生成模块73,还用于:
确定所述测试代码对应的测试日志,所述测试日志为使用所述测试代码对所述目标软件进行自动化测试生成的;解析所述测试日志,得到每个用例标题对应的实际结果。
可选的,所述测试日志包括:自动化测试输出的日志,以及基于预置格式和结果封装输出的日志中的一个或多个。
可见,本实施例通过解析自动化测试用的测试代码和测试代码的设计文档,以从中得到测试用例的编写要素,进而生成需要编写的测试用例。与现有技术中自动化测试和测试用例编写相互独立的方案相比,能够实现自动化测试和测试用例编写的并行执行,有效提高测试用例编写效率,进而提高软件测试效率。
另外,对于上述装置实施方式而言,由于其与方法实施方式基本相似,所以描述的比较简单,相关之处参见方法实施方式的部分说明即可。而且,应当注意的是,在本发明的装置的各个部件中,根据其要实现的功能而对其中的部件进行了逻辑划分,但是,本发明不受限于此,可以根据需要对各个部件进行重新划分或者组合。
图8为本说明书一实施例提供的一种电子设备的结构示意图,参见图8,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成测试用例生成装置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
网络接口、处理器和存储器可以通过总线系统相互连接。总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器可能包含高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器。
处理器,用于执行所述存储器存放的程序,并具体执行:
获取目标软件的测试代码和所述测试代码的设计文档;
解析所述测试代码和所述设计文档,获取所述目标软件的测试用例编写要素;
基于所述测试用例编写要素,生成所述目标软件的测试用例。
上述如本申请图7所示实施例揭示的测试用例生成装置或管理者(Master)节点执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
测试用例生成装置还可执行图2-3,5-6的方法,并实现管理者节点执行的方法。
基于相同的发明创造,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行图2-3,5-6对应的实施例提供的测试用例生成方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种测试用例生成方法,其特征在于,包括:
获取目标软件的测试代码和所述测试代码的设计文档;
解析所述测试代码和所述设计文档,获取所述目标软件的测试用例编写要素;
基于所述测试用例编写要素,生成所述目标软件的测试用例。
2.根据权利要求1所述的方法,其特征在于,解析所述测试代码和所述设计文档,获取所述目标软件的测试用例编写要素包括:
解析所述测试代码的代码注释,得到所述测试用例编写要素中的标题要素;
解析所述测试代码的代码事件,得到所述测试用例编写要素中的步骤要素;
解析所述设计文档,得到所述测试用例编写要素中的预期结果要素。
3.根据权利要求2所述的方法,其特征在于,解析所述测试代码的代码注释,得到所述测试用例编写要素中的标题要素包括:
抓取所述测试代码的代码注释中的标题关键字和所述标题关键字关联的标题级别,以生成标题要素。
4.根据权利要求3所述的方法,其特征在于,解析所述测试代码的代码事件,得到所述测试用例编写要素中的步骤要素包括:
确定所述测试代码中每个标题关键字关联的代码事件;
抓取该标题关键字关联的代码事件中的步骤关键字,并确定所述步骤关键字对应的步骤的执行顺序;
将所述步骤关键字和所述执行顺序,作为该标题关键字对应的步骤要素。
5.根据权利要求4所述的方法,其特征在于,基于所述测试用例编写要素,生成所述目标软件的测试用例包括:
基于所述标题要素,确定用例标题的数据结构;
基于标题要素和步骤要素之间的对应关系,确定每个用例标题对应的测试步骤;
基于所述预期结果要素,确定每个用例标题对应的预期结果;
基于用例标题的数据结构,以及每个用例标题对应的测试步骤和预期结果,生成所述目标软件的测试用例。
6.根据权利要求5所述的方法,其特征在于,基于所述标题要素,确定用例标题的数据结构包括:
基于所述标题关键字,生成用例标题;
基于所述标题级别关键字,确定各用例标题之间的级别关系;
基于所述级别关系,生成用例标题的数据结构。
7.根据权利要求5所述的方法,其特征在于,还包括:
对每个用例标题进行编号,得到每个用例标题对应的编号。
8.根据权利要求5所述的方法,其特征在于,还包括:
确定所述测试代码对应的测试日志,所述测试日志为使用所述测试代码对所述目标软件进行自动化测试生成的;
解析所述测试日志,得到每个用例标题对应的实际结果。
9.根据权利要求8所述的方法,其特征在于,所述测试日志包括:自动化测试输出的日志,以及基于预置格式和结果封装输出的日志中的一个或多个。
10.一种测试用例生成装置,其特征在于,包括:
获取模块,用于获取目标软件的测试代码和所述测试代码的设计文档;
解析模块,用于解析所述测试代码和所述设计文档,获取所述目标软件的测试用例编写要素;
生成模块,用于基于所述测试用例编写要素,生成所述目标软件的测试用例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811466589.9A CN109614324B (zh) | 2018-12-03 | 2018-12-03 | 一种测试用例生成方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811466589.9A CN109614324B (zh) | 2018-12-03 | 2018-12-03 | 一种测试用例生成方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109614324A true CN109614324A (zh) | 2019-04-12 |
CN109614324B CN109614324B (zh) | 2022-02-08 |
Family
ID=66006857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811466589.9A Active CN109614324B (zh) | 2018-12-03 | 2018-12-03 | 一种测试用例生成方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109614324B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110232024A (zh) * | 2019-05-26 | 2019-09-13 | 必成汇(成都)科技有限公司 | 软件自动化测试框架及测试方法 |
CN110245090A (zh) * | 2019-06-24 | 2019-09-17 | 四川首汽交投汽车共享科技有限公司 | 一种接口测试方法 |
CN110287122A (zh) * | 2019-06-29 | 2019-09-27 | 广州华多网络科技有限公司 | 一种自动化测试方法、装置、终端和存储介质 |
CN110399294A (zh) * | 2019-06-26 | 2019-11-01 | 平安科技(深圳)有限公司 | 测试用例生成方法、装置、计算机设备和存储介质 |
CN110908896A (zh) * | 2019-10-29 | 2020-03-24 | 天津幸福生命科技有限公司 | 一种基于决策树的测试方法及装置 |
CN111831545A (zh) * | 2020-01-20 | 2020-10-27 | 北京嘀嘀无限科技发展有限公司 | 测试用例生成方法、生成装置、计算机设备和存储介质 |
CN112131103A (zh) * | 2020-09-10 | 2020-12-25 | 上海云轴信息科技有限公司 | 一种组织测试用例的方法及设备 |
CN112286813A (zh) * | 2020-10-30 | 2021-01-29 | 上海纳恩汽车技术有限公司 | 一种用例关键字的自动化生成系统及方法 |
CN112559318A (zh) * | 2020-11-02 | 2021-03-26 | 浙江诺诺网络科技有限公司 | 一种测试用例生成方法、装置及电子设备和存储介质 |
CN112817864A (zh) * | 2021-02-23 | 2021-05-18 | 北京字节跳动网络技术有限公司 | 一种测试文件的生成方法、装置、设备及介质 |
CN113900953A (zh) * | 2021-10-28 | 2022-01-07 | 南京华飞数据技术有限公司 | 一种基于反射机制的软件自动化测试架构方法 |
CN115454828A (zh) * | 2022-08-25 | 2022-12-09 | 深圳市沃享科技有限公司 | 在线化的用例测试方法、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150234733A1 (en) * | 2014-02-18 | 2015-08-20 | International Business Machines Corporation | Software testing |
CN105117335A (zh) * | 2015-08-26 | 2015-12-02 | 卡斯柯信号有限公司 | 一种用于软件单元的自动化验证及回归测试方法 |
CN106776334A (zh) * | 2016-12-28 | 2017-05-31 | 北京奇虎科技有限公司 | 基于注释生成测试用例方法及装置 |
CN106951368A (zh) * | 2017-03-12 | 2017-07-14 | 北京工业大学 | 基于uml时序图的测试用例自动生成方法 |
CN108647146A (zh) * | 2018-05-11 | 2018-10-12 | 北京信息科技大学 | 基于修正条件判定组合覆盖的测试用例生成方法 |
-
2018
- 2018-12-03 CN CN201811466589.9A patent/CN109614324B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150234733A1 (en) * | 2014-02-18 | 2015-08-20 | International Business Machines Corporation | Software testing |
CN105117335A (zh) * | 2015-08-26 | 2015-12-02 | 卡斯柯信号有限公司 | 一种用于软件单元的自动化验证及回归测试方法 |
CN106776334A (zh) * | 2016-12-28 | 2017-05-31 | 北京奇虎科技有限公司 | 基于注释生成测试用例方法及装置 |
CN106951368A (zh) * | 2017-03-12 | 2017-07-14 | 北京工业大学 | 基于uml时序图的测试用例自动生成方法 |
CN108647146A (zh) * | 2018-05-11 | 2018-10-12 | 北京信息科技大学 | 基于修正条件判定组合覆盖的测试用例生成方法 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110232024B (zh) * | 2019-05-26 | 2020-02-28 | 必成汇(成都)科技有限公司 | 软件自动化测试框架及测试方法 |
CN110232024A (zh) * | 2019-05-26 | 2019-09-13 | 必成汇(成都)科技有限公司 | 软件自动化测试框架及测试方法 |
CN110245090A (zh) * | 2019-06-24 | 2019-09-17 | 四川首汽交投汽车共享科技有限公司 | 一种接口测试方法 |
CN110399294A (zh) * | 2019-06-26 | 2019-11-01 | 平安科技(深圳)有限公司 | 测试用例生成方法、装置、计算机设备和存储介质 |
CN110287122B (zh) * | 2019-06-29 | 2023-08-11 | 广州华多网络科技有限公司 | 一种自动化测试方法、装置、终端和存储介质 |
CN110287122A (zh) * | 2019-06-29 | 2019-09-27 | 广州华多网络科技有限公司 | 一种自动化测试方法、装置、终端和存储介质 |
CN110908896A (zh) * | 2019-10-29 | 2020-03-24 | 天津幸福生命科技有限公司 | 一种基于决策树的测试方法及装置 |
CN111831545A (zh) * | 2020-01-20 | 2020-10-27 | 北京嘀嘀无限科技发展有限公司 | 测试用例生成方法、生成装置、计算机设备和存储介质 |
CN112131103A (zh) * | 2020-09-10 | 2020-12-25 | 上海云轴信息科技有限公司 | 一种组织测试用例的方法及设备 |
CN112286813A (zh) * | 2020-10-30 | 2021-01-29 | 上海纳恩汽车技术有限公司 | 一种用例关键字的自动化生成系统及方法 |
CN112286813B (zh) * | 2020-10-30 | 2023-12-12 | 上海纳恩汽车技术股份有限公司 | 一种用例关键字的自动化生成系统及方法 |
CN112559318A (zh) * | 2020-11-02 | 2021-03-26 | 浙江诺诺网络科技有限公司 | 一种测试用例生成方法、装置及电子设备和存储介质 |
CN112817864A (zh) * | 2021-02-23 | 2021-05-18 | 北京字节跳动网络技术有限公司 | 一种测试文件的生成方法、装置、设备及介质 |
CN112817864B (zh) * | 2021-02-23 | 2024-04-16 | 北京字节跳动网络技术有限公司 | 一种测试文件的生成方法、装置、设备及介质 |
CN113900953A (zh) * | 2021-10-28 | 2022-01-07 | 南京华飞数据技术有限公司 | 一种基于反射机制的软件自动化测试架构方法 |
CN115454828A (zh) * | 2022-08-25 | 2022-12-09 | 深圳市沃享科技有限公司 | 在线化的用例测试方法、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109614324B (zh) | 2022-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109614324B (zh) | 一种测试用例生成方法和装置 | |
CN109871326B (zh) | 一种脚本录制的方法和装置 | |
CN108459962B (zh) | 代码规范性检测方法、装置、终端设备及存储介质 | |
CN104035863B (zh) | 一种浏览器测试方法及装置 | |
US8972938B2 (en) | Determining functional design/requirements coverage of a computer code | |
CN107451058B (zh) | 一种软件开发方法和装置 | |
CN107578210B (zh) | 合同审批流程的自动化测试方法及装置 | |
CN111881024A (zh) | 一种接口测试脚本的确定方法、装置、设备及存储介质 | |
CN111615688A (zh) | 一种断言验证代码绑定方法及装置 | |
CN108427636A (zh) | 应用的测试方法、系统和电子设备 | |
CN107480056B (zh) | 一种软件测试方法和装置 | |
CN111427578B (zh) | 一种数据转换方法、装置及设备 | |
CN110750440A (zh) | 数据测试方法及终端设备 | |
CN116610568A (zh) | 一种识别代码的依赖关系的方法、装置、设备及介质 | |
CN114490413A (zh) | 测试数据的准备方法及装置、存储介质和电子设备 | |
US20190303279A1 (en) | Modeling system | |
Thooriqoh et al. | Selenium Framework for Web Automation Testing: A Systematic Literature Review | |
CN113407449A (zh) | 一种接口测试方法以及装置 | |
CN109857665B (zh) | 一种测试用例的测试执行方法及装置 | |
CN114398283A (zh) | 用户界面的自动化测试方法、装置、电子设备及存储介质 | |
CN116185826A (zh) | 一种测试方法、装置、设备及存储介质 | |
CN115687108A (zh) | 基于uvm与fpv相结合的验证方法、平台、终端及存储介质 | |
CN112114794B (zh) | 网站应用程序自动生成方法、装置和计算机存储介质 | |
CN114265780A (zh) | 一种报表系统的测试方法、系统、设备及存储介质 | |
CN114443004A (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210722 Address after: 100016 no.4301, No.52 Jiuxianqiao hospital, Chaoyang District, Beijing Applicant after: BEIJING TESTIN INFORMATION TECHNOLOGY Co.,Ltd. Address before: 100041 room 9579, building 3, 3 Xijing Road, Badachu hi tech park, Shijingshan District, Beijing Applicant before: BEIJING TESTIN NETWORK TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |