一种软件故障上下文定位的方法及装置制造方法及图纸

技术编号:14470039 阅读:130 留言:0更新日期:2017-01-21 02:02
本发明专利技术实施例提供了一种软件故障上下文定位的方法及装置,涉及软件测试技术领域,用以为程序员提供软件故障发生的上下文环境,提高软件故障定位的准确性。所述方法包括:获取输入参数,并在输入参数中确定可疑输入参数及可疑输入参数的可疑取值子域及非可疑取值子域;根据可疑输入参数的可疑取值子域及非可疑取值子域,获取可疑输入参数变异对;获取可疑输入参数变异对的执行信息;根据可疑输入参数变异对的执行信息,建立执行失败测试用例的程序依赖图及对应的执行成功测试用例的程序依赖图;根据执行失败测试用例的程序依赖图及对应的执行成功测试用例的程序依赖图,确定故障上下文语句。

【技术实现步骤摘要】

本专利技术涉及软件测试
,尤其涉及一种软件故障上下文定位的方法及装置
技术介绍
随着信息技术的飞速发展,计算机软件已经渗透到社会的各个领域,为了确保软件质量,实施大量的软件测试是软件开发中重要的步骤。在软件测试过程中,程序员常常需要对所发现的软件故障进行定位。传统的软件故障检测定位技术中,依据其过程是否需要运行软件的准则,将其分为两大类:基于静态分析的静态故障检测和基于测试的动态故障检测。静态分析法主要是依据程序语言的语法和语义,分析软件结构和程序实体之间的依赖关系,以发现违反系统约束的程序实体,从而检测定位故障。基于测试的动态故障检测主要是设计测试用例并运行软件,依据程序执行的相关追踪信息进行故障检测。而常见的软件动态故障定位技术可以分为两个主要阶段:第一个阶段是使用一种软件故障定位方法识别可疑代码(可能包含程序故障的代码),第二个阶段是程序员根据自动检测的可疑代码人工判断其是否是真正的程序故障。很多软件故障定位工作都集中在第一个阶段,意在使用不同的方法使得所自动检测的可疑代码包含故障的概率更大。但程序员在第二阶段的人工判定中,常常由于无法理解自动检测所得故障代码的相关上下文,耗费很多的精力。因此,亟需一种能够对故障上下文进行定位的方法,用以为程序员提供故障发生的上下文环境,更加有利于程序员在第二步中人工判定故障的效率。
技术实现思路
本专利技术的实施例提供一种软件故障上下文定位的方法及装置,用以为程序员提供故障发生的上下文环境,提高软件故障定位的准确性。为达到上述目的,本专利技术的实施例采用如下技术方案:本专利技术实施例提供了一种软件故障上下文定位的方法,包括:获取输入参数,并在所述输入参数中确定可疑输入参数及所述可疑输入参数的可疑取值子域及非可疑取值子域,所述可疑取值子域是指所述可疑输入参数的执行失败测试用例对应的取值子域,所述非可疑取值子域是划分的所述可疑输入参数的取值子域中除所述可疑取值子域之外的取值子域;根据所述可疑输入参数的可疑取值子域及所述非可疑取值子域,获取可疑输入参数变异对,所述可疑输入参数变异对中包含有所述可疑输入参数的可疑取值子域对应的执行失败测试用例,及对应的执行成功测试用例;获取所述可疑输入参数变异对的执行信息;根据所述可疑输入参数变异对的执行信息,建立执行失败测试用例的程序依赖图及所述对应的执行成功测试用例的程序依赖图,所述程序依赖图包括控制依赖图及数据依赖图;根据所述执行失败测试用例的程序依赖图及所述对应的执行成功测试用例的程序依赖图,确定故障上下文语句。可选地,所述根据所述可疑输入参数的可疑取值子域及所述非可疑取值子域,获取可疑输入参数变异对包括:确定所述可疑输入参数的执行失败测试用例及所述执行失败测试用例对应的所述可疑输入参数的可疑取值子域;根据所述可疑输入参数的执行失败测试用例及所述执行失败测试用例对应的所述可疑输入参数的可疑取值子域,利用所述非可疑取值子域,获取对应的执行成功测试用例;将所述可疑输入参数的执行失败测试用例及所述对应的执行成功测试用例确定为可疑输入参数变异对。可选地,所述根据所述执行失败测试用例的程序依赖图及所述对应的执行成功测试用例的程序依赖图,确定故障上下文语句包括:在所述执行失败测试用例的数据依赖图中,利用所述可疑输入参数获取第一可疑故障上下文语句;根据所述执行失败测试用例的控制依赖图及所述对应的执行成功测试用例的控制依赖图,确定出第二可疑故障上下文语句;或者,根据所述执行失败测试用例的数据依赖图及所述对应的执行成功测试用例的数据依赖图,确定出第二可疑故障上下文语句;根据所述第一可疑故障上下文语句及所述第二可疑故障上下文语句,确定出故障上下文语句。可选地,所述执行信息包括:语句覆盖信息、控制覆盖信息及定义使用对覆盖信息。进一步的,本专利技术实施例通过了一种软件故障上下文定位的装置,包括:获取单元,用于获取输入参数;确定单元,用于在所述获取单元获取的所述输入参数中确定可疑输入参数及所述可疑输入参数的可疑取值子域及非可疑取值子域,所述可疑取值子域是指所述可疑输入参数的执行失败测试用例对应的取值子域,所述非可疑取值子域是划分的所述可疑输入参数的取值子域中除所述可疑取值子域之外的取值子域;所述获取单元,还用于根据所述确定单元确定的所述可疑输入参数的可疑取值子域及所述非可疑取值子域,获取可疑输入参数变异对,所述可疑输入参数变异对中包含有所述可疑输入参数的可疑取值子域对应的执行失败测试用例,及对应的执行成功测试用例;所述获取单元,还用于获取所述可疑输入参数变异对的执行信息;处理单元,用于根据所述获取单元获取的所述可疑输入参数变异对的执行信息,建立执行失败测试用例的程序依赖图及所述对应的执行成功测试用例的程序依赖图;所述程序依赖图包括控制依赖图及数据依赖图;确定单元,还用于根据所述处理单元建立的所述执行失败测试用例的程序依赖图及所述对应的执行成功测试用例的程序依赖图,确定故障上下文语句。可选地,所述获取单元,具体用于确定所述可疑输入参数的执行失败测试用例及所述执行失败测试用例对应的所述可疑输入参数的可疑取值子域;根据所述可疑输入参数的执行失败测试用例及所述执行失败测试用例对应的所述可疑输入参数的可疑取值子域,利用所述非可疑取值子域,获取对应的执行成功测试用例;将所述可疑输入参数的执行失败测试用例及所述对应的执行成功测试用例确定为可疑输入参数变异对。可选地,所述确定单元,具体用于在所述执行失败测试用例的数据依赖图中,利用所述可疑输入参数获取第一可疑故障上下文语句;根据所述执行失败测试用例的控制依赖图及所述对应的执行成功测试用例的控制依赖图,确定出第二可疑故障上下文语句;或者,根据所述执行失败测试用例的数据依赖图及所述对应的执行成功测试用例的数据依赖图,确定出第二可疑故障上下文语句;根据所述第一可疑故障上下文语句及所述第二可疑故障上下文语句,确定出故障上下文语句。可选地,所述执行信息包括:语句覆盖信息、控制覆盖信息及定义使用对覆盖信息。本专利技术实施例提供了一种软件故障上下文定位的方法及装置,包括:获取输入参数,并在输入参数中确定可疑输入参数及可疑输入参数的可疑取值子域及非可疑取值子域;根据可疑输入参数的可疑取值子域及非可疑取值子域,获取可疑输入参数变异对,可疑输入参数变异对中包含有可疑输入参数的可疑取值子域对应的执行失败测试用例,及对应的执行成功测试用例;获取可疑输入参数变异对的执行信息;根据可疑输入参数变异对的执行信息,建立执行失败测试用例的程序依赖图及对应的执行成功测试用例的程序依赖图;根据执行失败测试用例的程序依赖图及对应的执行成功测试用例的程序依赖图,确定故障上下文语句。这样,在本专利技术中软件故障上下文定位的装置可以确定出输入参数中的可疑输入参数及此可疑输入参数的可疑取值子域及非可疑取值子域,根据可疑输入参数的可疑取值子域及非可疑取值子域获取可疑输入参数变异对,获取此可疑输入参数变异对的执行信息,根据此可疑输入参数变异对的执行信息,建立执行失败测试用例的程序依赖图及对应的执行成功测试用例的程序依赖图,进而根据程序依赖图确定出故障上下文语句。即为,软件故障上下文定位的装置可以根据执行失败测试用例的控制依赖图及数据依赖图及对应的执行成功测试用例的控制依赖图及数本文档来自技高网...

【技术保护点】
一种软件故障上下文定位的方法,其特征在于,包括:获取输入参数,并在所述输入参数中确定可疑输入参数及所述可疑输入参数的可疑取值子域及非可疑取值子域,所述可疑取值子域是指所述可疑输入参数的执行失败测试用例对应的取值子域,所述非可疑取值子域是划分的所述可疑输入参数的取值子域中除所述可疑取值子域之外的取值子域;根据所述可疑输入参数的可疑取值子域及所述非可疑取值子域,获取可疑输入参数变异对,所述可疑输入参数变异对中包含有所述可疑输入参数的可疑取值子域对应的执行失败测试用例,及对应的执行成功测试用例;获取所述可疑输入参数变异对的执行信息;根据所述可疑输入参数变异对的执行信息,建立执行失败测试用例的程序依赖图及所述对应的执行成功测试用例的程序依赖图,所述程序依赖图包括控制依赖图及数据依赖图;根据所述执行失败测试用例的程序依赖图及所述对应的执行成功测试用例的程序依赖图,确定故障上下文语句。

【技术特征摘要】
2016.06.06 CN 20161039223591.一种软件故障上下文定位的方法,其特征在于,包括:获取输入参数,并在所述输入参数中确定可疑输入参数及所述可疑输入参数的可疑取值子域及非可疑取值子域,所述可疑取值子域是指所述可疑输入参数的执行失败测试用例对应的取值子域,所述非可疑取值子域是划分的所述可疑输入参数的取值子域中除所述可疑取值子域之外的取值子域;根据所述可疑输入参数的可疑取值子域及所述非可疑取值子域,获取可疑输入参数变异对,所述可疑输入参数变异对中包含有所述可疑输入参数的可疑取值子域对应的执行失败测试用例,及对应的执行成功测试用例;获取所述可疑输入参数变异对的执行信息;根据所述可疑输入参数变异对的执行信息,建立执行失败测试用例的程序依赖图及所述对应的执行成功测试用例的程序依赖图,所述程序依赖图包括控制依赖图及数据依赖图;根据所述执行失败测试用例的程序依赖图及所述对应的执行成功测试用例的程序依赖图,确定故障上下文语句。2.根据权利要求1所述的方法,其特征在于,所述根据所述可疑输入参数的可疑取值子域及所述非可疑取值子域,获取可疑输入参数变异对包括:确定所述可疑输入参数的执行失败测试用例及所述执行失败测试用例对应的所述可疑输入参数的可疑取值子域;根据所述可疑输入参数的执行失败测试用例及所述执行失败测试用例对应的所述可疑输入参数的可疑取值子域,利用所述非可疑取值子域,获取对应的执行成功测试用例;将所述可疑输入参数的执行失败测试用例及所述对应的执行成功测试用例确定为可疑输入参数变异对。3.根据权利要求1所述的方法,其特征在于,所述根据所述执行失败测试用例的程序依赖图及所述对应的执行成功测试用例的程序依赖图,确定故障上下文语句包括:在所述执行失败测试用例的数据依赖图中,利用所述可疑输入参数获取第一可疑故障上下文语句;根据所述执行失败测试用例的控制依赖图及所述对应的执行成功测试用例的控制依赖图,确定出第二可疑故障上下文语句;或者,根据所述执行失败测试用例的数据依赖图及所述对应的执行成功测试用例的数据依赖图,确定出第二可疑故障上下文语句;根据所述第一可疑故障上下文语句及所述第二可疑故障上下文语句,确定出故障上下文语句。4.根据权利要求1-3任一项所述的方法,其特征在于,所述执行信息包括:语句...

【专利技术属性】
技术研发人员:李宁王瑞张利军田宇立李战怀
申请(专利权)人:西北工业大学
类型:发明
国别省市:陕西;61

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

1