CN117573513A - 测试用例生成方法及装置、电子设备及存储介质 - Google Patents
测试用例生成方法及装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117573513A CN117573513A CN202311396578.9A CN202311396578A CN117573513A CN 117573513 A CN117573513 A CN 117573513A CN 202311396578 A CN202311396578 A CN 202311396578A CN 117573513 A CN117573513 A CN 117573513A
- Authority
- CN
- China
- Prior art keywords
- test case
- data
- target data
- information
- buried
- 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
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 318
- 238000000034 method Methods 0.000 title claims description 44
- 238000012216 screening Methods 0.000 claims abstract description 11
- 230000004044 response Effects 0.000 claims description 48
- 230000015654 memory Effects 0.000 claims description 29
- 238000011056 performance test Methods 0.000 claims description 28
- 238000011990 functional testing Methods 0.000 claims description 21
- 230000006399 behavior Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 12
- 238000012163 sequencing technique Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 description 13
- 238000004458 analytical method Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000001788 irregular Effects 0.000 description 5
- 239000000047 product Substances 0.000 description 5
- 239000013589 supplement Substances 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 238000013522 software testing Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000009960 carding Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010998 test method 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供了一种测试用例生成方法及装置、电子设备及存储介质,本申请的技术方案首先获取待测试对象产生的埋点数据,之后,确定埋点数据对应于各预设统计维度的统计结果信息,之后,根据得到的统计结果信息,从埋点数据中筛选出目标数据;之后,确定各目标数据所对应的测试用例类别;最后,针对每一测试用例类别,根据该测试用例类别所对应的测试用例模板,以及该测试用例类别对应的目标数据,确定测试用例模板中使用的字段信息;再根据字段信息和测试用例模板,生成该测试用例类别对应的测试用例脚本,并利用测试用例脚本生成对应的测试用例。
Description
技术领域
本申请涉及入计算机以及数据处理技术领域,尤其涉及一种测试用例生成方法及装置、电子设备及存储介质。
背景技术
软件测试的重要性是毋庸置疑的。但如何以最少的人力、资源投入,在最短的时间内完成测试,发现软件系统的缺陷,保证软件的优良品质,则是软件公司探索和追求的目标。
影响软件测试的因素很多,例如软件本身的复杂程度、开发人员(包括分析、设计、编程和测试的人员)的素质、测试方法和技术的运用等。因为有些因素是客观存在,无法避免的;有些因素则是波动的、不稳定的。例如开发队伍是流动的,有经验的开发人员走了,新人不断补充进来;每个开发人员的工作也会受情绪影响,等等。有了测试用例,无论是谁来测试,参照测试用例实施,都能保障测试的质量,从而把人为因素小。因此,测试用例的设计和编制是软件测试活动中最重要的。测试用例是测试工作的指导,是软件测试必须遵守的准则,更是软件测试质量稳定的根本保障。
目前,测试用例设计还是测试人员为主要驱动力,主要依据还是基于需求文档,对于用户体验类、特殊场景类、性能类等方面的用例设计依靠测试人员的能力、经验、业务熟悉度等方面,会存在测试用例未覆盖的风险。
发明内容
本申请实施例提供一种测试用例生成方法及装置、电子设备及存储介质,以对现有的测试用例进行补充,完善软件测试功能。
第一方面,本申请实施例提供了一种测试用例生成方法,包括:
获取待测试对象产生的埋点数据;
确定所述埋点数据对应于各预设统计维度的统计结果信息;
根据所述统计结果信息,从所述埋点数据中筛选出目标数据;
确定各目标数据所对应的测试用例类别;
针对每一测试用例类别,根据该测试用例类别所对应的测试用例模板,以及该测试用例类别对应的目标数据,确定所述测试用例模板中使用的字段信息;根据所述字段信息和所述测试用例模板,生成该测试用例类别对应的测试用例脚本,并利用所述测试用例脚本生成对应的测试用例。
在一种可能的实施方式中,在所述获取待测试对象产生的埋点数据之前,还包括:
获取至少一个待测试对象的埋点数据,并将获取的埋点数据存入预设的数据库;
其中,一条所述埋点数据包括与该埋点数据对应的以下信息:对象名称、模块名称、菜单名称、时间类型、界面的地址信息、页面元素的名称、用户的名称、操作时间、关键词。
在一种可能的实施方式中,所述预设统计维度包括:
预设时间段内各页面的访问统计数;
预设时间段内各页面元素的操作统计数;
预设时间段内各关键词的查询次数;
预设时间段内各用户的操作行为的排序信息;
预设时间段内各接口的平均响应时间;
预设时间段内各接口的访问量。
在一种可能的实施方式中,所述根据所述统计结果信息,从所述埋点数据中筛选出目标数据,包括:
将所述访问统计数进行降序排列,并将前N1个访问统计数对应的埋点数据作为目标数据;其中,N1为正整数;
将所述操作统计数进行降序排列,并将前N2个操作统计数对应的埋点数据作为目标数据;其中,N2为正整数;
将所述查询次数进行降序排列,并将前N3个查询次数对应的埋点数据作为目标数据;其中,N3为正整数;
将所述平均响应时间进行降序排列,并将前N4个平均响应时间对应的埋点数据作为目标数据;其中,N4为正整数;
将所述访问量进行降序排列,并将前N5个访问量对应的埋点数据作为目标数据;其中,N5为正整数;
根据所述排序信息,将用户的操作行为排序不一致的埋点数据作为目标数据。
在一种可能的实施方式中,测试用例生成方法还包括:
根据所述埋点数据,确定各测试用例类别对应的操作频繁信息;
根据所述操作频繁信息,分别确定各测试用例类别的用例等级;并将所述用例等级作为对应的测试用例的用例等级。
在一种可能的实施方式中,所述测试用例类别包括功能测试用例、性能测试用例、接口测试用例;
所述确定各目标数据所对应的测试用例类别,包括:
在所述目标数据包括用户操作行为的顺序信息或者页面元素的操作信息的情况下,确定所述目标数据对应的测试用例类别为功能测试用例;
在所述目标数据包括接口的响应结果或接口的访问量的情况下,确定所述目标数据对应的测试用例类别为接口测试用例;
在所述目标数据包括数据并发的信息或者响应时间的情况下,确定所述目标数据对应的测试用例类别为性能测试用例。
在一种可能的实施方式中,所述根据所述字段信息和所述测试用例模板,生成该测试用例类别对应的测试用例脚本,包括:
在该测试用例类别为功能测试用例的情况下,所述字段信息包括模块名称、操作结果以及操作步骤;以及,根据所述模块名称、操作结果、操作步骤和所述测试用例模板,生成功能测试用例对应的测试用例脚本;
在该测试用例类别为接口测试用例的情况下,所述字段信息包括接口地址、接口响应结果;以及,根据所述接口地址、接口响应结果和所述测试用例模板,生成接口测试用例对应的测试用例脚本;
在该测试用例类别为性能测试用例的情况下,所述字段信息包括并发的信息、响应时间;以及,根据所述并发的信息、响应时间和所述测试用例模板,生成性能测试用例对应的测试用例脚本。
第二方面,本申请实施例提供了一种测试用例生成装置,包括:
数据获取模块,用于获取待测试对象产生的埋点数据;
数据统计模块,用于确定所述埋点数据对应于各预设统计维度的统计结果信息;
数据选定模块,用于根据所述统计结果信息,从所述埋点数据中筛选出目标数据;
类别确定模块,用于确定各目标数据所对应的测试用例类别;
用例生成模块,用于针对每一测试用例类别,根据该测试用例类别所对应的测试用例模板,以及该测试用例类别对应的目标数据,确定所述测试用例模板中使用的字段信息;根据所述字段信息和所述测试用例模板,生成该测试用例类别对应的测试用例脚本,并利用所述测试用例脚本生成对应的测试用例。
第三方面,本申请实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器在执行所述计算机程序时实现上述任一项所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法。
本申请首先获取待测试对象(例如,某一待测试的系统或者软件)产生的埋点数据,之后,确定埋点数据对应于各预设统计维度的统计结果信息,之后,根据得到的统计结果信息,从埋点数据中筛选出目标数据;之后,确定各目标数据所对应的测试用例类别;最后,针对每一测试用例类别,根据该测试用例类别所对应的测试用例模板,以及该测试用例类别对应的目标数据,确定测试用例模板中使用的字段信息;再根据字段信息和测试用例模板,生成该测试用例类别对应的测试用例脚本,并利用测试用例脚本生成对应的测试用例。与现有技术相比,由于埋点数据能够记录用户使用的模块、执行的操作以及操作的步骤、使用的菜单等,因此利用埋点数据能够了解用户重点关注的模块、操作、页面元素、操作流程等,利用这样的数据实现了反向确认测试用例的重要性,基于此生成的测试用例,能够有针对性地测试用户关注的软件功能,同时还能够测试非常规的测试场景,关注到边界测试场景,作为测试用例的补充,本申请生成的测试用例丰富了测试用例,能够使测试工作更加完整,从而能够更有效地保证待测试对象的代码质量。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,可依照说明书的内容予以实施,并且为了让本申请的上述和其他目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本申请的一些实施方式,而不应将其视为是对本申请范围的限制。
图1为本申请一实施例的测试用例生成方法的流程图;
图2是本申请一实施例的测试用例生成方案的系统结构图;
图3是本申请一实施例的测试用例生成装置的结构框图;
图4是本申请一实施例的电子设备的结构框图。
具体实施方式
在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本申请的构思或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的,而非限制性的。
为便于理解本申请实施例的技术方案,以下对本申请实施例的相关技术进行说明。以下相关技术作为可选方案与本申请实施例的技术方案可以进行任意结合,其均属于本申请实施例的保护范围。
目前,测试用例设计是测试人员为主要驱动力,主要依据还是基于需求文档,对于用户体验类、特殊场景类、性能类等方面的用例设计依靠测试人员的能力、经验、业务熟悉度等方面,会存在测试用例未覆盖的风险。针对这一技术问题,本申请利用埋点数据生成测试用例,由于埋点数据能够记录用户使用的模块、执行的操作以及操作的步骤、使用的菜单等,因此利用埋点数据能够了解用户重点关注的模块、操作、页面元素、操作流程等,利用这样的数据实现了反向确认测试用例的重要性,基于此生成的测试用例,能够有针对性地测试用户关注的软件功能,同时还能够测试非常规的测试场景,关注到边界测试场景,作为测试用例的补充,本申请生成的测试用例丰富了测试用例,能够使测试工作更加完整,从而能够更有效地保证待测试对象的代码质量。
下面对本申请的测试用例生成方法进行说明。
如图1所示,本申请实施例提供了一种测试用例生成方法,该方法的执行主体为能够进行数据分析以及代码生成的计算设备或者计算部件,具体的,本申请的测试用例生成方法包括以下步骤:
S110、获取待测试对象产生的埋点数据。
埋点系统已被广泛应用于客户端和服务端,这里埋点系统设置于待测试对象中,用于获取待测试对象的埋点数据。这里的待测试对象可以是某一待测试的系统、某一产品等。
一条所述埋点数据包括与该埋点数据对应的以下信息:对象名称、模块名称、菜单名称、时间类型、界面的地址信息、页面元素的名称、操作名称、执行操作的用户的名称、操作时间、关键词。上述模块是指待测试对象,例如某一产品下的模块,模块下面包括至少一个菜单。上述关键词可以是用户查询操作中输入的关键词。应当理解的是,埋点数据还可以包括其他与用户操作相关的信息,不限于上述列举。这里的页面元素包括且不限于页面中的按钮等可操作的元素。通过埋点数据可以将用户页面访问、元素点击、操作的流程或者顺序等信息记录下来,同时可以记录对应的待测试对象以及操作时间等信息。
在执行此步骤之前,本申请的测试用例生成方法还可以包括如下步骤:获取至少一个待测试对象的埋点数据,并将获取的埋点数据存入预设的数据库。
这里根据实际场景的需求可以获取多个不同的待测试对象的埋点数据,并将各待测试对象的埋点数据存入预设的数据库中。在执行此步骤S110时,只需要从预设的数据库中获取即可。
另外,将埋点数据存入预设的数据库之后,还可以从预设的数据库中筛选出所有待测试对象的名称,并把名称存入产品名称数据表中;之后,在需要生成测试用例的时候,从产品名称数据表中将所有待测试对象名称读取出来,并根据读取的名称从预设的数据库中逐个获取各待测试对象的埋点数据,并针对每个待测试对象的埋点数据分别执行下述步骤S120和S130,得到各个待测试对象的目标数据。最后分别利用各待测试对象的目标数据,分别执行步骤S140和S150,生成各待测试对象对应的测试用例。
S120、确定所述埋点数据对应于各预设统计维度的统计结果信息。
这里的预设统计维度可以包括:预设时间段内各页面的访问统计数;预设时间段内各页面元素的操作统计数,即预设时间段内各页面元素的被操作的统计数据;预设时间段内各关键词的查询次数,即预设时间段内各关键词在查询过程中被使用的次数;预设时间段内各用户的操作行为的排序信息;预设时间段内各接口的平均响应时间;预设时间段内各接口的访问量。
上述预设时间段可以根据实际场景进行设置,例如设置为1个月。
利用上述预设统计维度对埋点数据进行统计实现了在不同的维度对埋点数据进行解析,从统计结果信息能够清晰准确的得到用户重点使用的模块、非常规操作流程、关注的菜单、以及用户关注的边界和非常规测试场景;同时可以反向确定对应的测试用例的重要性等,基于此生成的测试用例,能够使测试工作更加的严谨,完整,更有效的保证待测试对象的代码质量。
S130、根据所述统计结果信息,从所述埋点数据中筛选出目标数据。
这里,可以根据统计结果信息,从埋点数据中筛选出与用户重点使用的模块、非常规操作流程、关注的菜单相关的埋点数据作为目标数据,从而可以生成进行相关测试的测试用例。
S140、确定各目标数据所对应的测试用例类别。
所述测试用例类别包括功能测试用例、性能测试用例、接口测试用例。
这里,功能测试用例可以根据业务模块进行划分,性能测试用例只要用于给测试开发人员提供出软件,即上述待测试对象在一定周期内的性能指标范围。
S150、针对每一测试用例类别,根据该测试用例类别所对应的测试用例模板,以及该测试用例类别对应的目标数据,确定所述测试用例模板中使用的字段信息;根据所述字段信息和所述测试用例模板,生成该测试用例类别对应的测试用例脚本,并利用所述测试用例脚本生成对应的测试用例。
测试人员利用生成的测试用例即可进行接口测试、性能测试、功能测试和回归测试等。
上述回归测试具体是指是进行完前期代码分支的接口、功能、性能测试通过后,代码合并后进行的测试,检测引入新代码后,是否影响待检测对象的其他功能。
上述实施例将待测试对象,例如,某一待测试的系统的埋点数据经过数据分析梳理,运用于测试用例管理,实现测试用例的有效补充。当前埋点数据多用于用户行为分析,上述实施例通过埋点数据分析用户的操作习惯,以此来跟踪应用程序性能、用户行为和功能的使用情况,旨在进行待测试对象调优及运营,提升用户体验。
在一些实施例中,测试用例生成方法还可以包括确定测试用例的等级,即后续的用例等级的步骤,具体地可以通过如下步骤实现:
首先根据上述埋点数据,确定各测试用例类别对应的操作频繁信息;根据所述操作频繁信息,分别确定各测试用例类别的用例等级;并将所述用例等级作为对应的测试用例的用例等级。
上述操作频繁信息用于表征用户执行测试用例所要测试的的操作的频繁程度,频繁程度越高,操作频繁信息对应的数值也越高。示例性地,用例等级可以包括:高、中、低。操作频繁信息为10%-20%时,用例等级为低,操作频繁信息为20%-50%时,用例等级为中,操作频繁信息为60%-90%时,用例等级为高;上述比值可以按照需求调整。操作频繁信息可以根据不同场景进行调整的,并不是固定的。
利用用例等级标记了接口测试用例、性能测试用例以及功能测试用例的重要程度,从而可以从使用者角度来反向确认测试用例的重要性、性能测试指标等,更有效的保证待检测对象的代码质量。
针对性能测试指标,例如并发和响应时间。并发:同一时间的请求数。响应时间:用户操作页面时抓取到接口的响应时间。比如并发:可能前期预计使用人数为200,实际埋点数据有1000个,就需要更改性能测试的指标。比如响应时间,针对响应时间过长的,需要加入到性能测试用例。
在一些实施例中,上述根据所述统计结果信息,从所述埋点数据中筛选出目标数据,具体可以利用如下步骤实现:
将所述访问统计数进行降序排列,并将前N1个访问统计数对应的埋点数据作为目标数据;其中,N1为正整数;将所述操作统计数进行降序排列,并将前N2个操作统计数对应的埋点数据作为目标数据;其中,N2为正整数;将所述查询次数进行降序排列,并将前N3个查询次数对应的埋点数据作为目标数据;其中,N3为正整数;将所述平均响应时间进行降序排列,并将前N4个平均响应时间对应的埋点数据作为目标数据;其中,N4为正整数;将所述访问量进行降序排列,并将前N5个访问量对应的埋点数据作为目标数据;其中,N5为正整数;根据所述排序信息,将用户的操作行为排序不一致的埋点数据作为目标数据。
利用上述步骤可以筛选出一个待检测对象对应的目标数据,这些目标数据都是具有代表性的、对应的操作较为频繁发生的数据,是需要用测试用户重点进行测试的。
在筛选出目标数据之后,可以利用如下步骤生成各目标数据对应的测试用例类别,之后利用确定的测试用例类别对应的目标数据和测试用例模板,可以生成测试用例类别对应的测试用例脚本,最后,利用测试用例脚本可生成对应的测试用例。
在一些实施例中,可以利用如下步骤确定各目标数据所对应的测试用例类别:
在所述目标数据包括用户操作行为的顺序信息或者页面元素的操作信息的情况下,确定所述目标数据对应的测试用例类别为功能测试用例;在所述目标数据包括接口的响应结果或接口的访问量的情况下,确定所述目标数据对应的测试用例类别为接口测试用例;在所述目标数据包括数据并发的信息或者响应时间的情况下,确定所述目标数据对应的测试用例类别为性能测试用例。
上述功能性测试用例对应的目标数据是用于表述操作场景组合的数据;上述接口测试用例对应的目标数据是用于表述涉及到接口的响应结果和接口的访问量的数据;上述性能测试用例对应的目标数据是用于表述数据并发量等信息的数据。
在一些实施例中,在确定了各目标数据所属的测试用例类别之后,根据某一测试用例类别所对应的测试用例模板,以及该测试用例类别对应的目标数据,可以确定所述测试用例模板中使用的字段信息;之后根据得到的字段信息和测试用例模板,可以生成该测试用例类别对应的测试用例脚本。
其中,根据得到的字段信息和测试用例模板,可以生成该测试用例类别对应的测试用例脚本,具体可以利用如下步骤实现:
在该测试用例类别为功能测试用例的情况下,确定的字段信息包括模块名称、操作结果以及操作步骤;此时,根据所述模块名称、操作结果、操作步骤和所述测试用例模板,生成功能测试用例对应的测试用例脚本。
在该测试用例类别为接口测试用例的情况下,确定的字段信息包括接口地址、接口响应结果;此时,根据所述接口地址、接口响应结果和所述测试用例模板,生成接口测试用例对应的测试用例脚本。
在该测试用例类别为性能测试用例的情况下,确定的字段信息包括并发的信息、响应时间;此时,根据所述并发的信息、响应时间和所述测试用例模板,生成性能测试用例对应的测试用例脚本。
用户的操作行为的顺序、按钮操作可以认为是待检测对象的功能,用户在操作时的习惯,可能千奇百怪,筛选的目标数据可以记录这些习惯,因此利用筛选的目标数据生成功能测试用例,能够更全面对检测待检测对象进行功能性测试。
接口测试用例:通过接口的响应结果,能够关注异常返回,利用包含响应结果的目标数据生成接口测试用例,能够作为接口测试来模拟用户行为,分析是正常返回结果,还是代码异常问题。访问量,指的是同一个页面访问的用户数;在用户数很多时,利用包含访问量的目标数据生成接口测试用例,能够查看接口返回结果,增加接口测试用例测试的覆盖范围。这里的返回结果可以是访问量。
并发是指同一时间内的请求数,响应时间是指用户操作页面时抓取到接口的响应时间,利用包括并发的信息、响应时间的目标数据生成的性能测试用例,能够实现响应时间过长的检测。
本申请基于待检测对象的埋点数据,进行分析处理后生成测试用例,提前了解用户重点使用模块及非常规操作流程,生成的测试用例可以作为测试用例补充,不仅能关注到用户常用的菜单模块,同时可以关注到边界或非常规的测试场景,丰富测试用例。基于现实用户操作的重点关注程度,反向确认用例重要性、性能测试指标等,使测试工作更加的严谨,完整,更有效的保证待检测对象的代码质量。
下面再通过一个实施例对本申请生成测试用例的方案进行说明。如图2所示,本实施例包括埋点系统、数据筛选模块、解析分类模块、测试脚本生成模块以及测试用例库。其中,数据筛选模块包括数据库和数据筛选子模块;解析分类模块包括解析子模块和整理分类子模块。
上述埋点系统设置在待检测对象中,用于获取待检测对象生成的埋点数据。数据库用于存储各个待检测对象的埋点数据;数据筛选子模块用于确定一个或各个待检测对象对应的统计结果信息,具体数据筛选子模块可以执行上述实施例中S120对应的步骤。解析子模块用于根据统计结果信息,从埋点数据中筛选出目标数据,也就是确定出生成测试用例需要使用的有效数据,具体解析子模块可以执行上述实施例中S130对应的步骤。整理分类子模块用于确定各目标数据所对应的测试用例类别,也就是为各目标数据打上对应的测试用例类别的标签,具体整理分类子模块可以执行上述实施例中S140对应的步骤。另外,整理分类子模块还用于根据上述统计结果信息,确定各测试用例类别对应的操作频繁信息;根据所述操作频繁信息,分别确定各测试用例类别的用例等级;并将所述用例等级作为对应的测试用例的用例等级。测试脚本生成模块用于根据测试用例类别的标签将目标数据分类,并针对每一测试用例类别,根据该测试用例类别所对应的测试用例模板,以及该测试用例类别对应的目标数据,确定所述测试用例模板中使用的字段信息;以及,根据确定的字段信息和测试用例模板,生成该测试用例类别对应的测试用例脚本;具体测试脚本生成模块可以执行上述实施例中S150对应的步骤。测试用例库用于存储生成的各个测试用例;其中,测试用例是利用所述测试用例脚本生成的。
本申请基于埋点系统的输出数据,进行分析处理后生成测试用例脚本,测试人员根据相关内容,进行单元测试、接口测试、性能测试、回归测试等方面的用例补充,不仅能关注到用户常用的菜单模块,同时可以关注到边界或非常规的测试场景,可以反向确认用例重要性、性能测试指标,使测试用例更加严谨、有效。本申请将埋点系统的应用领域从用户行为分析方面,扩大到测试相关领域,扩大了埋点数据的应用价值。
对应于上述实施例中的测试用例生成方法,本申请还提供了一种测试用例生成装置,如图3所示,本实施例中的测试用例生成装置包括:
数据获取模块310,用于获取待测试对象产生的埋点数据。
数据统计模块320,用于确定所述埋点数据对应于各预设统计维度的统计结果信息。
数据选定模块330,用于根据所述统计结果信息,从所述埋点数据中筛选出目标数据。
类别确定模块340,用于确定各目标数据所对应的测试用例类别。
用例生成模块350,用于针对每一测试用例类别,根据该测试用例类别所对应的测试用例模板,以及该测试用例类别对应的目标数据,确定所述测试用例模板中使用的字段信息;根据所述字段信息和所述测试用例模板,生成该测试用例类别对应的测试用例脚本,并利用所述测试用例脚本生成对应的测试用例。
在一些实施例中,还包括数据存储模块360,用于:
获取至少一个待测试对象的埋点数据,并将获取的埋点数据存入预设的数据库;
其中,一条所述埋点数据包括与该埋点数据对应的以下信息:对象名称、模块名称、菜单名称、时间类型、界面的地址信息、页面元素的名称、操作名称、用户的名称、操作时间、关键词。
在一些实施例中,所述预设统计维度包括:
预设时间段内各页面的访问统计数;
预设时间段内各页面元素的操作统计数;
预设时间段内各关键词的查询次数;
预设时间段内各用户的操作行为的排序信息;
预设时间段内各接口的平均响应时间;
预设时间段内各接口的访问量。
在一些实施例中,所述数据选定模块330在根据所述统计结果信息,从所述埋点数据中筛选出目标数据,具体用于:
将所述访问统计数进行降序排列,并将前N1个访问统计数对应的埋点数据作为目标数据;其中,N1为正整数;
将所述操作统计数进行降序排列,并将前N2个操作统计数对应的埋点数据作为目标数据;其中,N2为正整数;
将所述查询次数进行降序排列,并将前N3个查询次数对应的埋点数据作为目标数据;其中,N3为正整数;
将所述平均响应时间进行降序排列,并将前N4个平均响应时间对应的埋点数据作为目标数据;其中,N4为正整数;
将所述访问量进行降序排列,并将前N5个访问量对应的埋点数据作为目标数据;其中,N5为正整数;
根据所述排序信息,将用户的操作行为排序不一致的埋点数据作为目标数据。
在一些实施例中,还包括等级确定模块370,用于:
根据所述埋点数据,确定各测试用例类别对应的操作频繁信息;
根据所述操作频繁信息,分别确定各测试用例类别的用例等级;并将所述用例等级作为对应的测试用例的用例等级。
在一些实施例中,所述测试用例类别包括功能测试用例、性能测试用例、接口测试用例;
所述类别确定模块340在确定各目标数据所对应的测试用例类别时,具体用于:
在所述目标数据包括用户操作行为的顺序信息或者页面元素的操作信息的情况下,确定所述目标数据对应的测试用例类别为功能测试用例;
在所述目标数据包括接口的响应结果或接口的访问量的情况下,确定所述目标数据对应的测试用例类别为接口测试用例;
在所述目标数据包括数据并发的信息或者响应时间的情况下,确定所述目标数据对应的测试用例类别为性能测试用例。
在一些实施例中,所述用例生成模块350在根据所述字段信息和所述测试用例模板,生成该测试用例类别对应的测试用例脚本时,用于:
在该测试用例类别为功能测试用例的情况下,所述字段信息包括模块名称、操作结果以及操作步骤;以及,根据所述模块名称、操作结果、操作步骤和所述测试用例模板,生成功能测试用例对应的测试用例脚本;
在该测试用例类别为接口测试用例的情况下,所述字段信息包括接口地址、接口响应结果;以及,根据所述接口地址、接口响应结果和所述测试用例模板,生成接口测试用例对应的测试用例脚本;
在该测试用例类别为性能测试用例的情况下,所述字段信息包括并发的信息、响应时间;以及,根据所述并发的信息、响应时间和所述测试用例模板,生成性能测试用例对应的测试用例脚本。
申请实施例各装置中的各模块的功能可以参见上述方法中的对应描述,并具备相应的有益效果,在此不再赘述。
图4为用来实现本申请实施例的电子设备的框图。如图4所示,该电子设备包括:存储器410和处理器420,存储器410内存储有可在处理器420上运行的计算机程序。处理器420执行该计算机程序时实现上述实施例中的方法。存储器410和处理器420的数量可以为一个或多个。
该电子设备还包括:
通信接口430,用于与外界设备进行通信,进行数据交互传输。
如果存储器410、处理器420和通信接口430独立实现,则存储器410、处理器420和通信接口430可以通过总线相互连接并完成相互间的通信。该总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准体系结构(Extended Industry StandardArchitecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器410、处理器420及通信接口430集成在一块芯片上,则存储器410、处理器420及通信接口430可以通过内部接口完成相互间的通信。
本申请实施例提供了一种计算机可读存储介质,其存储有计算机程序,该程序被处理器执行时实现本申请实施例中提供的方法。
本申请实施例还提供了一种芯片,该芯片包括处理器,用于从存储器中调用并运行存储器中存储的指令,使得安装有芯片的通信设备执行本申请实施例提供的方法。
本申请实施例还提供了一种芯片,包括:输入接口、输出接口、处理器和存储器,输入接口、输出接口、处理器以及存储器之间通过内部连接通路相连,处理器用于执行存储器中的代码,当代码被执行时,处理器用于执行申请实施例提供的方法。
应理解的是,上述处理器可以是中央处理器(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(Advanced RISC Machines,ARM)架构的处理器。
进一步地,可选的,上述存储器可以包括只读存储器和随机访问存储器。该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以包括只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以包括随机访问存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM均可用。例如,静态随机访问存储器(Static RAM,SRAM)、动态随机访问存储器(Dynamic Random Access Memory,DRAM)、同步动态随机访问存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机访问存储器(Double Data RateSDRAM,DDR SDRAM)、增强型同步动态随机访问存储器(Enhanced SDRAM,ESDRAM)、同步链接动态随机访问存储器(Sync link DRAM,SLDRAM)和直接内存总线随机访问存储器(DirectRambus RAM,DR RAM)。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生依照本申请的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包括于本申请的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中描述的或在此以其他方式描述的任何过程或方法可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分。并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能。
在流程图中描述的或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
应理解的是,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。上述实施例方法的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。上述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。该存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本申请的示例性实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请记载的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种测试用例生成方法,其特征在于,包括:
获取待测试对象产生的埋点数据;
确定所述埋点数据对应于各预设统计维度的统计结果信息;
根据所述统计结果信息,从所述埋点数据中筛选出目标数据;
确定各目标数据所对应的测试用例类别;
针对每一测试用例类别,根据该测试用例类别所对应的测试用例模板,以及该测试用例类别对应的目标数据,确定所述测试用例模板中使用的字段信息;根据所述字段信息和所述测试用例模板,生成该测试用例类别对应的测试用例脚本,并利用所述测试用例脚本生成对应的测试用例。
2.根据权利要求1所述的方法,其特征在于,在所述获取待测试对象产生的埋点数据之前,还包括:
获取至少一个待测试对象的埋点数据,并将获取的埋点数据存入预设的数据库;
其中,一条所述埋点数据包括与该埋点数据对应的以下信息:对象名称、模块名称、菜单名称、时间类型、界面的地址信息、页面元素的名称、操作名称、用户的名称、操作时间、关键词。
3.根据权利要求1所述的方法,其特征在于,所述预设统计维度包括:
预设时间段内各页面的访问统计数;
预设时间段内各页面元素的操作统计数;
预设时间段内各关键词的查询次数;
预设时间段内各用户的操作行为的排序信息;
预设时间段内各接口的平均响应时间;
预设时间段内各接口的访问量。
4.根据权利要求3所述的方法,其特征在于,所述根据所述统计结果信息,从所述埋点数据中筛选出目标数据,包括:
将所述访问统计数进行降序排列,并将前N1个访问统计数对应的埋点数据作为目标数据;其中,N1为正整数;
将所述操作统计数进行降序排列,并将前N2个操作统计数对应的埋点数据作为目标数据;其中,N2为正整数;
将所述查询次数进行降序排列,并将前N3个查询次数对应的埋点数据作为目标数据;其中,N3为正整数;
将所述平均响应时间进行降序排列,并将前N4个平均响应时间对应的埋点数据作为目标数据;其中,N4为正整数;
将所述访问量进行降序排列,并将前N5个访问量对应的埋点数据作为目标数据;其中,N5为正整数;
根据所述排序信息,将用户的操作行为排序不一致的埋点数据作为目标数据。
5.根据权利要求1所述的方法,其特征在于,还包括:
根据所述埋点数据,确定各测试用例类别对应的操作频繁信息;
根据所述操作频繁信息,分别确定各测试用例类别的用例等级;并将所述用例等级作为对应的测试用例的用例等级。
6.根据权利要求1所述的方法,其特征在于,所述测试用例类别包括功能测试用例、性能测试用例、接口测试用例;
所述确定各目标数据所对应的测试用例类别,包括:
在所述目标数据包括用户操作行为的顺序信息或者页面元素的操作信息的情况下,确定所述目标数据对应的测试用例类别为功能测试用例;
在所述目标数据包括接口的响应结果或接口的访问量的情况下,确定所述目标数据对应的测试用例类别为接口测试用例;
在所述目标数据包括数据并发的信息或者响应时间的情况下,确定所述目标数据对应的测试用例类别为性能测试用例。
7.根据权利要求1所述的方法,其特征在于,所述根据所述字段信息和所述测试用例模板,生成该测试用例类别对应的测试用例脚本,包括:
在该测试用例类别为功能测试用例的情况下,所述字段信息包括模块名称、操作结果以及操作步骤;以及,根据所述模块名称、操作结果、操作步骤和所述测试用例模板,生成功能测试用例对应的测试用例脚本;
在该测试用例类别为接口测试用例的情况下,所述字段信息包括接口地址、接口响应结果;以及,根据所述接口地址、接口响应结果和所述测试用例模板,生成接口测试用例对应的测试用例脚本;
在该测试用例类别为性能测试用例的情况下,所述字段信息包括并发的信息、响应时间;以及,根据所述并发的信息、响应时间和所述测试用例模板,生成性能测试用例对应的测试用例脚本。
8.一种测试用例生成装置,其特征在于,包括:
数据获取模块,用于获取待测试对象产生的埋点数据;
数据统计模块,用于确定所述埋点数据对应于各预设统计维度的统计结果信息;
数据选定模块,用于根据所述统计结果信息,从所述埋点数据中筛选出目标数据;
类别确定模块,用于确定各目标数据所对应的测试用例类别;
用例生成模块,用于针对每一测试用例类别,根据该测试用例类别所对应的测试用例模板,以及该测试用例类别对应的目标数据,确定所述测试用例模板中使用的字段信息;根据所述字段信息和所述测试用例模板,生成该测试用例类别对应的测试用例脚本,并利用所述测试用例脚本生成对应的测试用例。
9.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器在执行所述计算机程序时实现权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311396578.9A CN117573513A (zh) | 2023-10-25 | 2023-10-25 | 测试用例生成方法及装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311396578.9A CN117573513A (zh) | 2023-10-25 | 2023-10-25 | 测试用例生成方法及装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117573513A true CN117573513A (zh) | 2024-02-20 |
Family
ID=89890752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311396578.9A Pending CN117573513A (zh) | 2023-10-25 | 2023-10-25 | 测试用例生成方法及装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117573513A (zh) |
-
2023
- 2023-10-25 CN CN202311396578.9A patent/CN117573513A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108073519B (zh) | 测试用例生成方法和装置 | |
CN110413506A (zh) | 测试用例推荐方法、装置、设备及存储介质 | |
US8607198B2 (en) | Cross-concern code coverage assessment | |
Martin-Lopez et al. | Test coverage criteria for RESTful web APIs | |
US20160283357A1 (en) | Call stack relationship acquiring method and apparatus | |
CN114546738B (zh) | 服务器通用测试方法、系统、终端及存储介质 | |
RU2008135986A (ru) | Способ оценки качества изображения, способ формирования документа, компьютерный программный продукт, пользовательский интерфейс, файл данных и электронное устройство | |
US8006138B2 (en) | Software quality assessment based on semantic similarities | |
US20100274520A1 (en) | Creation of test plans | |
CN111367595B (zh) | 数据处理方法、程序运行方法、装置及处理设备 | |
CN111522728A (zh) | 自动化测试用例的生成方法、电子设备及可读存储介质 | |
US20150317232A1 (en) | Method And Apparatus For Positioning Crash | |
CN110879781A (zh) | 程序调试方法、装置、电子设备及计算机可读存储介质 | |
CN110990274A (zh) | 一种生成测试案例的数据处理方法、装置及系统 | |
CN108399125B (zh) | 自动化测试方法、装置、计算机设备和存储介质 | |
CN110232018A (zh) | 接口测试方法、装置、计算机设备 | |
CN109376285B (zh) | 基于json格式的数据排序验证方法、电子设备及介质 | |
US8464103B2 (en) | Generating a functional coverage model from a trace | |
CN114355171B (zh) | 一种可重构芯片性能瓶颈检测平台、检测方法及电子设备 | |
CN108829590B (zh) | 一种软件测试方法、装置及系统 | |
CN117573513A (zh) | 测试用例生成方法及装置、电子设备及存储介质 | |
CN113791980B (zh) | 测试用例的转化分析方法、装置、设备及存储介质 | |
CN114238048A (zh) | 一种Web前端性能自动化测试方法及系统 | |
CN115309661A (zh) | 一种应用测试方法、装置、电子设备及可读存储介质 | |
CN110032624B (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 |