CN107402883A - 一种数据测试处理方法和装置 - Google Patents

一种数据测试处理方法和装置 Download PDF

Info

Publication number
CN107402883A
CN107402883A CN201710624742.5A CN201710624742A CN107402883A CN 107402883 A CN107402883 A CN 107402883A CN 201710624742 A CN201710624742 A CN 201710624742A CN 107402883 A CN107402883 A CN 107402883A
Authority
CN
China
Prior art keywords
test
sentence
variable
statement
object element
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
Application number
CN201710624742.5A
Other languages
English (en)
Other versions
CN107402883B (zh
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 CN201710624742.5A priority Critical patent/CN107402883B/zh
Publication of CN107402883A publication Critical patent/CN107402883A/zh
Application granted granted Critical
Publication of CN107402883B publication Critical patent/CN107402883B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/3692Test management for test results analysis
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例公开了一种数据测试处理方法和装置,所述方法包括:获取待处理单元测试,并提取所述待处理单元测试中携带的多个断言语句和所述断言语句中的测试变量;获取所述断言语句中的测试变量对应的依赖语句;将所述断言语句分别与所述断言语句相关联的依赖语句进行组合,得到所述断言语句分别对应的目标单元测试;每个目标单元测试中包含一个断言语句;运行所述目标单元测试,得到所述目标单元测试分别对应的测试结果,并基于预设的可疑度函数以及所述测试结果计算与所述目标单元测试相关联的目标源代码语句对应的出错率。采用本发明,可以避免误判干扰,进而提供精准、有效的错误定位,从而缩短开发周期。

Description

一种数据测试处理方法和装置
技术领域
本发明涉及互联网技术领域,尤其涉及一种数据测试处理方法和装置。
背景技术
随着计算机技术的发展和计算机的日益普及,计算机的功能也在不断增加,从而可为更多的用户带来更多的方便。例如,集娱乐、办公、多媒体等多种功能于一体的多用途计算机可以在硬件平台与操作系统的平台上为用户提供更多的应用服务。然而,由于在软件的开发周期中,人为的软件修复往往需要消耗极大的人力成本,因此,近年来通常采用自动修复技术来降低软件修复的成本。
软件自动修复目前是基于软件错误定位技术来进行错误定位,且当前的错误定位技术的普遍采用可疑度函数(例如,Ochiai算法)来对与源代码语句相关联的单元测试进行错误评估。因此,在运行所有单元测试时,如果在与目标源代码语句相关联的多个单元测试中,执行失败的单元测试的数量比执行成功的单元测试的数量多,则认为该目标源代码语句出错的概率就比较大。但是在计算机汇编语言C++和Java等高级语言中的单元测试通常包括多条Assert(断言语句),而不同的断言语句可能与不同的源代码语句相关联,例如,在一个单元测试中,同时存在两个断言语句(Assert1语句和Assert2语句,且Assert1语句分别与3个源代码语句(a语句,b语句和c语句)相关联,Assert2语句分别与2个源代码语句(x语句和y语句)相关联),因此,在对该单元测试进行测试时,若Assert1语句执行失败,且Assert2语句执行成功,且判定该单元测试执行失败,则会影响对Assert2语句中x语句和y语句的错误率的计算,即基于Ochiai算法、所述单元测试的执行结果计算所述源代码语句的错误率时,无法保证每一条源代码语句对应的错误率都是准确的。
发明内容
本发明实施例提供一种数据测试处理方法和装置,可以避免误判干扰,进而提供精准、有效的错误定位,从而缩短开发周期。
本发明第一方面提供了一种数据测试处理方法,包括:
获取待处理单元测试,并提取所述待处理单元测试中携带的多个断言语句和所述断言语句中的测试变量;
获取所述断言语句中的测试变量对应的依赖语句;
将所述断言语句分别与所述断言语句相关联的依赖语句进行组合,得到所述断言语句分别对应的目标单元测试,每个目标单元测试中包含一个断言语句;
运行所述目标单元测试,得到所述目标单元测试分别对应的测试结果,并基于预设的可疑度函数以及所述测试结果计算与所述目标单元测试相关联的目标源代码语句对应的出错率。
可选的,在所述获取待处理单元测试,并提取所述待处理单元测试中携带的多个断言语句和所述断言语句中的测试变量之前,还包括:
运行多个源单元测试,并得到与所述源单元测试分别对应的初始运行结果,所述初始运行结果为源测试成功结果或源测试失败结果;
将为所述源测试失败结果的源单元测试确定为待处理单元测试。
其中,所述获取所述断言语句中的测试变量对应的依赖语句,包括:
对所述待处理单元测试进行遍历分析,得到与所述测试变量相关的多个关联语句;
在所述多个关联语句中查找用于修改所述测试变量的赋值语句,并查找用于修改所述测试变量的非赋值语句,并将所查找出的所述赋值语句和所述非赋值语句确定为所述测试变量对应的依赖语句。
其中,所述在所述多个关联语句中查找用于修改所述测试变量的赋值语句,并查找用于修改所述测试变量的非赋值语句,并将所查找出的所述赋值语句和所述非赋值语句确定为所述测试变量对应的依赖语句,包括:
当所述多个关联语句均为用于修改所述测试变量的赋值语句时,将所述多个关联语句确定为所述测试变量对应的依赖语句;
当所述多个关联语句不均为用于修改所述测试变量的赋值语句时,将非赋值语句确定为待检测关联语句,并将属于用于修改所述测试变量的赋值语句的关联语句确定为所述测试变量对应的依赖语句;
对所述待检测关联语句中的相关变量进行检测分析,并在所述相关变量的取值发生变动时,确定所述待检测关联语句是用于修改所述测试变量的非赋值语句,并将所述待检测关联语句确定为所述测试变量对应的依赖语句。
其中,所述对所述待检测关联语句中的相关变量进行检测分析,并在所述相关变量的取值发生变动时,确定所述待检测关联语句是用于修改所述测试变量的非赋值语句,并将所述待检测关联语句确定为所述测试变量对应的依赖语句,包括:
提取所述待检测关联语句中的相关变量;
检测所述相关变量的变量类型;
若所述变量类型为非类对象类型,则对所述相关变量的取值进行分析,并在所述取值发生变动时,将所述待检测关联语句确定为所述测试变量对应的依赖语句;
若所述变量类型为类对象类型,则查找所述相关变量对应的所有成员变量,并为所述成员变量分别设置对应的局部变量,并在运行所述待检测关联语句之前,记录所述成员变量分别对应的局部变量,并在运行所述待检测关联语句之后,记录所述成员变量分别对应的当前变量;
若所述成员变量分别对应的局部变量不均与对应的当前变量相等,则确定所述待检测关联语句是用于修改所述测试变量的非赋值语句,并将所述待检测关联语句确定为所述测试变量对应的依赖语句。
其中,所述运行所述目标单元测试,得到所述目标单元测试分别对应的测试结果,并基于预设的可疑度函数以及测试结果计算与所述目标单元测试相关联的目标源代码语句对应的出错率,包括:
运行所述目标单元测试,并得到与所述目标单元测试分别对应的测试结果,所述测试结果中包含测试成功结果以及测试失败结果;
在所有测试结果中,统计为所述测试失败结果的目标单元测试的失败总数量;
在所述目标单元测试中查找与目标源代码语句相关联的多个目标单元测试,作为多个关联目标单元测试;
在所有关联目标单元测试分别对应的测试结果中,统计为所述测试失败结果的关联目标单元测试的第一数量,并统计为所述测试成功结果的关联目标单元测试的第二数量;
根据预设的可疑度函数、所述失败总数量、所述第一数量以及所述第二数量,计算与所述目标单元测试相关联的所述目标源代码语句的出错率。
可选的,在所述运行所述目标单元测试,得到所述目标单元测试分别对应的测试结果,并基于预设的可疑度函数以及测试结果计算与所述目标单元测试相关联的源代码语句对应的出错率的步骤之前,还包括:
提取所述待处理单元测试对应的起始位置和终止位置,并根据所述起始位置和终止位置删除所述待处理单元测试。
本发明第二方面提供了一种数据测试处理装置,包括:
第一获取模块,用于获取待处理单元测试,并提取所述待处理单元测试中携带的多个断言语句和所述断言语句中的测试变量;
第二获取模块,用于获取所述断言语句中的测试变量对应的依赖语句;
组合模块,用于将所述断言语句分别与所述断言语句相关联的依赖语句进行组合,得到所述断言语句分别对应的目标单元测试,每个目标单元测试中包含一个断言语句;
出错率计算模块,用于运行所述目标单元测试,得到所述目标单元测试分别对应的测试结果,并基于预设的可疑度函数以及所述测试结果计算与所述目标单元测试相关联的目标源代码语句对应的出错率。
可选的,所述装置还包括:
运行模块,用于运行多个源单元测试,并得到与所述源单元测试分别对应的初始运行结果,所述初始运行结果为源测试成功结果或源测试失败结果;
确定模块,用于将为所述源测试失败结果的源单元测试确定为待处理单元测试。
其中,所述第二获取模块包括:
遍历分析单元,用于对所述待处理单元测试进行遍历分析,得到与所述测试变量相关的多个关联语句;
依赖语句确定单元,用于在所述多个关联语句中查找用于修改所述测试变量的赋值语句,并查找用于修改所述测试变量的非赋值语句,并将所查找出的所述赋值语句和所述非赋值语句确定为所述测试变量对应的依赖语句。
其中,所述依赖语句确定单元,包括:
第一确定子单元,用于当所述多个关联语句均为用于修改所述测试变量的赋值语句时,将所述多个关联语句确定为所述测试变量对应的依赖语句;
第二确定子单元,用于当所述多个关联语句不均为用于修改所述测试变量的赋值语句时,将非赋值语句确定为待检测关联语句,并将属于用于修改所述测试变量的赋值语句的关联语句确定为所述测试变量对应的依赖语句;
检测分析子单元,用于对所述待检测关联语句中的相关变量进行检测分析,并在所述相关变量的取值发生变动时,确定所述待检测关联语句是用于修改所述测试变量的非赋值语句,并将所述待检测关联语句确定为所述测试变量对应的依赖语句。
其中,所述检测分析子单元,具体用于提取所述待检测关联语句中的相关变量,并检测所述相关变量的变量类型,若所述变量类型为非类对象类型,则对所述相关变量的取值进行分析,并在所述取值发生变动时,将所述待检测关联语句确定为所述测试变量对应的依赖语句;并具体用于若所述变量类型为类对象类型,则查找所述相关变量对应的所有成员变量,并为所述成员变量分别设置对应的局部变量,并在运行所述待检测关联语句之前,记录所述成员变量分别对应的局部变量,并在运行所述待检测关联语句之后,记录所述成员变量分别对应的当前变量,若所述成员变量分别对应的局部变量不均与对应的当前变量相等,则确定所述待检测关联语句是用于修改所述测试变量的非赋值语句,并将所述待检测关联语句确定为所述测试变量对应的依赖语句。
其中,所述出错率计算模块,包括:
运行单元,用于运行所述目标单元测试,并得到与所述目标单元测试分别对应的测试结果,所述测试结果中包含测试成功结果以及测试失败结果;
总数量统计单元,用于在所有测试结果中,统计为所述测试失败结果的目标单元测试的失败总数量;
查找单元,用于在所述目标单元测试中查找与目标源代码语句相关联的多个目标单元测试,作为多个关联目标单元测试;
关联数量统计单元,用于在所有关联目标单元测试分别对应的测试结果中,统计为所述测试失败结果的关联目标单元测试的第一数量,并统计为所述测试成功结果的关联目标单元测试的第二数量;
出错率计算单元,用于根据预设的可疑度函数、所述失败总数量、所述第一数量以及所述第二数量,计算与所述目标单元测试相关联的目标源代码语句的出错率。
可选的,所述装置还包括:
提取删除模块,用于提取所述待处理单元测试对应的起始位置和终止位置,并根据所述起始位置和终止位置删除所述待处理单元测试。
本发明第三方面提供了一种数据测试处理装置,包括:处理器和存储器;
所述处理器和存储器相连,其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行以下操作:
获取待处理单元测试,并提取所述待处理单元测试中携带的多个断言语句和所述断言语句中的测试变量;
获取所述断言语句中的测试变量对应的依赖语句;
将所述断言语句分别与所述断言语句相关联的依赖语句进行组合,得到所述断言语句分别对应的目标单元测试,每个目标单元测试中包含一个断言语句;
运行所述目标单元测试,得到所述目标单元测试分别对应的测试结果,并基于预设的可疑度函数以及所述测试结果计算与所述目标单元测试相关联的目标源代码语句对应的出错率。
本发明实施例第四方面提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时执行本发明实施例中第一方面中的方法。
本发明实施例通过获取待处理单元测试,并提取所述待处理单元测试中携带的多个断言语句和所述断言语句中的测试变量;获取所述断言语句中的测试变量对应的依赖语句;将所述断言语句分别与所述断言语句相关联的依赖语句进行组合,得到所述断言语句分别对应的目标单元测试,每个目标单元测试中包含一个断言语句;运行所述目标单元测试,得到所述目标单元测试分别对应的测试结果,并基于预设的可疑度函数以及所述测试结果计算与所述目标单元测试相关联的目标源代码语句对应的出错率。由此可见,本发明通过对所述待处理测试单元进行拆分,可得到与所述断言语句分别对应的目标单元测试,从而保证一个目标单元测试包含一个断言语句,以避免误判干扰,进而可在运行所述目标单元测试后,准确计算出与所述断言语句相关联的每条源代码语句分别对应的出错率,以提供精准、有效的错误定位,从而缩短开发周期。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据测试处理方法的流程示意图;
图2是本发明实施例提供的一种获取依赖语句的流程示意图
图3是本发明实施例提供的另一种获取依赖语句的流程示意图;
图4是本发明实施例提供的另一种数据测试处理方法的流程示意图;
图5是本发明实施例提供的一种数据测试处理装置的结构示意图;
图6是本发明实施例提供的另一种数据测试处理装置的结构示意图;
图7是本发明实施例提供的一种第二获取模块的结构示意图;
图8是本发明实施例提供的一种依赖语句确定单元的结构示意图;
图9是本发明实施例提供的一种出错率计算模块的结构示意图;
图10是本发明实施例提供的又一种数据测试处理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,是本发明实施例提供的一种数据测试处理方法的流程示意图。如图1所示,所述方法可以包括:
步骤S101,获取待处理单元测试,并提取所述待处理单元测试中携带的多个断言语句和所述断言语句中的测试变量;
具体的,测试终端获取待处理单元测试,所述待处理单元测试可以为在多个源单元测试中所查找到的至少一个为源测试失败结果的源单元测试,并提取所述待处理单元测试中携带的多个断言语句和所述断言语句中的测试变量(即提取每个断言语句中的测试变量)。
其中,所述测试终端可以包括个人电脑、平板电脑、笔记本电脑等具有数据测试功能的终端设备。
比如,一共有10个源单元测试,所述测试终端在运行这10个源单元测试之后,可得到与这10个单元测试分别对应的初始测试结果,所述初始测试结果可以为源测试成功结果,也可以为源测试失败结果。因此,在这10个初始测试结果中,若与源测试成功结果对应的源单元测试有3个,且与源测试失败结果对应的源单元测试有7个,所述测试终端则可进一步将这7个测试失败的源单元测试一并作为待处理单元测试。
可选的,在上述10个初始测试结果中,若与源测试成功结果对应的源单元测试有9个,且与源测试失败结果对应的源单元测试有1个,所述测试终端则可将这1个测试失败的源单元测试作为待处理单元测试。
鉴于此,为更好地理解本方案,本发明实施例可以仅以一个测试失败的源单元测试为例,以进一步执行后续的步骤S102-步骤S103,然后再进一步执行步骤S104。但是对于有多个(例如,7个)测试失败的源单元测试时,可将这7个为所述源测试失败结果的源单元测试一并确定为待处理单元测试,并同步按照步骤S102-步骤S103对这7个源单元测试分别进行拆分和重构,然后再进一步执行步骤S104。
步骤S102,获取所述断言语句中的测试变量对应的依赖语句;
具体的,所述测试终端可对所述待处理单元测试进行遍历分析,得到与所述测试变量相关的多个关联语句(即得到每个测试变量分别对应的多个关联语句)。对于每一个测试变量,均可以在所述多个关联语句中查找用于修改所述测试变量的赋值语句,并查找用于修改所述测试变量的非赋值语句,并将所查找出的所述赋值语句和所述非赋值语句确定为所述测试变量对应的依赖语句,从而可以得到每一个测试变量分别对应的依赖语句。其中,每个关联语句均可以包含所述测试变量,且所述多个关联语句可以包括赋值语句和/或非赋值语句;且若所述多个关联语句包括赋值语句,则所述多个关联语句可以包括用于修改所述测试变量的赋值语句和/或不用于修改所述测试变量的赋值语句;且若所述多个关联语句包括非赋值语句,则所述多个关联语句可以包括用于修改所述测试变量的非赋值语句和/或不用于修改所述测试变量的非赋值语句。
其中,所述断言语句中的测试变量可以为本发明实施例中的单个测试变量,也可以是多个测试测量,且获取多个测试变量分别对应的依赖语句的详细过程可参见本发明实施例中对单个测试变量的描述,即可在多个测试变量中选择一个目标测试测试变量,并按照获取单个测试变量对应的依赖语句的方法获取该目标测试变量对应的依赖语句,并在多个所述断言语句中的测试变量均被选择作为目标测试变量时,所述测试终端可获取到所述断言语句中的测试变量对应的依赖语句。
其中,所述依赖语句是指在所述待处理测试单元(例如,单个源单元测试中)中所能查找到的对所述断言语句中的测试变量进行修改的赋值语句和/或非赋值语句。其中,能对所述测试变量进行直接修改的语句称为赋值语句,不属于赋值语句的其他语句均统称为非赋值语句,因此,可将这些能对所述测试变量进行修改的赋值语句和非赋值语句均作为所述测试变量的依赖语句,以使这些关联语句可以帮助软件开发人员、质量保证人员查找目标源代码语句中存在的结构性错误、安全漏洞等问题。
其中,查找所述断言语句中的测试变量对应的依赖语句的方法可以大致分为静态分析方法和动态分析方法。本发明实施例通过将静态分析方法和动态分析方法进行结合使用的方式,以滤除掉那些仅仅单独引用所述测试变量的关联语句(即这些关联语句中没有用于修改所述测试变量的赋值语句,且这些关联语句中也没有用于修改所述测试变量的非赋值语句),进而可以更好的识别与所述断言语句中的测试变量对应的依赖语句。
其中,所述静态分析方法可以为Slice静态分析方法,它可对待处理单元测试进行扫描(即遍历分析),以查找出包含所述测试变量(例如,Assert语句中的测试变量a)的所有关联语句(例如,g(a),f(a),h(a)),并判断所述多个关联语句中是否均为用于修改所述测试变量的赋值语句,若所述多个关联语句均为用于修改所述测试变量的赋值语句,则将所述多个关联语句确定为所述测试变量对应的依赖语句。然而,当采用所述静态分析方法无法直接对所述关联语句进行判断时(即在所述关联语句中存在属于非赋值语句的关联语句),例如,通过所述静态分析方法判断出f(a)、h(a)不是用于修改所述测试变量的赋值语句时,所述测试终端则可进一步采用动态分析方法将这两个非赋值语句(f(a)、h(a))作为待检测关联语句,并对所述待检测关联语句中的相关变量进行检测分析,以判断f(a)、h(a)是否为用于修改所述测试变量的非赋值语句。其中,在多个关联语句中,所述测试终端还可将属于用于修改所述测试变量的赋值语句的关联语句g(a)确定为所述目标测试变量对应的依赖语句。
其中,所述待检测关联语句中的相关变量可以包含非类对象类型(普通类型)变量,还可以包含与所述测试变量(例如,测试变量a)对应的类对象类型变量(例如,类对象类型变量A,此时,类对象类型变量A可以包括多个成员变量,分别为a、b、c),随后,所述测试终端可在所述相关变量的取值发生变动时,确定所述待检测关联语句是用于修改所述测试变量的非赋值语句,并将所述待检测关联语句确定为所述测试变量对应的依赖语句。
其中,通过使用测试用例在计算机上运行程序,使该程序在运行过程中暴露错误的方法被称为动态分析方法。
步骤S103,将所述断言语句分别与所述断言语句相关联的依赖语句进行组合,得到所述断言语句分别对应的目标单元测试;
其中,每个目标单元测试中包含一个断言语句。
步骤S104,运行所述目标单元测试,得到所述目标单元测试分别对应的测试结果,并基于预设的可疑度函数以及所述测试结果计算与所述目标单元测试相关联的目标源代码语句对应的出错率。
具体的,所述测试终端可进一步运行所述目标单元测试(即运行所有的目标单元测试),并得到每个目标单元测试分别对应的测试结果,并在所有测试结果中,统计为所述测试失败结果的目标单元测试的失败总数量,并在所述目标单元测试中查找与目标源代码语句相关联的多个目标单元测试,作为多个关联目标单元测试,并在所有关联目标单元测试分别对应的测试结果中,统计为所述测试失败结果的关联目标单元测试的第一数量,并统计为所述测试成功结果的关联目标单元测试的第二数量,并根据预设的可疑度函数、所述失败总数量、所述第一数量以及所述第二数量,计算与所述目标单元测试相关联的所述目标源代码语句的出错率。
其中,通过保证一个目标单元测试包含一个断言语句,可以避免误判干扰,进而可在运行所有的目标单元测试后,准确计算出与所述断言语句相关联的每条源代码语句分别对应的出错率,以提供精准、有效的错误定位,从而缩短开发周期。
其中,所述测试结果中包含测试成功结果以及测试失败结果;
其中,预设的可疑度函数可以为Ochiai算法,且所述Ochiai算法可用于计算每条目标源代码语句对应的出现率,以目标源代码语句为s语句为例,所述可以读函数可以为:
其中,failed(s)表示与s语句关联的为所述测试失败结果的关联目标单元测试的第一数量(即失败测试数目),passed(s)表示与s语句关联的为所述测试成功结果的关联目标单元测试的第二数量(即成功测试数目),total_failed表示在所有的目标单元测试中所统计到的所有携带所述测试失败结果的目标单元测试的失败总数量(即所有失败测试的数目)。因此,将所述失败总数量,第一数量和第二数量作为所述可疑度函数的输入值,可输出与所述目标源代码语句(s语句)对应的出错率suspicious(s),且suspicious(s)的值越大,表明该s语句出错的可能性越大。
可选的,在计算出每条目标源代码语句的出错率后,可进一步按照从大到小的顺序对每条目标源代码语句的出错率进行排序,以使所述测试终端优先考虑、并修复携带最大出错率的目标源代码语句。
比如,以所述待处理单元测试为一个源单元测试为例,其中,该源单元测试中包含5个断言语句(分别为Assert s1、Assert s2、Assert s3、Assert s4、Assert s5),所述测试终端可在所述待处理单元测试中提取到这5个断言语句,和与这5个断言语句分别对应的测试变量(测试变量a,测试变量b,测试变量c,测试变量d和测试变量e),且测试变量a,测试变量b和测试变量c均对应着同一个目标源代码语句(s语句),而测试变量d和测试变量e对应着另一个目标源代码语句(f语句)。然后,所述测试终端通过将所述静态分析方法和动态分析方法进行结合分析的方法获取与这5个断言语句中的测试变量分别对应的依赖语句,例如,与测试变量a对应的依赖语句为g(a),与测试变量b对应的依赖语句为g(b),与测试变量c对应的依赖语句为g(c),与测试变量d对应的依赖语句为g(d),与测试变量e对应的依赖语句为g(e)。随后,将这5个断言语句分别与这5个断言语句相关联的依赖语句进行组合,得到与这5个断言语句分别对应的目标单元测试;比如,目标单元测试A包括Assert s1和g(a),目标单元测试B包括Assert s2和g(b),目标单元测试C包括Assert s3和g(c),目标单元测试D包括Assert s4和g(d),目标单元测试E包括Assert s5和g(e)。于是,所述测试终端在运行上述5个目标单元测试之后,可得到与这5个目标单元测试分别对应的测试结果(比如:与目标单元测试A对应的测试结果为测试成功结果,与目标单元测试B对应的测试结果为测试失败结果,与目标单元测试C对应的测试结果为测试失败结果,与目标单元测试D对应的测试结果为测试失败结果,与目标单元测试E对应的测试结果为测试失败结果)。由于测试变量a,测试变量b和测试变量c均对应着同一个目标源代码语句(s语句),且测试变量d和测试变量e对应着另一个目标源代码语句(f语句),于是,所述测试终端可在这5个测试失败结果中统计到失败总数量为4个,且与s语句关联的第一数量为2个以及第二数量为1个,并统计到与f语句关联的第一数量为2个以及第二数量为0个。鉴于此,根据预设的可疑度函数所述测试终端可进一步计算出s语句的出错率为57.7%,f语句的出错率为70.7%,因此可优先考虑对f语句进行优先修复。
可选的,在步骤S104中,可以一并运行所述目标单元测试以及为源测试成功结果的源单元测试,得到所述目标单元测试以及当前所运行的源单元测试分别对应的测试结果,并基于预设的可疑度函数以及所述测试结果计算与所述目标单元测试相关联的目标源代码语句对应的出错率。
进一步地,请参见图2,是本发明实施例提供的一种获取依赖语句的流程示意图。如图2所示,获取所述依赖语句的具体过程主要包括如下步骤S201-步骤S204:
步骤S201,在多个断言语句中的测试变量中选择目标测试变量,并对所述待处理单元测试进行遍历分析,以查找与所述目标测试变量相关的多个关联语句;
步骤S202,在所述多个关联语句中查找用于修改所述目标测试变量的赋值语句,并查找用于修改所述目标测试变量的非赋值语句,并将所查找出的所述赋值语句和所述非赋值语句确定为所述目标测试变量对应的依赖语句;
步骤S203,判断所述断言语句中的测试变量是否均被选择作为目标测试变量;
具体的,所述测试终端在执行步骤S203时,可继续将余下的所述断言语句中的测试变量选择作为新的目标测试变量,进而重复执行步骤S201-步骤S202;若检测到所述断言语句中的所有测试变量均被选择作为目标测试变量,可进一步执行步骤S204,否则,仍会重复执行步骤S201-203。
步骤S204,当所述断言语句中的测试变量均被选择作为目标测试变量时,获取所述断言语句中的测试变量对应的依赖语句。
其中,步骤S201-步骤S204的具体实现方式可参见图1所对应实施例中对步骤S102的描述,这里将不再进行赘述。
可选的,请参见图3,是本发明实施例提供的另一种获取依赖语句的流程示意图。如图3所示,获取所述依赖语句的具体过程可以包括如下步骤S301-步骤S305:
步骤S301,对所述待处理单元测试进行遍历分析,得到与所述测试变量相关的多个关联语句;
具体的,所述测试终端可根据静态分析方法对所述待处理单元测试进行遍历分析,得到与所述测试变量相关的所有关联语句(其中,这些关联语句中可以包含能直接修改所述测试变量的赋值语句,也可以包含能间接修改所述测试变量的非赋值语句,还可以包含直接引用所述测试变量的关联语句)。
步骤S302,判断所述多个关联语句是否均为用于修改所述测试变量的赋值语句;
具体的,所述测试终端根据所述静态分析方法检测所述关联语句是否均为用于修改所述测试变量的赋值语句,若所述关联语句均为用于修改所述测试变量的赋值语句,则可进一步执行步骤S303,否则,进一步执行步骤S304。
步骤S303,若判断为是,则将所述多个关联语句确定为所述测试变量对应的依赖语句;
具体的,当所述多个关联语句均为用于修改所述测试变量的赋值语句时,将所述多个关联语句全部确定为所述测试变量对应的依赖语句。
步骤S304,若判断为否,则将非赋值语句确定为待检测关联语句,并将属于用于修改所述测试变量的赋值语句的关联语句确定为所述测试变量对应的依赖语句;
具体的,当所述多个关联语句中存在至少一个关联语句为非赋值语句时,所述测试终端可进一步将所述至少一个非赋值语句确定为待检测关联语句,以进一步通过动态分析方法执行步骤S305,与此同时,所述测试终端还可将所述多个关联语句中余下的用于修改所述测试变量的赋值语句确定为所述测试变量对应的依赖语句。
例如,在3个关联语句中,有1个关联语句为属于用于修改所述测试变量的赋值语句的关联语句,而另2个关联语句为属于非赋值语句的关联语句,所述测试终端可进一步将这2个属于非赋值语句的关联语句作为待检测关联语句,以进一步通过动态分析方法执行步骤S305;与此同时,所述测试终端还可将这3个关联语句中的1个属于用于修改所述测试变量的赋值语句的关联语句确定为所述测试变量对应的依赖语句。
步骤S305,对所述待检测关联语句中的相关变量进行检测分析,并在所述相关变量的取值发生变动时,确定所述待检测关联语句是用于修改所述测试变量的非赋值语句,并将所述待检测关联语句确定为所述测试变量对应的依赖语句。
具体的,所述测试终端提取所述待检测关联语句中的相关变量,并检测所述相关变量的变量类型,若所述变量类型为非类对象类型,则对所述相关变量的取值进行分析,并在所述取值发生变动时,将所述待检测关联语句确定为所述测试变量对应的依赖语句,若所述变量类型为类对象类型,则查找所述相关变量对应的所有成员变量,并为所述成员变量分别设置对应的局部变量,并在运行所述待检测关联语句之前,记录所述成员变量分别对应的局部变量,并在运行所述待检测关联语句之后,记录所述成员变量分别对应的当前变量,并判断所述成员变量分别对应的局部变量是否均与对应的当前变量相等,若所述成员变量分别对应的局部变量不均与对应的当前变量相等,则确定所述待检测关联语句是用于修改所述测试变量的非赋值语句,并将所述待检测关联语句确定为所述测试变量对应的依赖语句。
其中,在静态分析方法失效时,可进一步采用动态分析方法,以快速检测所述待检测关联语句中是否存在用于修改所述测试变量的非赋值语句。例如,以待检测关联语句g(b)为例,其中,b为测试变量,b也可以称为该待检测关联语句中的相关变量,于是,所述测试终端可进一步考虑分析待检测关联语句g(b)中的b值是否被间接修改,当无其它代码输入时,动态分析只需要执行一遍g(b),即可检测运行g(b)之后的b值是否等于运行g(b)之前的b值,若不相等,则将该待检测关联语句g(b)确定为所述测试变量对应的依赖语句。
又例如,当待检测关联语句为g(B),且该待检测关联语句中的相关变量B为类对象类型,并查找到与该相关变量B对应的所有成员变量包括a、b(b为测试变量)、c时,所述测试终端需要通过植入额外的代码来检测该类对象类型的所述成员变量(a,b,c)的值是否发现变动,即在运行待检测关联语句g(B)之前,需要预先为所述成员变量分别设置对应的局部变量(即与a对应的局部变量为tmpb1,与b对应的局部变量为tmpb2,与c对应的局部变量为tmpb3),以分别用来记录所述成员变量在执行待检测关联语句g(B)之前的值,然后,检测运行待检测关联语句g(B)后的当前变量a、b、c的值是否等于执行g(B)之前对应局部变量tmpb1、tmpb2、tmpb3的值,即比较a是否等于tmpb1,b是否等于tmpb2,c是否等于tmpb3。若有至少一个当前变量的值不等于对应的局部变量的值,则可确定待检测关联语句g(B)为用于修改所述测试变量的非赋值语句,并可将待检测关联语句g(B)确定为所述测试变量对应的依赖语句。
其中,若有多个测试变量,则对于每一个测试变量,均可以通过执行S301-S305步骤,以得到每个测试变量分别对应的依赖语句。
本发明实施例通过获取待处理单元测试,并提取所述待处理单元测试中携带的多个断言语句和所述断言语句中的测试变量;获取所述断言语句中的测试变量对应的依赖语句;将所述断言语句分别与所述断言语句相关联的依赖语句进行组合,得到所述断言语句分别对应的目标单元测试,每个目标单元测试中包含一个断言语句;运行所述目标单元测试,得到所述目标单元测试分别对应的测试结果,并基于预设的可疑度函数以及所述测试结果计算与所述目标单元测试相关联的目标源代码语句对应的出错率。由此可见,本发明通过对所述待处理测试单元进行拆分,可得到与所述断言语句分别对应的目标单元测试,从而保证一个目标单元测试包含一个断言语句,以避免误判干扰,进而可在运行所述目标单元测试后,准确计算出与所述断言语句相关联的每条源代码语句分别对应的出错率,以提供精准、有效的错误定位,从而缩短开发周期。
进一步地,请参见图4,是本发明实施例提供的另一种数据测试处理方法的流程示意图。如图4所示,所述方法包括:
步骤S401,运行多个源单元测试,并得到与所述源单元测试分别对应的初始运行结果;所述初始运行结果为源测试成功结果或源测试失败结果;
例如,测试终端在运行3个源单元测试(例如,源单元测试X,源单元测试Y和源单元测试Z)之后,可得到与所述源单元测试分别对应的初始测试结果。比如:与源单元测试X对应的初始测试结果为源测试成功结果,与源单元测试Y对应的初始测试结果为源测试失败结果,与源单元测试Z对应的初始测试结果为源测试失败结果。由于所述源单元测试中均包含多个断言语句,且所述断言语句在被运行后将得到一个与该源单元测试对于的初始测试结果,所以,对于源单元测试X而言,所述断言语句均是被成功执行的。然而,对于源单元测试Y和源单元测试Z而言,两者分别对应着一个源测试失败结果,因此,只要这两个源单元测试中的所述多个断言语句中的至少一个断言语句是被错误执行的,则会输出与所述源单元测试Y和源单元测试Z分别对应的源测试失败结果。因为此时,是以包含多个断言语句的整个源单元测试为基本的测试单位,所以会存在对相应源断言测试中的目标源代码语句的出错概率进行错误评估的可能。因此,为避免造成误判干扰,可进一步执行下述步骤S402-步骤S407,以对为所述源测试失败结果的源单元测试分别进行拆分、重构,从而得到与所述断言语句分别对应的目标单元测试。
步骤S402,将为所述源测试失败结果的源单元测试确定为待处理单元测试。
具体的,所述测试终端将在所有的测试结果中查找到所有的源测试失败结果,并将所有的源测试失败结果分别对应的源单元测试作为待处理单元测试,所述待处理单元测试可以为一个为所述源测试失败结果的源单元测试,也可以为多个为所述源测试失败结果的源单元测试。
步骤S403,获取待处理单元测试,并提取所述待处理单元测试中携带的多个断言语句和所述断言语句中的测试变量;
步骤S404,获取所述断言语句中的测试变量对应的依赖语句;
步骤S405,将所述断言语句分别与所述断言语句相关联的依赖语句进行组合,得到所述断言语句分别对应的目标单元测试;每个目标单元测试中包含一个断言语句;
其中,步骤S403-步骤S405的具体实现方式可参见上述图1所对应实施例中对步骤S101-步骤S103的描述,这里将不再继续进行赘述。
步骤S406,提取所述待处理单元测试对应的起始位置和终止位置,并根据所述起始位置和终止位置删除所述待处理单元测试。
可选的,被删除的所述待处理单元测试所对应的多个目标单元测试可以添加至该被删除的所述待处理单元测试对应的起始位置和终止位置之间的区域内。
步骤S407,运行所述目标单元测试,得到所述目标单元测试分别对应的测试结果,并基于预设的可疑度函数以及所述测试结果计算与所述目标单元测试相关联的目标源代码语句对应的出错率。
其中,步骤S407的具体实现方式可参见上述图1所对应实施例中对步骤S104的描述,这里将不再继续进行赘述。
可选的,在步骤S407中,可以一并运行所述目标单元测试以及为源测试成功结果的源单元测试,得到所述目标单元测试以及当前所运行的源单元测试分别对应的测试结果,并基于预设的可疑度函数以及所述测试结果计算与所述目标单元测试相关联的目标源代码语句对应的出错率。
比如,以所述待处理单元测试为两个源单元测试(源单元测试M和源单元测试N)为例,其中源单元测试M中包含2个断言语句(分别为Assert s1’、Assert s2’),源单元测试N中包含3个断言语句(分别为Assert s3’、Assert s4’、Assert s5’)。于是,所述测试终端可在所述待处理单元测试中提取到这5个断言语句,以及与这5个断言语句中的测试变量(例如,Assert s1’中的测试变量a’,Assert s2’中的测试变量b’,Assert s3’中的测试变量c’,Assert s4’中的测试变量d’和Assert s5’中的测试变量e’),且测试变量a’,测试变量c’和测试变量d’均对应着同一个目标源代码语句(h语句),而测试变量b’和测试变量e’对应着另一个目标源代码语句(k语句)。然后,所述测试终端可通过将所述静态分析方法和动态分析方法进行结合分析的方法获取与所述断言语句中的测试变量对应的依赖语句,例如,与测试变量a’对应的依赖语句为g(a’),与测试变量b’对应的依赖语句为g(b’),与测试变量c’对应的依赖语句为g(c’),与测试变量d’对应的依赖语句为g(d’),与测试变量e’对应的依赖语句为g(e’),随后,所述测试终端可进一步将这5个断言语句分别与这5个断言语句相关联的依赖语句进行组合,得到与这5个断言语句分别对应的目标单元测试;比如,目标单元测试A’包括Assert s1’和g(a’),目标单元测试B’包括Assert s2’和g(b’),目标单元测试C’包括Assert s3’和g(c’),目标单元测试D’包括Assert s4’和g(d’),目标单元测试E’包括Assert s5’和g(e’)。于是,所述测试终端可在运行上述5个目标单元测试之后,得到与这5个目标单元测试分别对应的测试结果(比如:与目标单元测试A’对应的测试结果为测试成功结果,与目标单元测试B’对应的测试结果为测试失败结果,与目标单元测试C’对应的测试结果为测试失败结果,与目标单元测试D’对应的测试结果为测试失败结果,与目标单元测试E’对应的测试结果为测试失败结果)。由于测试变量a’,测试变量c’和测试变量d’均对应着同一个目标源代码语句(h语句),且测试变量b’和测试变量e’对应着另一个目标源代码语句(k语句),于是,所述测试终端可在这5个测试失败结果中统计到失败总数量为4个,且与h语句关联的第一数量为2个以及第二数量为1个,并统计到与k语句关联的第一数量为2个以及第二数量为0个。鉴于此,根据预设的可疑度函数所述测试终端可进一步计算出h语句的出错率为57.7%,k语句的出错率为70.7%,因此可优先考虑对k语句进行优先修复。
当然,所述待处理单元测试的数量还可以多于2个,此时,所述测试终端仍可按照上述待处理单元测试的数量为两个的情况分别对所述单元测试进行拆分和组合,以得到多个目标单元测试,然后运行所有的目标单元测试,以得到与测试失败结果对应的目标单元测试的失败总数量,并进一步在所述目标单元测试中查找与所述目标源代码语句分别关联的多个目标单元测试(例如,与h语句关联的目标单元测试A’,目标单元测试C’,目标单元测试D’),并将查找到的所述目标单元测试分别作为与所述目标源代码语句关联的关联目标单元测试,进而得到与所述目标源代码语句的第一数量和第二数量,从而可计算出每条目标源代码语句的出错率。
本发明实施例通过获取待处理单元测试,并提取所述待处理单元测试中携带的多个断言语句和所述断言语句中的测试变量;获取所述断言语句中的测试变量对应的依赖语句;将所述断言语句分别与所述断言语句相关联的依赖语句进行组合,得到所述断言语句分别对应的目标单元测试,每个目标单元测试中包含一个断言语句;运行所述目标单元测试,得到所述目标单元测试分别对应的测试结果,并基于预设的可疑度函数以及所述测试结果计算与所述目标单元测试相关联的目标源代码语句对应的出错率。由此可见,本发明通过对所述待处理测试单元进行拆分,可得到与所述断言语句分别对应的目标单元测试,从而保证一个目标单元测试包含一个断言语句,以避免误判干扰,进而可在运行所述目标单元测试后,准确计算出与所述断言语句相关联的每条源代码语句分别对应的出错率,以提供精准、有效的错误定位,从而缩短开发周期。
进一步地,请参见图5,是本发明实施例提供的一种数据测试处理装置的结构示意图。如图5所示,所述数据测试处理装置1可应用于上述图1所对应实施例中的测试终端,所述数据测试处理装置1可以包括:第一获取模块10,第二获取模块20,组合模块30和出错率计算模块40;
所述第一获取模块10,用于获取待处理单元测试,并提取所述待处理单元测试中携带的多个断言语句和所述断言语句中的测试变量;
所述第二获取模块20,用于获取所述断言语句中的测试变量对应的依赖语句;
所述组合模块30,用于将所述断言语句分别与所述断言语句相关联的依赖语句进行组合,得到所述断言语句分别对应的目标单元测试;每个目标单元测试中包含一个断言语句;
所述出错率计算模块40,用于运行所述目标单元测试,得到所述目标单元测试分别对应的测试结果,并基于预设的可疑度函数以及所述测试结果计算与所述目标单元测试相关联的目标源代码语句对应的出错率。
其中,所述第一获取模块10,第二获取模块20,组合模块30和出错率计算模块40的具体实现方式可参见上述图1所对应实施例中对步骤S101-步骤S104的描述,这里将不再继续进行赘述。
本发明实施例通过获取待处理单元测试,并提取所述待处理单元测试中携带的多个断言语句和所述断言语句中的测试变量;获取所述断言语句中的测试变量对应的依赖语句;将所述断言语句分别与所述断言语句相关联的依赖语句进行组合,得到所述断言语句分别对应的目标单元测试;每个目标单元测试中包含一个断言语句;运行所述目标单元测试,得到所述目标单元测试分别对应的测试结果,并基于预设的可疑度函数以及所述测试结果计算与所述目标单元测试相关联的目标源代码语句对应的出错率。由此可见,本发明通过对所述待处理测试单元进行拆分,可得到与所述断言语句分别对应的目标单元测试,从而保证一个目标单元测试包含一个断言语句,以避免误判干扰,进而可在运行所述目标单元测试后,准确计算出与所述断言语句相关联的每条源代码语句分别对应的出错率,以提供精准、有效的错误定位,从而缩短开发周期。
进一步地,请参见图6,是本发明实施例提供的另一种数据测试处理装置的结构示意图。如图6所示,所述数据测试处理装置1可应用于上述图1所对应实施例中的测试终端,所述数据测试处理装置1可以包括上述图5所对应实施例中的所述第一获取模块10,第二获取模块20,组合模块30和出错率计算模块40,进一步地,所述数据测试处理装置1还可以包括;运行模块50,确定模块60,提取删除模块70;
所述运行模块50,用于运行多个源单元测试,并得到与所述源单元测试分别对应的初始运行结果;所述初始运行结果为源测试成功结果或源测试失败结果;
所述确定模块60,用于将为所述源测试失败结果的源单元测试确定为待处理单元测试。
其中,所述运行模块50,确定模块60的具体实现方式可参见上述图4所对应实施例中对步骤S401-步骤S402的描述,这里将不再继续进行赘述。
所述提取删除模块70,用于提取所述待处理单元测试对应的起始位置和终止位置,并根据所述起始位置和终止位置删除所述待处理单元测试。
其中,所述提取删除模块70的具体实现方式可参见上述图4所对应实施例中对步骤S406的描述,这里将不再继续进行赘述。
进一步地,请参见图7,是本发明实施例提供的一种第二获取模块的结构示意图。如图7所示,所述第二获取模块20包括:遍历分析单元201和依赖语句确定单元202。
所述遍历分析单元201,用于对所述待处理单元测试进行遍历分析,得到与所述测试变量相关的多个关联语句;
所述依赖语句确定单元202,用于在所述多个关联语句中查找用于修改所述测试变量的赋值语句,并查找用于修改所述目标测试变量的非赋值语句,并将所查找出的所述赋值语句和所述非赋值语句确定为所述测试变量对应的依赖语句。
其中,所述遍历分析单元201和依赖语句确定单元202的具体实现方式可参见上述图1所对应实施例中对图3中获取所述依赖语句的具体过程的描述,这里将不再进行赘述。
进一步地,请参见图8,是本发明实施例提供的一种依赖语句确定单元的结构示意图。如图8所示,所述依赖语句确定单元202包括:第一确定子单元2021,第二确定子单元2022,检测分析子单元2023;
所述第一确定子单元2021,用于当所述多个关联语句均为用于修改所述测试变量的赋值语句时,将所述多个关联语句确定为所述测试变量对应的依赖语句;
所述第二确定子单元2022,用于当所述多个关联语句不均为用于修改所述测试变量的赋值语句时,将非赋值语句确定为待检测关联语句,并将属于用于修改所述测试变量的赋值语句的关联语句确定为所述测试变量对应的依赖语句;
所述检测分析子单元2023,用于对所述待检测关联语句中的相关变量进行检测分析,并在所述相关变量的取值发生变动时,确定所述待检测关联语句是用于修改所述测试变量的非赋值语句,并将所述待检测关联语句确定为所述测试变量对应的依赖语句。
其中,所述检测分析子单元2023,可具体用于提取所述待检测关联语句中的相关变量,并检测所述相关变量的变量类型,若所述变量类型为非类对象类型,则对所述相关变量的取值进行分析,并在所述取值发生变动时,将所述待检测关联语句确定为所述测试变量对应的依赖语句;可选的,所述检测分析子单元2023还可具体用于若所述变量类型为类对象类型,则查找所述相关变量对应的所有成员变量,并为所述成员变量分别设置对应的局部变量,并在运行所述待检测关联语句之前,记录所述成员变量分别对应的局部变量,并在运行所述待检测关联语句之后,记录所述成员变量分别对应的当前变量,若所述所述成员变量分别对应的局部变量不均与对应的当前变量相等,则确定所述待检测关联语句是用于修改所述测试变量的非赋值语句,并将所述待检测关联语句确定为所述测试变量对应的依赖语句。
其中,所述第一确定子单元2021,第二确定子单元2022,检测分析子单元2023的具体实现方式可参见上述图1所对应实施例中对图3中获取所述依赖语句的具体过程的描述,这里将不再进行赘述。
进一步地,请参见图9,是本发明实施例提供的一种出错率计算模块的结构示意图。如图9所示,所述出错率计算模块40包括:运行单元401,总数量统计单元402,查找单元403,关联数量统计单元404和出错率计算单元405;
所述运行单元401,用于运行所述目标单元测试,并得到与所述目标单元测试分别对应的测试结果;所述测试结果中包含测试成功结果以及测试失败结果;
所述总数量统计单元402,用于在所有测试结果中,统计为所述测试失败结果的目标单元测试的失败总数量;
所述查找单元403,用于在所述目标单元测试中查找与目标源代码语句相关联的多个目标单元测试,作为多个关联目标单元测试;
所述关联数量统计单元404,用于在所有关联目标单元测试分别对应的测试结果中,统计为所述测试失败结果的关联目标单元测试的第一数量,并统计为所述测试成功结果的关联目标单元测试的第二数量;
所述出错率计算单元405,用于根据预设的可疑度函数、所述失败总数量、所述第一数量以及所述第二数量,计算与所述目标单元测试相关联的所述目标源代码语句的出错率。
其中,所述运行单元401,总数量统计单元402,查找单元403,关联数量统计单元404和出错率计算单元405的具体实现方式可参见上述图1所对应实施例中对步骤S104的描述,这里将不再继续进行赘述。
本发明实施例通过获取待处理单元测试,并提取所述待处理单元测试中携带的多个断言语句和所述断言语句中的测试变量;获取所述断言语句中的测试变量对应的依赖语句;将所述断言语句分别与所述断言语句相关联的依赖语句进行组合,得到所述断言语句分别对应的目标单元测试;每个目标单元测试中包含一个断言语句;运行所述目标单元测试,得到所述目标单元测试分别对应的测试结果,并基于预设的可疑度函数以及所述测试结果计算与所述目标单元测试相关联的目标源代码语句对应的出错率。由此可见,本发明通过对所述待处理测试单元进行拆分,可得到与所述断言语句分别对应的目标单元测试,从而保证一个目标单元测试包含一个断言语句,以避免误判干扰,进而可在运行所述目标单元测试后,准确计算出与所述断言语句相关联的每条源代码语句分别对应的出错率,以提供精准、有效的错误定位,从而缩短开发周期。
进一步地,请参见图10,是本发明实施例提供的又一种数据测试处理装置的结构示意图。如图10所示,所述数据测试处理装置1000可以应用于上述图1对应实施例中的测试终端,所述数据测试处理装置1000可以包括:处理器1001和存储器1004,此外,所述数据测试处理装置1000还可以包括:用户接口1003,网络接口1004和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图10所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图10所示的数据测试处理装置1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
获取待处理单元测试,并提取所述待处理单元测试中携带的多个断言语句和所述断言语句中的测试变量;
获取所述断言语句中的测试变量对应的依赖语句;
将所述断言语句分别与所述断言语句相关联的依赖语句进行组合,得到所述断言语句分别对应的目标单元测试;每个目标单元测试中包含一个断言语句;
运行所述目标单元测试,得到所述目标单元测试分别对应的测试结果,并基于预设的可疑度函数以及所述测试结果计算与所述目标单元测试相关联的源代码语句对应的出错率。
在一个实施例中,所述处理器1001在所述获取待处理单元测试,并提取所述待处理单元测试中携带的多个断言语句和所述断言语句中的测试变量之前,还执行以下步骤:
运行多个源单元测试,并得到与所述源单元测试分别对应的初始运行结果,所述初始运行结果为源测试成功结果或源测试失败结果;
将为所述源测试失败结果的源单元测试确定为待处理单元测试。
在一个实施例中,所述处理器1001在执行所述获取所述断言语句中的测试变量对应的依赖语句时,具体执行以下步骤:
对所述待处理单元测试进行遍历分析,得到与所述测试变量相关的多个关联语句;
在所述多个关联语句中查找用于修改所述测试变量的赋值语句,并查找用于修改所述测试变量的非赋值语句,并将所查找出的所述赋值语句和所述非赋值语句确定为所述测试变量对应的依赖语句。
在一个实施例中,所述处理器1001在执行所述在所述多个关联语句中查找用于修改所述测试变量的赋值语句,并查找用于修改所述测试变量的非赋值语句,并将所查找出的所述赋值语句和所述非赋值语句确定为所述测试变量对应的依赖语句时,具体执行以下步骤:
当所述多个关联语句均为用于修改所述测试变量的赋值语句时,将所述多个关联语句确定为所述测试变量对应的依赖语句;
当所述多个关联语句不均为用于修改所述测试变量的赋值语句时,将非赋值语句确定为待检测关联语句,并将属于用于修改所述测试变量的赋值语句的关联语句确定为所述测试变量对应的依赖语句;
对所述待检测关联语句中的相关变量进行检测分析,并在所述相关变量的取值发生变动时,确定所述待检测关联语句是用于修改所述测试变量的非赋值语句,并将所述待检测关联语句确定为所述测试变量对应的依赖语句。
在一个实施例中,所述处理器1001在执行所述对所述待检测关联语句中的相关变量进行检测分析,并在所述相关变量的取值发生变动时,确定所述待检测关联语句是用于修改所述测试变量的非赋值语句,并将所述待检测关联语句确定为所述测试变量对应的依赖语句时,具体执行以下步骤:
提取所述待检测关联语句中的相关变量;
检测所述相关变量的变量类型;
若所述变量类型为非类对象类型,则对所述相关变量的取值进行分析,并在所述取值发生变动时,将所述待检测关联语句确定为所述测试变量对应的依赖语句;
若所述变量类型为类对象类型,则查找所述相关变量对应的所有成员变量,并为所述成员变量分别设置对应的局部变量,并在运行所述待检测关联语句之前,记录所述成员变量分别对应的局部变量,并在运行所述待检测关联语句之后,记录所述成员变量分别对应的当前变量;
若所述成员变量分别对应的局部变量不均与对应的当前变量相等,则确定所述待检测关联语句是用于修改所述测试变量的非赋值语句,并将所述待检测关联语句确定为所述测试变量对应的依赖语句。
在一个实施例中,所述处理器1001在执行所述运行所述目标单元测试,得到所述目标单元测试分别对应的测试结果,并基于预设的可疑度函数以及测试结果计算与所述目标单元测试相关联的目标源代码语句对应的出错率时,具体执行以下步骤:
运行所述目标单元测试,并得到与所述目标单元测试分别对应的测试结果,所述测试结果中包含测试成功结果以及测试失败结果;
在所有测试结果中,统计为所述测试失败结果的目标单元测试的失败总数量;
在所述目标单元测试中查找与目标源代码语句相关联的多个目标单元测试,作为多个关联目标单元测试;
在所有关联目标单元测试分别对应的测试结果中,统计为所述测试失败结果的关联目标单元测试的第一数量,并统计为所述测试成功结果的关联目标单元测试的第二数量;
根据预设的可疑度函数、所述失败总数量、所述第一数量以及所述第二数量,计算与所述目标单元测试相关联的所述目标源代码语句的出错率。
在一个实施例中,所述处理器1001在执行所述运行所述目标单元测试,得到所述目标单元测试分别对应的测试结果,并基于预设的可疑度函数以及测试结果计算与所述目标单元测试相关联的源代码语句对应的出错率的步骤之前,还执行以下步骤:
提取所述待处理单元测试对应的起始位置和终止位置,并根据所述起始位置和终止位置删除所述待处理单元测试。
本发明实施例通过获取待处理单元测试,并提取所述待处理单元测试中携带的多个断言语句和所述断言语句中的测试变量;获取所述断言语句中的测试变量对应的依赖语句;将所述断言语句分别与所述断言语句相关联的依赖语句进行组合,得到所述断言语句分别对应的目标单元测试;每个目标单元测试中包含一个断言语句;运行所述目标单元测试,得到所述目标单元测试分别对应的测试结果,并基于预设的可疑度函数以及所述测试结果计算与所述目标单元测试相关联的目标源代码语句对应的出错率。由此可见,本发明通过对所述待处理测试单元进行拆分,可得到与所述断言语句分别对应的目标单元测试,从而保证一个目标单元测试包含一个断言语句,以避免误判干扰,进而可在运行所述目标单元测试后,准确计算出与所述断言语句相关联的每条源代码语句分别对应的出错率,以提供精准、有效的错误定位,从而缩短开发周期。
此外,这里需要指出的是:本发明实施例还提供了一种计算机存储介质,且所述计算机存储介质中存储有前文提及的数据测试处理装置1所执行的计算机程序,且所述计算机程序包括程序指令,当所述处理器执行所述程序指令时,能够执行前文图1或图4所对应实施例中对所述数据测试处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本发明所涉及的计算机存储介质实施例中未披露的技术细节,请参照本发明方法实施例的描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述所述方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (15)

1.一种数据测试处理方法,其特征在于,包括:
获取待处理单元测试,并提取所述待处理单元测试中携带的多个断言语句和所述断言语句中的测试变量;
获取所述断言语句中的测试变量对应的依赖语句;
将所述断言语句分别与所述断言语句相关联的依赖语句进行组合,得到所述断言语句分别对应的目标单元测试,每个目标单元测试中包含一个断言语句;
运行所述目标单元测试,得到所述目标单元测试分别对应的测试结果,并基于预设的可疑度函数以及所述测试结果计算与所述目标单元测试相关联的目标源代码语句对应的出错率。
2.根据权利要求1所述的方法,其特征在于,在所述获取待处理单元测试,并提取所述待处理单元测试中携带的多个断言语句和所述断言语句中的测试变量之前,还包括:
运行多个源单元测试,并得到与所述源单元测试分别对应的初始运行结果,所述初始运行结果为源测试成功结果或源测试失败结果;
将为所述源测试失败结果的源单元测试确定为待处理单元测试。
3.根据权利要求1所述的方法,其特征在于,所述获取所述断言语句中的测试变量对应的依赖语句,包括:
对所述待处理单元测试进行遍历分析,得到与所述测试变量相关的多个关联语句;
在所述多个关联语句中查找用于修改所述测试变量的赋值语句,并查找用于修改所述测试变量的非赋值语句,并将所查找出的所述赋值语句和所述非赋值语句确定为所述测试变量对应的依赖语句。
4.根据权利要求3所述的方法,其特征在于,所述在所述多个关联语句中查找用于修改所述测试变量的赋值语句,并查找用于修改所述测试变量的非赋值语句,并将所查找出的所述赋值语句和所述非赋值语句确定为所述测试变量对应的依赖语句,包括:
当所述多个关联语句均为用于修改所述测试变量的赋值语句时,将所述多个关联语句确定为所述测试变量对应的依赖语句;
当所述多个关联语句不均为用于修改所述测试变量的赋值语句时,将非赋值语句确定为待检测关联语句,并将属于用于修改所述测试变量的赋值语句的关联语句确定为所述测试变量对应的依赖语句;
对所述待检测关联语句中的相关变量进行检测分析,并在所述相关变量的取值发生变动时,确定所述待检测关联语句是用于修改所述测试变量的非赋值语句,并将所述待检测关联语句确定为所述测试变量对应的依赖语句。
5.根据权利要求4所述的方法,其特征在于,所述对所述待检测关联语句中的相关变量进行检测分析,并在所述相关变量的取值发生变动时,确定所述待检测关联语句是用于修改所述测试变量的非赋值语句,并将所述待检测关联语句确定为所述测试变量对应的依赖语句,包括:
提取所述待检测关联语句中的相关变量;
检测所述相关变量的变量类型;
若所述变量类型为非类对象类型,则对所述相关变量的取值进行分析,并在所述取值发生变动时,将所述待检测关联语句确定为所述测试变量对应的依赖语句;
若所述变量类型为类对象类型,则查找所述相关变量对应的所有成员变量,并为所述成员变量分别设置对应的局部变量,并在运行所述待检测关联语句之前,记录所述成员变量分别对应的局部变量,并在运行所述待检测关联语句之后,记录所述成员变量分别对应的当前变量;
若所述成员变量分别对应的局部变量不均与对应的当前变量相等,则确定所述待检测关联语句是用于修改所述测试变量的非赋值语句,并将所述待检测关联语句确定为所述测试变量对应的依赖语句。
6.根据权利要求1所述的方法,其特征在于,所述运行所述目标单元测试,得到所述目标单元测试分别对应的测试结果,并基于预设的可疑度函数以及测试结果计算与所述目标单元测试相关联的目标源代码语句对应的出错率,包括:
运行所述目标单元测试,并得到与所述目标单元测试分别对应的测试结果,所述测试结果中包含测试成功结果以及测试失败结果;
在所有测试结果中,统计为所述测试失败结果的目标单元测试的失败总数量;
在所述目标单元测试中查找与目标源代码语句相关联的多个目标单元测试,作为多个关联目标单元测试;
在所有关联目标单元测试分别对应的测试结果中,统计为所述测试失败结果的关联目标单元测试的第一数量,并统计为所述测试成功结果的关联目标单元测试的第二数量;
根据预设的可疑度函数、所述失败总数量、所述第一数量以及所述第二数量,计算与所述目标单元测试相关联的所述目标源代码语句的出错率。
7.根据权利要求1所述的方法,其特征在于,在所述运行所述目标单元测试,得到所述目标单元测试分别对应的测试结果,并基于预设的可疑度函数以及测试结果计算与所述目标单元测试相关联的源代码语句对应的出错率的步骤之前,还包括:
提取所述待处理单元测试对应的起始位置和终止位置,并根据所述起始位置和终止位置删除所述待处理单元测试。
8.一种数据测试处理装置,其特征在于,包括:
第一获取模块,用于获取待处理单元测试,并提取所述待处理单元测试中携带的多个断言语句和所述断言语句中的测试变量;
第二获取模块,用于获取所述断言语句中的测试变量对应的依赖语句;
组合模块,用于将所述断言语句分别与所述断言语句相关联的依赖语句进行组合,得到所述断言语句分别对应的目标单元测试,每个目标单元测试中包含一个断言语句;
出错率计算模块,用于运行所述目标单元测试,得到所述目标单元测试分别对应的测试结果,并基于预设的可疑度函数以及所述测试结果计算与所述目标单元测试相关联的目标源代码语句对应的出错率。
9.根据权利要求8所述的装置,其特征在于,还包括:
运行模块,用于运行多个源单元测试,并得到与所述源单元测试分别对应的初始运行结果,所述初始运行结果为源测试成功结果或源测试失败结果;
确定模块,用于将为所述源测试失败结果的源单元测试确定为待处理单元测试。
10.根据权利要求8所述的装置,其特征在于,所述第二获取模块包括:
遍历分析单元,用于对所述待处理单元测试进行遍历分析,得到与所述测试变量相关的多个关联语句;
依赖语句确定单元,用于在所述多个关联语句中查找用于修改所述测试变量的赋值语句,并查找用于修改所述测试变量的非赋值语句,并将所查找出的所述赋值语句和所述非赋值语句确定为所述测试变量对应的依赖语句。
11.根据权利要求10所述的装置,其特征在于,所述依赖语句确定单元,包括:
第一确定子单元,用于当所述多个关联语句均为用于修改所述测试变量的赋值语句时,将所述多个关联语句确定为所述测试变量对应的依赖语句;
第二确定子单元,用于当所述多个关联语句不均为用于修改所述测试变量的赋值语句时,将非赋值语句确定为待检测关联语句,并将属于用于修改所述测试变量的赋值语句的关联语句确定为所述测试变量对应的依赖语句;
检测分析子单元,用于对所述待检测关联语句中的相关变量进行检测分析,并在所述相关变量的取值发生变动时,确定所述待检测关联语句是用于修改所述测试变量的非赋值语句,并将所述待检测关联语句确定为所述测试变量对应的依赖语句。
12.根据权利要求11所述的装置,其特征在于,
所述检测分析子单元,具体用于提取所述待检测关联语句中的相关变量,并检测所述相关变量的变量类型,若所述变量类型为非类对象类型,则对所述相关变量的取值进行分析,并在所述取值发生变动时,将所述待检测关联语句确定为所述测试变量对应的依赖语句;并具体用于若所述变量类型为类对象类型,则查找所述相关变量对应的所有成员变量,并为所述成员变量分别设置对应的局部变量,并在运行所述待检测关联语句之前,记录所述成员变量分别对应的局部变量,并在运行所述待检测关联语句之后,记录所述成员变量分别对应的当前变量,若所述成员变量分别对应的局部变量不均与对应的当前变量相等,则确定所述待检测关联语句是用于修改所述测试变量的非赋值语句,并将所述待检测关联语句确定为所述测试变量对应的依赖语句。
13.根据权利要求8所述的装置,其特征在于,所述出错率计算模块,包括:
运行单元,用于运行所述目标单元测试,并得到与所述目标单元测试分别对应的测试结果,所述测试结果中包含测试成功结果以及测试失败结果;
总数量统计单元,用于在所有测试结果中,统计为所述测试失败结果的目标单元测试的失败总数量;
查找单元,用于在所述目标单元测试中查找与目标源代码语句相关联的多个目标单元测试,作为多个关联目标单元测试;
关联数量统计单元,用于在所有关联目标单元测试分别对应的测试结果中,统计为所述测试失败结果的关联目标单元测试的第一数量,并统计为所述测试成功结果的关联目标单元测试的第二数量;
出错率计算单元,用于根据预设的可疑度函数、所述失败总数量、所述第一数量以及所述第二数量,计算与所述目标单元测试相关联的目标源代码语句的出错率。
14.一种数据测试处理装置,其特征在于,包括:处理器和存储器;
所述处理器和存储器相连,其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行以下操作:
获取待处理单元测试,并提取所述待处理单元测试中携带的多个断言语句和所述断言语句中的测试变量;
获取所述断言语句中的测试变量对应的依赖语句;
将所述断言语句分别与所述断言语句相关联的依赖语句进行组合,得到所述断言语句分别对应的目标单元测试,每个目标单元测试中包含一个断言语句;运行所述目标单元测试,得到所述目标单元测试分别对应的测试结果,并基于预设的可疑度函数以及所述测试结果计算与所述目标单元测试相关联的源代码语句对应的出错率。
15.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,当所述处理器执行所述程序指令时执行如权利要求1-7任一项所述的方法。
CN201710624742.5A 2017-07-27 2017-07-27 一种数据测试处理方法和装置 Active CN107402883B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710624742.5A CN107402883B (zh) 2017-07-27 2017-07-27 一种数据测试处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710624742.5A CN107402883B (zh) 2017-07-27 2017-07-27 一种数据测试处理方法和装置

Publications (2)

Publication Number Publication Date
CN107402883A true CN107402883A (zh) 2017-11-28
CN107402883B CN107402883B (zh) 2018-07-20

Family

ID=60401578

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710624742.5A Active CN107402883B (zh) 2017-07-27 2017-07-27 一种数据测试处理方法和装置

Country Status (1)

Country Link
CN (1) CN107402883B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110704306A (zh) * 2019-09-09 2020-01-17 平安普惠企业管理有限公司 测试中的断言处理方法、装置、设备及存储介质
CN110825650A (zh) * 2019-11-29 2020-02-21 北京网聘咨询有限公司 单元测试覆盖精度检测方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070033443A1 (en) * 2005-08-04 2007-02-08 Microsoft Corporation Unit test generalization
CN101706753A (zh) * 2009-12-11 2010-05-12 武汉虹信通信技术有限责任公司 一种基于Perl的单元测试框架及方法
CN102841841A (zh) * 2011-06-20 2012-12-26 阿里巴巴集团控股有限公司 一种测试中的断言处理方法及系统
US20140075421A1 (en) * 2012-09-07 2014-03-13 Samsung Electronics Co., Ltd. Apparatus and method for generating assertion based on user program code, and apparatus and method for verifying processor using assertion
CN105760292A (zh) * 2014-12-18 2016-07-13 阿里巴巴集团控股有限公司 一种用于单元测试的断言验证方法和装置
CN106598852A (zh) * 2016-12-05 2017-04-26 广州唯品会信息科技有限公司 软件测试方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070033443A1 (en) * 2005-08-04 2007-02-08 Microsoft Corporation Unit test generalization
CN101706753A (zh) * 2009-12-11 2010-05-12 武汉虹信通信技术有限责任公司 一种基于Perl的单元测试框架及方法
CN102841841A (zh) * 2011-06-20 2012-12-26 阿里巴巴集团控股有限公司 一种测试中的断言处理方法及系统
US20140075421A1 (en) * 2012-09-07 2014-03-13 Samsung Electronics Co., Ltd. Apparatus and method for generating assertion based on user program code, and apparatus and method for verifying processor using assertion
CN105760292A (zh) * 2014-12-18 2016-07-13 阿里巴巴集团控股有限公司 一种用于单元测试的断言验证方法和装置
CN106598852A (zh) * 2016-12-05 2017-04-26 广州唯品会信息科技有限公司 软件测试方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
徐中伟,李海波: "面向断言的测试数据生成方法及其应用", 《同济大学学报(自然科学版)》 *
杨弢: "基于断言的功能验证方法研究", 《中国优秀硕士学位论文全文数据库》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110704306A (zh) * 2019-09-09 2020-01-17 平安普惠企业管理有限公司 测试中的断言处理方法、装置、设备及存储介质
CN110704306B (zh) * 2019-09-09 2024-03-22 武汉安辰鑫信息科技有限公司 测试中的断言处理方法、装置、设备及存储介质
CN110825650A (zh) * 2019-11-29 2020-02-21 北京网聘咨询有限公司 单元测试覆盖精度检测方法及装置

Also Published As

Publication number Publication date
CN107402883B (zh) 2018-07-20

Similar Documents

Publication Publication Date Title
CN110413506A (zh) 测试用例推荐方法、装置、设备及存储介质
US10120783B2 (en) Determining test case efficiency
CN110704304B (zh) 一种应用程序测试方法、装置、存储介质和服务器
CN109473093A (zh) 语音识别方法、装置、计算机设备及存储介质
CN113849760B (zh) 敏感信息风险评估方法、系统和存储介质
CN110196801B (zh) 一种基于代码覆盖率的测试方法及装置
CN107392018A (zh) 应用程序脱壳方法及装置
KR20180129623A (ko) 연관된 다중 파일 정적 분석 장치
CN107402883B (zh) 一种数据测试处理方法和装置
CN106548264A (zh) 一种数据分析方法和装置
US11645192B2 (en) Graph-based method for inductive bug localization
CN104572470B (zh) 一种基于蜕变关系的整数溢出故障检测方法
CN110389897A (zh) Sdk逻辑测试方法、装置、存储介质及服务器
CN111858377B (zh) 测试脚本的质量评价方法、装置、电子设备及存储介质
CN109582560A (zh) 测试文件编辑方法、装置、设备及计算机可读存储介质
CN115525528A (zh) 页面质量检测方法、装置、电子设备和存储介质
CN112667669A (zh) 装备维修性测试性的评估方法、装置和计算机设备
Chang et al. Validating halstead metrics for scratch program using process data
CN113360397A (zh) 系统功能的回归测试方法、装置、设备及存储介质
TWI819239B (zh) 產品物質檢查系統及產品物質檢查方法
CN112612882B (zh) 检阅报告生成方法、装置、设备和存储介质
CN111258912B (zh) 一种页面测试方法、装置、终端及存储介质
CN113434408B (zh) 一种基于测试预言的单元测试用例排序方法
CN106528355A (zh) 一种测试管理控制器的方法、装置和系统
CN114201410A (zh) 测试用例被执行程度的监测方法、装置、设备、介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant