CN101739339A - 一种基于程序动态依赖关系的软件故障定位方法 - Google Patents

一种基于程序动态依赖关系的软件故障定位方法 Download PDF

Info

Publication number
CN101739339A
CN101739339A CN 200910244115 CN200910244115A CN101739339A CN 101739339 A CN101739339 A CN 101739339A CN 200910244115 CN200910244115 CN 200910244115 CN 200910244115 A CN200910244115 A CN 200910244115A CN 101739339 A CN101739339 A CN 101739339A
Authority
CN
China
Prior art keywords
dependence
dynamic
program
information
suspicious degree
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
CN 200910244115
Other languages
English (en)
Other versions
CN101739339B (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.)
Beihang University
Original Assignee
Beihang University
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 Beihang University filed Critical Beihang University
Priority to CN 200910244115 priority Critical patent/CN101739339B/zh
Publication of CN101739339A publication Critical patent/CN101739339A/zh
Application granted granted Critical
Publication of CN101739339B publication Critical patent/CN101739339B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于程序动态依赖关系的软件故障定位方法,包括:基于作用于链接时的优化器,获取静态控制依赖信息;动态插装可执行程序,搜集动态执行轨迹信息;解析轨迹信息,得到动态依赖关系;再根据动态依赖关系的可疑度公式,计算每动态依赖关系的可疑度;然后将可疑度的值映射到程序的可执行语句上;最后将各语句按照可疑度的大小进行降序排列,输出软件故障定位的报告。开发者可以按可疑度从大到小的顺序对代码进行审查,减少程序调试阶段的必须检查的代码范围和数量,提高定位程序故障的效率。本发明具有自动化程度高、定位准确度高的优点。

Description

一种基于程序动态依赖关系的软件故障定位方法
技术领域
本发明涉及计算机软件自动化调试技术,尤其涉及一种基于程序动态依赖关系的软件故障定位方法。
背景技术
软件调试,是软件开发过程中发现和减少软件缺陷的一个过程,通常始于程序出现故障以后。软件故障一般通过三个阶段产生:程序员在代码中制造了一个缺陷,缺陷造成了程序中的错误状态,错误状态进而引发了程序故障,它以可感知的外部错误的形式出现。随后,程序员会执行某个失败的测试用例,使用调试器反复设置断点,观察程序状态直到错误状态的出现。然后推断可能的感染源,定位缺陷位置并验证,修正软件缺陷。
当前,软件中的某些缺陷或错误,可以通过改进软件开发环境,静态的探测源代码或动态的检查对不变量的违反来辅助发现;而绝大多数错误,则只能依赖于开发人员的经验和直觉,通过人工的方式来发现。
人工审查代码,以及在程序中插入输出语句或断言,单步执行跟踪缺陷轨迹等方法的效率很低,软件开发人员在调试上花费了大量的时间和精力——据统计大约要占去工作的一半甚至更多,这也是软件系统中的缺陷难以在开发过程中充分修复的一个重要原因。另外,调试需要对于程序的功能和实现有较深入的理解,是一件比较困难的工作,所以调试任务通常只能由程序的开发人员来完成,其他人员难以胜任,这样一来就会影响软件的开发速度。
手工调试已经难以适应软件质量保证和快速开发的双重要求。如果有自动化的调试方法,可以根据测试用例的状态信息,以及各种程序实体执行的覆盖信息,指出软件缺陷在源代码中可能存在的位置,无疑将极大的提高软件生产率和软件质量。
程序依赖关系反映了程序实体之间相互作用的关系。它包含两种:数据依赖关系和控制依赖关系。数据依赖关系表示由于数据的定义和使用形成的实体之间的关系。通俗的讲,如果两条语句存在数据依赖关系,当调换这两条语句时,则会使得其中至少一条语句中使用的变量的值不正确。控制依赖关系表示由于控制流引起的程序实体之间的关系。通俗的讲,如果一个谓词表达式的值会影响到一条语句是否被执行,则语句控制依赖于谓词表达式。从程序是否被执行的角度,程序依赖关系又可以分为静态依赖关系和动态依赖关系两种。静态依赖关系显示了实体间所有可能的相互作用关系,而动态依赖关系则表明了某次执行中程序实体相互作用的情况。
在回归测试,每日构建,测试驱动的开发等软件开发的一些场景中,由于软件版本的变更,经常会在源代码中引入难以发现的缺陷。针对这些缺陷的调试工作会很频繁和烦琐。但同时,在这些场景中,程序的源代码,一套测试组件的状态信息和程序的动态依赖关系都是可以获得的。因此,研究一种使用程序动态依赖关系和测试用例状态信息的故障定位技术,对于提高软件生产率和软件质量,有着重要的意义。
发明内容
有鉴于此,本发明的主要目的在于提供一种基于程序动态依赖关系的软件故障定位方法,通过搜集C语言执行时的轨迹信息,解析动态依赖关系,计算出可执行语句的可疑度,并将它们由大到小排列,以故障定位报告的形式给出,提高了调试的自动化程度,从而提升软件的开发速度。
为达到上述目的,本发明的技术方案是这样实现的:
一种基于程序动态依赖关系的软件故障定位方法,该方法包括:
A.使用作用于链接时的优化器,获取程序源文件中存在的静态控制依赖信息,编译源文件为可执行文件,并对其进行动态二进制插装;
B.根据得到的静态控制依赖信息,基于一组测试用例集执行程序,搜集其动态执行轨迹信息,并判定每个测试用例通过或失败的状态;
C.解析所得到的轨迹信息,得到可执行语句间的动态依赖关系;
D.根据所生成的动态依赖关系,运用依赖关系的可疑度计算公式,计算每条动态依赖关系的可疑度,然后将可疑度的值映射到对应的可执行语句上;
E.将各语句按照可疑度从大到小进行降序排列,输出软件故障定位的报告。
其中,所述被定位的程序源代码文件为C语言。
所述软件故障类型包括两类:
数据流相关的故障,包括存在于变量定义,变量使用,变量重定义,变量删除,常量值的改变等程序操作中的故障;
控制流相关的故障,包括存在于不必要的代码块的添加,路径的删除,谓词条件的定义,执行顺序的改变,外部函数的访问,函数值的返回等程序操作中的故障。
步骤A所述的作用于链接时的优化器,是一种重写链接器,其输入为目标文件和库文件,而不是程序的可执行文件。
步骤A所述的动态二进制插装过程,是利用一个基于动态插装工具,通过在程序执行的过程中插入二进制分析代码来获取程序性能信息的过程。
步骤B所述的动态执行轨迹信息,包括:
B1.被执行的指令信息
B2.被执行的依赖关系
B3.当前指令所产生的值
信息块B1所述中的指令信息,包含了指令的唯一编号,使用的依赖关系的个数,指令对应的文件名和语句行号。
信息块B2所述中的依赖关系,包含了被依赖的指令的编号。此外,第一条依赖关系总是表示控制依赖关系,可以为空。之后的依赖关系均是数据依赖关系。
信息块B3所述中的值,包含了当前指令定义的值,它们可以是变量的值或者是变量的地址或为空,并以十六进制的形式表示。
步骤C所述的解析过程,包括:
C1.解析得到可执行语句间动态控制依赖关系的过程
C2.解析得到可执行语句间动态数据依赖关系的过程
步骤C1所述的过程,是根据B2中的信息得到指令间的动态控制依赖关系,再根据B1中指令和可执行语句间的映射关系,得到可执行语句间的动态控制依赖关系的解析过程。
步骤C2所述的过程,是根据B2中的信息得到指令间的动态数据依赖关系,如果B3中的值是变量的值而非变量的地址,则根据B1中指令和可执行语句间的映射关系,得到可执行语句之间的动态数据依赖关系的解析过程。
步骤D所述的可疑度计算公式,包括如下信息:
D1.动态数据或动态控制依赖关系出现在通过的测试用例中的次数
D2.动态数据或动态控制依赖关系出现在失败的测试用例中的次数
D3.整套测试组件通过的测试用例的个数
D4.整套测试组件失败的测试用例的个数
步骤E所述的报告,为辅助程序员进行软件故障定位,按可疑度从大到小排列可执行语句,包括了如下信息:
E1.可执行语句所在文件名
E2.可执行语句所在行号
E3.可执行语句所在的动态控制依赖关系的个数
E4.可执行语句所在的动态数据依赖关系的个数
E5.可执行语句的可疑度
E6.可执行语句的可疑度排名
附图说明
图1为本发明基于程序动态依赖关系的软件故障定位方法流程示意图。
具体实施方式
下面结合附图及本发明的实施例对本发明的方法作进一步详细的说明。
本发明的基本思想为:首先使用链接时的优化器处理源文件,得到静态的控制依赖关系;再通过动态插装工具,执行测试组件,并得到测试用例状态和执行轨迹信息;然后解析执行轨迹信息得到动态依赖关系;由可疑度计算公式得到动态依赖关系的可疑度,并映射到可执行语句上;最后,根据可执行语句的可疑度,生成故障定位报告。
图1为本发明基于程序动态依赖关系的软件故障定位方法流程示意图;如图1所示,该方法包括如下步骤:
步骤101:链接时优化器根据源代码编译生成的二进制文件得到静态控制依赖关系。
这里,所谓链接时优化为软件编译技术术语。它表示由链接器执行的操作,发生在编译之后程序执行之前。链接器是一个程序,将一个或多个编译器或汇编器生成的目标文件外加库链接为一个可执行文件。目标文件是包括机器码和链接器可用信息的程序模块。简单的讲,链接器的工作就是解析未定义的符号引用,将目标文件中的占位符替换为符号的地址。链接器还要完成程序中各目标文件的地址空间的组织,这可能设计重定位工作。
所述静态控制依赖关系是指不执行程序,仅分析程序源代码,得到的程序语句和谓词间可能存在的控制依赖关系。
步骤102:动态插装工具执行测试组件,并根据静态控制依赖关系,生成执行轨迹信息。同时得到测试组件中各测试用例通过或失败的状态。
这里,所谓动态插装为软件工程术语,是借助往被测程序中插入操作(称为“探针”),以便获取程序的控制流和数据流信息,从而实现测试目的的方法。
测试组件为软件工程术语,是测试用例的一组集合,用来测试某个程序是否有特定的一些行为。一个测试套件通常也包含对于每个测试用例如何使用和在测试过程中应收集哪些信息的详细说明。
执行轨迹信息是程序执行过程的指令流信息的记录,一般完整地记录了程序执行过程中所执行指令的内容和顺序。
测试用例的通过或失败状态即可通过人工的方式判定,也可以通过和已知的测试谕示对比而得到。
步骤103:根据所得到的轨迹信息,解析产生可执行语句间的动态依赖关系。
这里,解析产生的动态依赖关系包括动态控制依赖关系和动态数据依赖关系。它们分别表示在程序执行中由于控制流和数据流而引起的语句之间的相互作用。
步骤104:根据所生成的动态依赖关系,运用依赖关系的可疑度计算公式,计算每条动态依赖关系的可疑度,然后将可疑度的值映射到对应的可执行语句上。
为说明依赖关系的可疑度计算公式,引入如下记号:
ctrldep(a,b):表示一条控制依赖关系,语句b控制依赖于语句a
datadep(a,b):表示一条数据依赖关系,语句b数据依赖于语句a
dep(a,b):表示一条依赖关系,可以是ctrldep(a,b)也可以是datadep(a,b)
failed(dep(a,b)):表示依赖关系dep(a,b)出现在失败测试用例中的次数
passed(dep(a,b)):表示依赖关系dep(a,b)出现在通过测试用例中的次数
totalfailed:表示测试组件中失败测试用例总共的个数
由上,依赖关系的可疑度计算公式定义如下:
susp ( dep ( a , b ) ) = failed ( dep ( a , b ) ) totalfailed × ( failed ( dep ( a , b ) + passed ( dep ( a , b ) )
为说明如何将依赖关系的可疑度映射到语句上,引入如下记号:
First(s):表示语句行号i的集合,i与语句s间有依赖关系dep(s,i)
Second(s):表示语句行号j的集合,j与语句s间有依赖关系dep(j,s)
susp ( s ) = Σ i susp ( dep ( s , i ) ) + Σ j susp ( dep ( j , s ) ) | First ( s ) | + | Second ( s ) | i ∈ First ( s ) , j ∈ Second ( s )
步骤105:将得到的各语句的可疑度按从大到小排序,输出语句所在的文件名,行号,动态控制依赖关系的个数,动态数据依赖关系的个数,可疑度及排名,产生程序故障定位报告。
综上所述,程序动态依赖关系的收集和可疑度计算模型是本发明的核心。最终产生的故障定位报告,可供开发者按可疑度从大到小的顺序对可疑代码进行审查,减少程序调试阶段的必须检查的代码范围和数量,提高定位程序故障的效率。

Claims (14)

1.一种基于程序动态依赖关系的软件故障定位方法,其特征在于,该方法包括:
A.使用作用于链接时的优化器,获取程序源文件中存在的静态控制依赖信息,编译源文件为可执行文件,并对其进行动态二进制插装;
B.根据得到的静态控制依赖信息,基于一组测试用例集执行程序,搜集其动态执行轨迹信息,并判定每个测试用例通过或失败的状态;
C.解析所得到的轨迹信息,得到可执行语句间的动态依赖关系;
D.根据所生成的动态依赖关系,运用依赖关系的可疑度计算公式,计算每条动态依赖关系的可疑度,然后将可疑度的值映射到对应的可执行语句上;
E.将各语句按照可疑度从大到小进行降序排列,输出软件故障定位的报告。
2.根据权利要求1所述的定位方法,其特征在于,所述被定位的程序源文件为C语言代码文件。
3.根据权利要求1所述的定位方法,其特征在于,所述软件故障类型包括两类:
数据流相关的故障,包括存在于变量定义,变量使用,变量重定义,变量删除,常量值的改变;
控制流相关的故障,包括存在于不必要的代码块的添加,路径的删除,谓词条件的定义,执行顺序的改变,外部函数的访问,函数值的返回。
4.根据权利要求1所述的方法,其特征在于,步骤A所述的作用于链接时的优化器,是一种重写链接器,其输入为目标文件和库文件,而不是程序的可执行文件。
5.根据权利要求1所述的方法,其特征在于,步骤A所述的动态二进制插装过程,是利用一个动态插装工具,通过在程序执行的过程中插入二进制分析代码来获取程序性能信息的过程。
6.根据权利要求1所述的方法,其特征在于,步骤B所述的动态执行轨迹信息,包括了
B1.被执行的指令信息;
B2.被执行的依赖关系;
B3.当前指令所产生的值。
7.根据权利要求6所述的方法,其特征在于,信息块B1中的指令信息,包含了指令的唯一编号,使用的依赖关系的个数,指令对应的文件名和语句行号。
8.根据权利要求6所述的方法,其特征在于,信息块B2中的依赖关系,包含了被依赖的指令的编号;此外,第一条依赖关系总是表示控制依赖关系,可以为空;之后的依赖关系均是数据依赖关系。
9.根据权利要求6所述的方法,其特征在于,信息块B3中的值,包含了当前指令定义的值,它们可以是变量的值或者是变量的地址或为空,并以十六进制的形式表示。
10.根据权利要求6所述的方法,其特征在于,步骤C所述的解析过程,包括了
C1.解析B1和B2的信息得到可执行语句间动态控制依赖关系的过程;
C2.解析B1,B2和B3的信息得到可执行语句间动态数据依赖关系的过程。
11.根据权利要求10所述的方法,其特征在于,步骤C1是根据B2中的信息得到指令间的动态控制依赖关系;再根据B1中指令和可执行语句间的映射关系,得到可执行语句间的动态控制依赖关系。
12.根据权利要求10所述的方法,其特征在于,步骤C2是根据B2中的信息得到指令间的动态数据依赖关系;如果B3中的值是变量的值而非变量的地址,则根据B1中指令和可执行语句间的映射关系,得到可执行语句之间的动态数据依赖关系。
13.根据权利要求1所述的方法,其特征在于,步骤D所述的可疑度计算公式,需要如下信息:
D1.动态数据或动态控制依赖关系出现在通过的测试用例中的次数;
D2.动态数据或动态控制依赖关系出现在失败的测试用例中的次数;
D3.整套测试组件通过的测试用例的个数;
D4.整套测试组件失败的测试用例的个数。
14.根据权利要求1所述的方法,其特征在于,步骤E所述的报告,为辅助程序员进行软件故障定位,按可疑度从大到小排列可执行语句,给出了如下信息:
E1.可执行语句所在文件名;
E2.可执行语句所在行号;
E3.可执行语句所在的动态控制依赖关系的个数;
E4.可执行语句所在的动态数据依赖关系的个数;
E5.可执行语句的可疑度;
E6.可执行语句的可疑度排名。
CN 200910244115 2009-12-29 2009-12-29 一种基于程序动态依赖关系的软件故障定位方法 Expired - Fee Related CN101739339B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910244115 CN101739339B (zh) 2009-12-29 2009-12-29 一种基于程序动态依赖关系的软件故障定位方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910244115 CN101739339B (zh) 2009-12-29 2009-12-29 一种基于程序动态依赖关系的软件故障定位方法

Publications (2)

Publication Number Publication Date
CN101739339A true CN101739339A (zh) 2010-06-16
CN101739339B CN101739339B (zh) 2013-03-27

Family

ID=42462853

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910244115 Expired - Fee Related CN101739339B (zh) 2009-12-29 2009-12-29 一种基于程序动态依赖关系的软件故障定位方法

Country Status (1)

Country Link
CN (1) CN101739339B (zh)

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102117228A (zh) * 2011-02-28 2011-07-06 复旦大学 一种动静态结合的Java程序异常处理优化方法
CN102541741A (zh) * 2012-01-05 2012-07-04 中国科学院软件研究所 以布尔表达式的求值序列为谓词单元的软件错误定位方法
CN102708052A (zh) * 2012-04-27 2012-10-03 北京邮电大学 一种单元测试中软件故障自动定位方法
CN102789420A (zh) * 2012-07-24 2012-11-21 中国矿业大学 基于程序执行轨迹的动态切片系统
CN102880493A (zh) * 2012-09-25 2013-01-16 南京大学 一种构件间动态依赖关系的自动分析方法
CN102968369A (zh) * 2012-03-23 2013-03-13 中国科学院计算技术研究所 一种动态断点的自动生成方法及系统
CN103176902A (zh) * 2013-03-08 2013-06-26 扬州大学 一种基于概念格的软件多错误定位方法
CN103268280A (zh) * 2013-04-16 2013-08-28 西安电子科技大学 基于距离度量和统计分析结合的软件故障定位系统及方法
CN103425584A (zh) * 2013-08-27 2013-12-04 上海复深蓝信息技术有限公司 基于Java字节码的大型应用回归测试信息处理方法
CN103793653A (zh) * 2014-02-19 2014-05-14 中国科学院信息工程研究所 一种基于树优化的程序依赖关系分析方法及系统
CN103914386A (zh) * 2014-04-21 2014-07-09 西北工业大学 基于输入参数特征谱的软件缺陷定位方法
CN103914372A (zh) * 2012-12-31 2014-07-09 北京启明星辰信息技术股份有限公司 基于程序切片的代码缺陷静态检测的并行化方法及装置
CN104102580A (zh) * 2014-07-10 2014-10-15 西安交通大学 一种基于图挖掘的电子税务系统软件故障定位方法
CN104615535A (zh) * 2015-01-29 2015-05-13 北方工业大学 一种基于扩展的数据流模型来生成测试用例的方法与装置
CN106469049A (zh) * 2015-08-19 2017-03-01 腾讯科技(深圳)有限公司 一种文件扫描的方法及装置
CN106933642A (zh) * 2015-12-29 2017-07-07 阿里巴巴集团控股有限公司 应用程序的处理方法及处理装置
CN107861880A (zh) * 2017-11-28 2018-03-30 曲明成 基于递归在线算法的进程任务块可疑依赖关系的优化方法
CN108984402A (zh) * 2018-07-05 2018-12-11 北方工业大学 一种去除完美理解假设的软件故障定位系统
CN110334302A (zh) * 2019-05-24 2019-10-15 北京因特睿软件有限公司 复杂Web应用前端运行时分析方法
CN110347954A (zh) * 2019-05-24 2019-10-18 北京因特睿软件有限公司 面向复杂Web应用的服务化方法
CN110554965A (zh) * 2019-09-05 2019-12-10 腾讯科技(深圳)有限公司 自动化模糊测试方法及相关设备、计算机可读存储介质
CN110716742A (zh) * 2019-09-27 2020-01-21 福建天泉教育科技有限公司 Apk安全问题的定位方法及计算机可读存储介质
CN112181858A (zh) * 2020-11-09 2021-01-05 东北大学 Java软件项目依赖冲突语义一致性的自动化检测方法
CN112286807A (zh) * 2020-10-28 2021-01-29 北京航空航天大学 一种基于源代码文件依赖关系的软件缺陷定位系统
CN113282495A (zh) * 2021-05-27 2021-08-20 东南大学 一种基于轨迹监控的Java软件故障定位方法
CN113296777A (zh) * 2020-04-10 2021-08-24 阿里巴巴集团控股有限公司 依赖分析和程序编译方法、设备及存储介质
CN114207594A (zh) * 2019-05-22 2022-03-18 起元技术有限责任公司 计算机程序系统的静态分析和运行时分析

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100347682C (zh) * 2004-12-08 2007-11-07 上海科泰世纪科技有限公司 自动化测试构建方法
CN101403965A (zh) * 2008-11-18 2009-04-08 四川赛文纳克软件有限公司 集成式迭代化软件开发过程控制系统及方法

Cited By (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102117228A (zh) * 2011-02-28 2011-07-06 复旦大学 一种动静态结合的Java程序异常处理优化方法
CN102117228B (zh) * 2011-02-28 2013-10-16 复旦大学 一种动静态结合的Java程序异常处理优化方法
CN102541741A (zh) * 2012-01-05 2012-07-04 中国科学院软件研究所 以布尔表达式的求值序列为谓词单元的软件错误定位方法
CN102968369A (zh) * 2012-03-23 2013-03-13 中国科学院计算技术研究所 一种动态断点的自动生成方法及系统
CN102968369B (zh) * 2012-03-23 2015-02-04 中国科学院计算技术研究所 一种动态断点的自动生成方法及系统
CN102708052A (zh) * 2012-04-27 2012-10-03 北京邮电大学 一种单元测试中软件故障自动定位方法
CN102708052B (zh) * 2012-04-27 2017-10-20 北京邮电大学 一种单元测试中软件故障自动定位方法
CN102789420A (zh) * 2012-07-24 2012-11-21 中国矿业大学 基于程序执行轨迹的动态切片系统
CN102789420B (zh) * 2012-07-24 2016-01-20 中国矿业大学 基于程序执行轨迹的动态切片系统
CN102880493B (zh) * 2012-09-25 2015-04-08 南京大学 一种构件间动态依赖关系的自动分析方法
CN102880493A (zh) * 2012-09-25 2013-01-16 南京大学 一种构件间动态依赖关系的自动分析方法
CN103914372A (zh) * 2012-12-31 2014-07-09 北京启明星辰信息技术股份有限公司 基于程序切片的代码缺陷静态检测的并行化方法及装置
CN103176902A (zh) * 2013-03-08 2013-06-26 扬州大学 一种基于概念格的软件多错误定位方法
CN103176902B (zh) * 2013-03-08 2015-05-27 扬州大学 一种基于概念格的软件多错误定位方法
CN103268280A (zh) * 2013-04-16 2013-08-28 西安电子科技大学 基于距离度量和统计分析结合的软件故障定位系统及方法
CN103268280B (zh) * 2013-04-16 2016-01-06 西安电子科技大学 基于距离度量和统计分析结合的软件故障定位系统及方法
CN103425584A (zh) * 2013-08-27 2013-12-04 上海复深蓝信息技术有限公司 基于Java字节码的大型应用回归测试信息处理方法
CN103425584B (zh) * 2013-08-27 2016-01-13 上海复深蓝信息技术有限公司 基于Java字节码的大型应用回归测试信息处理方法
CN103793653A (zh) * 2014-02-19 2014-05-14 中国科学院信息工程研究所 一种基于树优化的程序依赖关系分析方法及系统
CN103793653B (zh) * 2014-02-19 2016-06-29 中国科学院信息工程研究所 一种基于树优化的程序依赖关系分析方法及系统
CN103914386A (zh) * 2014-04-21 2014-07-09 西北工业大学 基于输入参数特征谱的软件缺陷定位方法
CN103914386B (zh) * 2014-04-21 2017-08-04 西北工业大学 基于输入参数特征谱的软件缺陷定位方法
CN104102580A (zh) * 2014-07-10 2014-10-15 西安交通大学 一种基于图挖掘的电子税务系统软件故障定位方法
CN104102580B (zh) * 2014-07-10 2015-08-26 西安交通大学 一种基于图挖掘的电子税务系统软件故障定位方法
CN104615535A (zh) * 2015-01-29 2015-05-13 北方工业大学 一种基于扩展的数据流模型来生成测试用例的方法与装置
CN104615535B (zh) * 2015-01-29 2017-08-11 北方工业大学 一种基于扩展的数据流模型来生成测试用例的方法与装置
CN106469049B (zh) * 2015-08-19 2020-09-29 腾讯科技(深圳)有限公司 一种文件扫描的方法及装置
CN106469049A (zh) * 2015-08-19 2017-03-01 腾讯科技(深圳)有限公司 一种文件扫描的方法及装置
CN106933642A (zh) * 2015-12-29 2017-07-07 阿里巴巴集团控股有限公司 应用程序的处理方法及处理装置
CN107861880A (zh) * 2017-11-28 2018-03-30 曲明成 基于递归在线算法的进程任务块可疑依赖关系的优化方法
CN107861880B (zh) * 2017-11-28 2021-06-22 曲明成 基于递归在线算法的进程任务块可疑依赖关系的发现方法
CN108984402A (zh) * 2018-07-05 2018-12-11 北方工业大学 一种去除完美理解假设的软件故障定位系统
CN114207594A (zh) * 2019-05-22 2022-03-18 起元技术有限责任公司 计算机程序系统的静态分析和运行时分析
CN110334302B (zh) * 2019-05-24 2021-09-10 北京因特睿软件有限公司 复杂Web应用前端运行时分析方法
CN110347954A (zh) * 2019-05-24 2019-10-18 北京因特睿软件有限公司 面向复杂Web应用的服务化方法
CN110334302A (zh) * 2019-05-24 2019-10-15 北京因特睿软件有限公司 复杂Web应用前端运行时分析方法
CN110347954B (zh) * 2019-05-24 2021-06-25 因特睿科技有限公司 面向复杂Web应用的服务化方法
CN110554965B (zh) * 2019-09-05 2021-08-17 腾讯科技(深圳)有限公司 自动化模糊测试方法及相关设备、计算机可读存储介质
CN110554965A (zh) * 2019-09-05 2019-12-10 腾讯科技(深圳)有限公司 自动化模糊测试方法及相关设备、计算机可读存储介质
CN110716742A (zh) * 2019-09-27 2020-01-21 福建天泉教育科技有限公司 Apk安全问题的定位方法及计算机可读存储介质
CN110716742B (zh) * 2019-09-27 2023-02-28 福建天泉教育科技有限公司 Apk安全问题的定位方法及计算机可读存储介质
CN113296777A (zh) * 2020-04-10 2021-08-24 阿里巴巴集团控股有限公司 依赖分析和程序编译方法、设备及存储介质
CN112286807A (zh) * 2020-10-28 2021-01-29 北京航空航天大学 一种基于源代码文件依赖关系的软件缺陷定位系统
CN112286807B (zh) * 2020-10-28 2022-01-28 北京航空航天大学 一种基于源代码文件依赖关系的软件缺陷定位系统
CN112181858A (zh) * 2020-11-09 2021-01-05 东北大学 Java软件项目依赖冲突语义一致性的自动化检测方法
CN113282495A (zh) * 2021-05-27 2021-08-20 东南大学 一种基于轨迹监控的Java软件故障定位方法
CN113282495B (zh) * 2021-05-27 2024-03-22 东南大学 一种基于轨迹监控的Java软件故障定位方法

Also Published As

Publication number Publication date
CN101739339B (zh) 2013-03-27

Similar Documents

Publication Publication Date Title
CN101739339B (zh) 一种基于程序动态依赖关系的软件故障定位方法
Kästner et al. CompCert: Practical experience on integrating and qualifying a formally verified optimizing compiler
US6430741B1 (en) System and method for data coverage analysis of a computer program
US8732673B2 (en) Automated debugging system and method
Sahoo et al. Using likely invariants for automated software fault localization
US9898387B2 (en) Development tools for logging and analyzing software bugs
Mirzaaghaei et al. Supporting test suite evolution through test case adaptation
US8402438B1 (en) Method and system for generating verification information and tests for software
Mortensen et al. Aspect-oriented refactoring of legacy applications: An evaluation
US6993736B2 (en) Pending bug monitors for efficient processor development and debug
US20030046029A1 (en) Method for merging white box and black box testing
Singh et al. A systematic review on fault based mutation testing techniques and tools for Aspect-J programs
Shin et al. Model-based automatic test case generation for automotive embedded software testing
Goli et al. Automated nonintrusive analysis of electronic system level designs
Cheon Automated random testing to detect specification-code inconsistencies
Sjölund Tools and Methods for Analysis, Debugging, and Performance Improvement of Equation-Based Models
Mayer et al. Model-based debugging using multiple abstract models
JP4874277B2 (ja) 自動テスト実行システム
Goli et al. Through the looking glass: Automated design understanding of SystemC-based VPs at the ESL
Goli et al. ASCHyRO: Automatic fault localization of SystemC HLS designs using a hybrid accurate rank ordering technique
Turner et al. A suite of tools for the state-based testing of object-oriented programs
Seifert et al. Debugging triple graph grammar-based model transformations
Zhao Automatic refactoring for renamed clones in test code
Mortensen et al. A test driven approach for aspectualizing legacy software using mock systems
Dahlweid et al. Model-based testing: automatic generation of test cases, test data and test procedures from SysML models

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130327

Termination date: 20151229

EXPY Termination of patent right or utility model