一种数据测试处理方法和装置制造方法及图纸

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

【技术实现步骤摘要】
一种数据测试处理方法和装置
本专利技术涉及互联网
,尤其涉及一种数据测试处理方法和装置。
技术介绍
随着计算机技术的发展和计算机的日益普及,计算机的功能也在不断增加,从而可为更多的用户带来更多的方便。例如,集娱乐、办公、多媒体等多种功能于一体的多用途计算机可以在硬件平台与操作系统的平台上为用户提供更多的应用服务。然而,由于在软件的开发周期中,人为的软件修复往往需要消耗极大的人力成本,因此,近年来通常采用自动修复技术来降低软件修复的成本。软件自动修复目前是基于软件错误定位技术来进行错误定位,且当前的错误定位技术的普遍采用可疑度函数(例如,Ochiai算法)来对与源代码语句相关联的单元测试进行错误评估。因此,在运行所有单元测试时,如果在与目标源代码语句相关联的多个单元测试中,执行失败的单元测试的数量比执行成功的单元测试的数量多,则认为该目标源代码语句出错的概率就比较大。但是在计算机汇编语言C++和Java等高级语言中的单元测试通常包括多条Assert(断言语句),而不同的断言语句可能与不同的源代码语句相关联,例如,在一个单元测试中,同时存在两个断言语句(Assert1语句和Asse本文档来自技高网...
一种数据测试处理方法和装置

【技术保护点】
一种数据测试处理方法,其特征在于,包括:获取待处理单元测试,并提取所述待处理单元测试中携带的多个断言语句和所述断言语句中的测试变量;获取所述断言语句中的测试变量对应的依赖语句;将所述断言语句分别与所述断言语句相关联的依赖语句进行组合,得到所述断言语句分别对应的目标单元测试,每个目标单元测试中包含一个断言语句;运行所述目标单元测试,得到所述目标单元测试分别对应的测试结果,并基于预设的可疑度函数以及所述测试结果计算与所述目标单元测试相关联的目标源代码语句对应的出错率。

【技术特征摘要】
1.一种数据测试处理方法,其特征在于,包括:获取待处理单元测试,并提取所述待处理单元测试中携带的多个断言语句和所述断言语句中的测试变量;获取所述断言语句中的测试变量对应的依赖语句;将所述断言语句分别与所述断言语句相关联的依赖语句进行组合,得到所述断言语句分别对应的目标单元测试,每个目标单元测试中包含一个断言语句;运行所述目标单元测试,得到所述目标单元测试分别对应的测试结果,并基于预设的可疑度函数以及所述测试结果计算与所述目标单元测试相关联的目标源代码语句对应的出错率。2.根据权利要求1所述的方法,其特征在于,在所述获取待处理单元测试,并提取所述待处理单元测试中携带的多个断言语句和所述断言语句中的测试变量之前,还包括:运行多个源单元测试,并得到与所述源单元测试分别对应的初始运行结果,所述初始运行结果为源测试成功结果或源测试失败结果;将为所述源测试失败结果的源单元测试确定为待处理单元测试。3.根据权利要求1所述的方法,其特征在于,所述获取所述断言语句中的测试变量对应的依赖语句,包括:对所述待处理单元测试进行遍历分析,得到与所述测试变量相关的多个关联语句;在所述多个关联语句中查找用于修改所述测试变量的赋值语句,并查找用于修改所述测试变量的非赋值语句,并将所查找出的所述赋值语句和所述非赋值语句确定为所述测试变量对应的依赖语句。4.根据权利要求3所述的方法,其特征在于,所述在所述多个关联语句中查找用于修改所述测试变量的赋值语句,并查找用于修改所述测试变量的非赋值语句,并将所查找出的所述赋值语句和所述非赋值语句确定为所述测试变量对应的依赖语句,包括:当所述多个关联语句均为用于修改所述测试变量的赋值语句时,将所述多个关联语句确定为所述测试变量对应的依赖语句;当所述多个关联语句不均为用于修改所述测试变量的赋值语句时,将非赋值语句确定为待检测关联语句,并将属于用于修改所述测试变量的赋值语句的关联语句确定为所述测试变量对应的依赖语句;对所述待检测关联语句中的相关变量进行检测分析,并在所述相关变量的取值发生变动时,确定所述待检测关联语句是用于修改所述测试变量的非赋值语句,并将所述待检测关联语句确定为所述测试变量对应的依赖语句。5.根据权利要求4所述的方法,其特征在于,所述对所述待检测关联语句中的相关变量进行检测分析,并在所述相关变量的取值发生变动时,确定所述待检测关联语句是用于修改所述测试变量的非赋值语句,并将所述待检测关联语句确定为所述测试变量对应的依赖语句,包括:提取所述待检测关联语句中的相关变量;检测所述相关变量的变量类型;若所述变量类型为非类对象类型,则对所述相关变量的取值进行分析,并在所述取值发生变动时,将所述待检测关联语句确定为所述测试变量对应的依赖语句;若所述变量类型为类对象类型,则查找所述相关变量对应的所有成员变量,并为所述成员变量分别设置对应的局部变量,并在运行所述待检测关联语句之前,记录所述成员变量分别对应的局部变量,并在运行所述待检测关联语句之后,记录所述成员变量分别对应的当前变量;若所述成员变量分别对应的局部变量不均与对应的当前变量相等,则确定所述待检测关联语句是用于修改所述测试变量的非赋值语句,并将所述待检测关联语句确定为所述测试变量对应的依赖语句。6.根据权利要求1所述的方法,其特征在于,所述运行所述目标单元测试,得到所述目标单元测试分别对应的测试结果,并基于预设的可疑度函数以及测试结果计算与所述目标单元测试相关联的目标源代码语句对应的出错率,包括:运行所述目标单元测试,并得到与所述目标单元测试分别对应的测试结果,所述测试结果中包含测试成功结果以及测试失败结果;在所有测试结果中,统计为所述测试失败结果的目标单元测试的失败总数量;在所述目标单元测试中查找与目标源代码语句相关联的多个目标单元测试,作为多个关联目标单元测试;在所有关联目标单元测试分别对应的测试结果中,统计为所述测试失败结果的关联目标单元测试的第一数量,并统计为所述测试成功结果的关联目标单元测试的第二数量;根据预设的可疑度函数、所述失败总数量、所述第一数量以及所述第二数量,计算与所述目标单元测试相关联的所述目标源代码语句的出错率。7.根据权利要求1所述的方法,其特征在于,在所述运行所述目标单元测试,得到所述目标单元测试分别对应的测试结果,并基于预设的可疑度函数以及测试结果计算与所述目标单元测试相关联的源代码语句对应的出错率的步骤之前,还包括:提取所述待处理单元测试对应的起始位置和终止位置,并根据所述起始位置和终止位置删除所述待处理单元测试。8.一种数据测试处理装置,其特征在于,包括:第一获取模块,用于获取待处理单元...

【专利技术属性】
技术研发人员:王杰
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1