CN104536883B - 一种静态缺陷检测方法及其系统 - Google Patents
一种静态缺陷检测方法及其系统 Download PDFInfo
- Publication number
- CN104536883B CN104536883B CN201410736842.3A CN201410736842A CN104536883B CN 104536883 B CN104536883 B CN 104536883B CN 201410736842 A CN201410736842 A CN 201410736842A CN 104536883 B CN104536883 B CN 104536883B
- Authority
- CN
- China
- Prior art keywords
- state machine
- defect
- controlling stream
- variable
- machine instance
- 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.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种静态缺陷检测方法及其系统,该方法包括:S1、构造被测程序的抽象语法树和控制流图;S2、根据预设的缺陷模式,建立所述缺陷模式的状态机实例,并将所述状态机实例置于待测程序的控制流入口;S3、依路径遍历控制流图,并计算在遍历过程中每个控制流节点的变量的区间信息;S4、根据每个所述控制流节点的变量的区间取值信息,实时地更新所述状态机实例的状态,直到检测到所述状态机实例的缺陷或遍历完成所有路径上的控制流节点。该方法基于符号化的区间分析技术,通过综合采用矛盾的变量取值判断和条件约束验证方法判断程序中的不可达路径,从而提高了缺陷检测的精确性。
Description
技术领域
本发明涉及软件测试技术,尤其涉及一种静态缺陷检测方法及其系统。
背景技术
静态缺陷检测是指在不执行程序的情况下对代码进行分析,通过程序语法及程序抽象语义计算来判断所有可能的程序运行时属性违反。静态缺陷检测的基本特征是在对软件进行分析、检查和测试时,被测试的程序没有被实际运行,它可以对各种文档进行测试,是软件开发过程中十分有效的质量控制方法之一。
静态缺陷检测的对象一般是程序源码或者二进制的可执行程序。由于静态缺陷检测技术可以针对源代码部分内容进行分析,无需编译运行整个程序。对于那些很难检测的小概率缺陷,静态缺陷检测技术能够取得较好的测试效果,因此成为构建可信软件的重要手段。
现有的静态检测技术在进行路径遍历时常采用变量矛盾取值来判断是否可达,但是此种判断路径是否可达的方法是不完备的,在遍历过程中可能会存在大量误报,从而不能精确排除不可达路径,影响了缺陷检测的精度。
发明内容
本发明提供一种静态缺陷检测方法及其系统,通过综合采用矛盾的变量取值判断和条件约束验证方法判断程序中的不可达路径,从而提高了缺陷检测的精确性。
根据上述目的,本发明提供了一种静态缺陷检测方法,其特征在于,所述方法包括:
S1、构造被测程序的抽象语法树和控制流图;
S2、根据预设的缺陷模式,建立所述缺陷模式的状态机实例,并将所述状态机实例置于待测程序的控制流入口;
S3、依路径遍历控制流图,并计算在遍历过程中每个控制流节点的变量的区间信息;
S4、根据每个所述控制流节点的变量的区间取值信息,实时地更新所述状态机实例的状态,直至检测到所述状态机实例的缺陷或遍历完成所有路径上的控制流节点。
其中,所述步骤S3具体包括:
S31,在所述控制流入口处将输入值生成初始符号,取区间理论中的上界作为初始区间;
S32、在数据流迭代过程中根据当前控制流节点的语义信息对各类程序语句中的变量进行符号表示,生成符号表达式;
S33、通过对所述符号表达式进行区间运算得到所述当前控制流节点的每个变量的区间信息。
其中,所述步骤S4具体包括:
S41,根据当前控制流节点的变量的区间取值信息,实时地更新当前控制流节点的状态机实例的状态和路径条件,依据路径条件中变量取值是否矛盾,判断是否为不可达路径,如果变量取值矛盾,则为不可达路径,将当前状态机实例销毁,结束检测过程,否则,进入下一步;
S42,读取当前状态机实例状态的条件约束,如果该状态的路径条件中的变量取值满足条件约束,则路径可达,继续执行下一个控制流节点;否则为不可达路径,将当前状态机实例销毁,结束检测过程;
S43,重复步骤S41和S42,直至检测到所述状态机实例的缺陷或遍历完成所有路径上的控制流节点。
其中,所述方法还包括:
提取检测到的所述状态机实例的缺陷发生的条件约束;将所述缺陷和所述约束条件作为约束求解器的输入进行求解,如果求解失败,表示检测到的所述状态机实例的缺陷的语义程序不可行,检测到的所述状态机实例的缺陷判定为误报。
根据本发明的另一个方面,提供一种静态缺陷检测系统,其特征在于,所述系统包括:
模型构造单元,用于构造被测程序的抽象语法树和控制流图;
状态机实例构造单元,用于根据预设的缺陷模式,建立所述缺陷模式的状态机实例,并将所述状态机实例置于待测程序的控制流入口;
分析计算单元,用于依路径遍历控制流图,并计算在遍历过程中每个控制流节点的变量的区间信息;
缺陷检测单元,用于根据每个所述控制流节点的变量的区间取值信息,实时地更新状态机实例的状态,直至检测到所述状态机实例的缺陷或遍历完成所有路径上的控制流节点。
其中,所述系统还包括:
缺陷判断单元,用于提取检测到的所述状态机实例的缺陷发生的条件约束;将所述缺陷和所述约束条件作为约束求解器的输入进行求解,如果求解失败,表示检测到的所述状态机实例的缺陷的语义程序不可行,检测到的所述状态机实例的缺陷判定为误报。
本发明的静态缺陷检测方法,依被测程序的控制流图对每一条潜在路径进行遍历,基于符号化的区间分析技术,对变量和表达式进行区间运算,同时,通过综合采用矛盾的变量取值判断和条件约束验证方法判断程序中的不可达路径,从而提高了缺陷检测的精确性;另外,通过约束求解器对检测到的缺陷进行判断,对检测到的结果进行了求精,从而可以消除缺陷的误报。
附图说明
通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
图1示出了本发明的静态缺陷检测方法的流程图;
图2示出了本发明的静态缺陷检测方法过程中的符号执行与体执行、区间分析的关系图;
图3示出了本发明的静态缺陷检测系统的结构框图。
具体实施方式
下面将结合附图对本发明的实施例进行详细描述。
图1示出了本发明的静态缺陷检测方法的流程图。
参照图1,本发明的静态缺陷检测方法具体包括:
S1、构造被测程序的抽象语法树和控制流图;
首先通过程序的源代码或二进制文件构建待测程序的抽象语法树,进而将缺陷检测问题转化为抽象程序分析及模式识别问题。通过对源代码解析,可以构建数种抽象程序模型,进而可以描述程序各个方面的表现行为。
抽象语法树(Abstract Syntax Tree,AST)在更多情况下是首先创建的程序模型。抽象语法树的节点对应于解析树上的源代码。抽象语法树是创建更复杂的图结构(模型)的基础,这些图用于不同类型(不同复杂程度)的分析算法,例如控制流图(Control FlowGraph,CFG)。控制流图代表了所有程序执行可能被遍历到的部分,每个节点代表程序的一个基本语句块,指向边代表程序的可能执行路径。
程序的控制流图可以表示为一个有向图G=(N,E,n0,nf),其中:N代表节点的集合,每个节点ni∈N反映程序中的顺序执行语句CommonStmt、条件判断语句SelectionStmt、循环语句LoopStmt等,与节点ni关联的程序语句块表示为Stmt(ni);E∈N×N代表有向边的集合,反映程序中语句间的控制流关系,eh和et分别表示有向边e的头节点和尾节点;n0为函数的唯一入口节点,nf为函数的唯一退出节点。
S2、根据预设的缺陷模式,建立所述缺陷模式的状态机实例,并将所述状态机实例置于待测程序的控制流入口;
缺陷模式是指程序中经常发生的缺陷所呈现出的语法或语义特征。缺陷模式是对程序属性的一种描述,若违反该属性则造成一个缺陷。对于时序安全类型的缺陷模式,例如资源泄露缺陷(Resource Leak,RL)、空指针解引用缺陷(Null Pointer Dereference,NPD)等,有限状态自动机是一种常用和易于理解的抽象表示,因此缺陷模式也可以用缺陷模式状态机来表示。
缺陷模式状态机用于描述缺陷模式的有限状态机(Finite State Machine,FSM),包括状态集合、状态迁移集合、及迁移条件集合,其中D={$start,$error}UDother,T:D×Conditions→D。$start和$error分别表示起始状态和错误状态,Dother表示其他中间状态的集合。
缺陷模式描述了程序代码中常见的含有缺陷的编程实践。缺陷模式必须满足以下几个条件:
1)该模式下的缺陷是符合实际的。就是说,该模式下所定义的缺陷在实际工程中是实际存在的。
2)基于该模式的缺陷数目是可以容忍的。通常来讲,缺陷个数与系统规模呈线性关系。
3)该模式下的缺陷是可以测试的。应存在一个算法可以检查出这个缺陷。
S3、依路径遍历控制流图,并计算在遍历过程中每个控制流节点的变量的区间信息;
所述步骤S3具体包括:
S31,在所述控制流入口处将输入值生成初始符号,取区间理论中的上界作为初始区间;
S32、在数据流迭代过程中根据当前控制流节点的语义信息对各类程序语句中的变量进行符号表示,生成符号表达式;
如果是变量声明语句则为其生成符号并取上界作为其区间;如果是变量定义语句则将定义处右值表达式的符号执行结果作为变量的符号表达式。
S33、通过对所述符号表达式进行区间运算得到所述当前控制流节点的每个变量的区间信息。
图2示出了本发明的静态缺陷检测方法过程中的符号执行与体执行、区间分析的关系图;
参照图2,符号化的区间分析采用符号表达式表示变量的取值信息,将程序中变量间的运算映射为符号表达式之间的运算,其中,具体执行语义下的程序变量Cvar、程序表达式CExpr首先经过程序转换技术,转换为形式化的抽象语法树结构,然后符号执行语义通过符号生成器访问程序变量相关的AST节点(一般为PrimaryExpression或PostfixExpression类型的节点)生成原子符号Svar,通过符号表达式生成器访问表达式相关的AST节点(包括LogicalExpression,AssignmentExpression,RelationalExpression,UnaryExpression等)生成原始的符号表达式,并进一步通过符号表达式化简器生成标准形式的符号表达式SExpr;进一步地,通过将每一个原子符号Svar与具体的区间抽象域关联,并根据SExpr所包含原子符号的运算关系调用区间运算功能计算出整个SExpr的区间信息;最终,通过在控制流图上逐节点进行变量、符号、区间的迭代计算,即可得到每个变量及表达式的区间取值信息。
S4、根据每个所述控制流节点的变量的区间取值信息,实时地更新状态机实例的状态,直至检测到所述状态机实例的缺陷或遍历完成所有路径上的控制流节点。
所述步骤S4具体包括:
S41,根据当前控制流节点的变量的区间取值信息,实时地更新当前控制流节点的状态机实例的状态和路径条件,依据路径条件中变量取值是否矛盾,判断是否为不可达路径,如果变量取值矛盾,则为不可达路径,将当前状态机实例销毁,结束检测过程,否则,进入下一步。
S42,读取当前状态机实例状态的条件约束,如果该状态的路径条件中的变量取值满足条件约束,则路径可达,继续执行下一个控制流节点;否则为不可达路径,将当前状态机实例销毁,结束检测过程;
S43,重复步骤S41和S42,直至检测到所述状态机实例的缺陷或遍历完成所有路径上的控制流节点。
根据路径条件中变量取值是否矛盾来判断是否为不可达路径的过程包括:在程序的执行过程中,程序的执行状态可由二元组l,ρ表示,其中,l代表当前的程序执行位置,ρ代表该状态下的环境,程序环境记录了程序中当前每一个变量X的值。在环境ρ下,变量X的取值记作ρ(X)。在本发明的检测方法中,从控制流图头节点依次进行状态迭代,每个状态都关联当前控制流点的所有变量取值信息。
程序通过路径S执行到位置l,则S上的谓词和赋值操作对l处环境ρ中各变量的可能取值范围进行了限定。我们将S在l处限定的变量取值范围集合称作S在l处的路径条件,记作R(S,l)。
程序通过路径S执行到位置l,属性状态机的状态沿S进行传递和变化。在l处到达状态σ,将R(S,l)记录在σ上,那么包含条件的属性状态表示为σ:{R(S,l)}。
如果属性状态σ:{R(S,l)}中的变量取值矛盾表明该状态在一条不可达路径上传递,则将状态从可能状态集合中删除,否则执行下一步。
在符号化区间分析过程中,当路径条件中包含复杂的条件约束,或存在隐含的路径条件时,控制流分支语句处的数据流限定条件即是符号化的条件约束。在进行真假分支数据流求解的同时,通过保留区间分析过程中生成的符号化条件约束表达式,即可以得到符号化的条件约束。但并非所有的条件表达式都是“直接可用”的条件约束,部分需要进行转化。例如程序中的A>=0,(A*255+B>=0)&&(B<255)都是直接可用的符号化条件约束,但if(file_name)中的限定条件“file_name!=NULL”则必须进行转化。
根据条件限定语句与抽象语法树节点类型的对应关系,给定条件限定语句CondStmt,条件表达式CondExpr,生成的条件约束。程序中分支语句的限定条件经过上述约束转化规则后,得到的是真分支的数据流约束,其假分支的约束可以通过类似的转化规则得到。
然后读取当前状态机实例状态的条件约束,如果该状态的路径条件中的变量取值满足条件约束,则路径可达,继续执行下一个控制流节点;否则为不可达路径,将当前状态机实例销毁,结束检测过程。
另外,在缺陷检测完成后,提取检测到的缺陷发生的条件约束;将该缺陷和对应的约束条件作为约束求解器的输入进行求解,如果求解失败,表示检测到的所述状态机实例的缺陷的语义程序不可行,检测到的所述状态机实例的缺陷判定为误报,从而可以提高检测精度,减少误报。
图3示出了本发明的静态缺陷检测系统的结构框图。
参照图3,根据本发明的另一个方面,提供一种静态缺陷检测系统,所述系统包括:
模型构造单元10,用于构造被测程序的抽象语法树和控制流图;
状态机实例构造单元20,用于根据预设的缺陷模式,建立所述缺陷模式的状态机实例,并将所述状态机实例置于待测程序的控制流入口;
分析计算单元30,用于依路径遍历控制流图,并计算在遍历过程中每个控制流节点的变量的区间信息;
缺陷检测单元40,用于根据每个所述控制流节点的变量的区间取值信息,实时地更新状态机实例,直至检测到所述状态机实例的缺陷或遍历完成所有路径上的控制流节点。
缺陷判断单元50,用于提取检测到的所述状态机实例的缺陷发生的条件约束;将所述缺陷和所述约束条件作为约束求解器的输入进行求解,如果求解失败,表示检测到的所述状态机实例的缺陷的语义程序不可行,检测到的所述状态机实例的缺陷判定为误报。
本发明的静态缺陷检测方法,依被测程序的控制流图对每一条潜在路径进行遍历,基于符号化的区间分析技术,对变量和表达式进行区间运算,同时,通过综合采用矛盾的变量取值判断和条件约束验证方法判断程序中的不可达路径,从而提高了缺陷检测的精确性;另外,通过约束求解器对检测到的缺陷进行判断,对检测到的结果进行了求精,从而可以消除缺陷的误报。
虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (5)
1.一种静态缺陷检测方法,其特征在于,所述方法包括:
S1、构造被测程序的抽象语法树和控制流图;
S2、根据预设的缺陷模式,建立所述缺陷模式的状态机实例,并将所述状态机实例置于待测程序的控制流图的入口;
S3、依路径遍历所述控制流图,并计算在遍历过程中每个控制流节点的变量的区间取值信息;
S4、根据每个所述控制流节点的变量的区间取值信息,实时地更新所述状态机实例的状态,直至检测到所述状态机实例的缺陷或遍历完成所有路径上的控制流节点;
S4具体包括:
S41,根据当前控制流节点的变量的区间取值信息,实时地更新当前控制流节点的状态机实例的状态和路径条件,依据路径条件中变量取值是否矛盾,判断是否为不可达路径,如果变量取值矛盾,则为不可达路径,将当前状态机实例销毁,结束检测过程,否则,进入下一步;
S42,读取当前状态机实例状态的条件约束,如果该状态的路径条件中的变量取值满足条件约束,则路径可达,继续执行下一个控制流节点;否则为不可达路径,将当前状态机实例销毁,结束检测过程;
S43,重复步骤S41和S42,直至检测到所述状态机实例的缺陷或遍历完成所有路径上的控制流节点。
2.根据权利要求1所述的一种静态缺陷检测方法,其特征在于,所述步骤S3具体包括:
S31,在所述控制流图入口处将输入值生成初始符号,取区间理论中的上界作为初始区间;
S32、在数据流迭代过程中根据当前控制流节点的语义信息对各类程序语句中的变量进行符号表示,生成符号表达式;
S33、通过对所述符号表达式进行区间运算得到所述当前控制流节点的每个变量的区间信息。
3.根据权利要求1所述的一种静态缺陷检测方法,其特征在于,所述方法还包括:
提取检测到的所述状态机实例的缺陷发生的条件约束;将所述缺陷和所述条件约束作为约束求解器的输入进行求解,如果求解失败,表示检测到的所述状态机实例的缺陷的语义程序不可行,检测到的所述状态机实例的缺陷判定为误报。
4.一种静态缺陷检测系统,其特征在于,所述系统包括:
模型构造单元,用于构造被测程序的抽象语法树和控制流图;
状态机实例构造单元,用于根据预设的缺陷模式,建立所述缺陷模式的状态机实例,并将所述状态机实例置于待测程序的控制流入口;
分析计算单元,用于依路径遍历控制流图,并计算在遍历过程中每个控制流节点的变量的区间信息;
缺陷检测单元,用于根据每个所述控制流节点的变量的区间取值信息,实时地更新所述状态机实例的状态,直至检测到所述状态机实例的缺陷或遍历完成所有路径上的控制流节点;
所述缺陷检测单元,具体用于:
S41,根据当前控制流节点的变量的区间取值信息,实时地更新当前控制流节点的状态机实例的状态和路径条件,依据路径条件中变量取值是否矛盾,判断是否为不可达路径,如果变量取值矛盾,则为不可达路径,将当前状态机实例销毁,结束检测过程,否则,进入下一步;
S42,读取当前状态机实例状态的条件约束,如果该状态的路径条件中的变量取值满足条件约束,则路径可达,继续执行下一个控制流节点;否则为不可达路径,将当前状态机实例销毁,结束检测过程;
S43,重复步骤S41和S42,直至检测到所述状态机实例的缺陷或遍历完成所有路径上的控制流节点。
5.根据权利要求4所述的一种静态缺陷检测系统,其特征在于,所述系统还包括:
缺陷判断单元,用于提取检测到的所述状态机实例的缺陷发生的条件约束;将所述缺陷和所述条件约束作为约束求解器的输入进行求解,如果求解失败,表示检测到的所述状态机实例的缺陷的语义程序不可行,检测到的所述状态机实例的缺陷判定为误报。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410736842.3A CN104536883B (zh) | 2014-12-05 | 2014-12-05 | 一种静态缺陷检测方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410736842.3A CN104536883B (zh) | 2014-12-05 | 2014-12-05 | 一种静态缺陷检测方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104536883A CN104536883A (zh) | 2015-04-22 |
CN104536883B true CN104536883B (zh) | 2017-06-16 |
Family
ID=52852413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410736842.3A Active CN104536883B (zh) | 2014-12-05 | 2014-12-05 | 一种静态缺陷检测方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104536883B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104915293B (zh) * | 2015-06-12 | 2017-10-20 | 北京邮电大学 | 基于仿射运算的软件测试方法及系统 |
CN104931263B (zh) * | 2015-06-18 | 2016-10-12 | 东南大学 | 一种基于符号化概率有限状态机的轴承故障诊断方法 |
CN105868103A (zh) * | 2016-03-23 | 2016-08-17 | 中国联合网络通信集团有限公司 | 静态检测方法和静态检测装置 |
CN106020913B (zh) * | 2016-06-06 | 2019-06-14 | 北京邮电大学 | 一种缺陷检测工具更新方法及装置 |
CN109426723B (zh) * | 2017-09-01 | 2020-12-22 | 深圳市源伞新科技有限公司 | 使用释放后内存的检测方法、系统、设备及存储介质 |
CN107643984B (zh) * | 2017-10-18 | 2021-04-30 | 百度在线网络技术(北京)有限公司 | 用于输出信息的方法和装置 |
CN108563561B (zh) * | 2018-03-15 | 2020-06-23 | 北京邮电大学 | 一种程序隐性约束提取方法及系统 |
CN108897678B (zh) * | 2018-06-20 | 2021-10-15 | 中国联合网络通信集团有限公司 | 静态代码检测方法和静态代码检测系统、存储设备 |
CN109710538B (zh) * | 2019-01-17 | 2021-05-28 | 南京大学 | 一种用于大规模系统中状态相关缺陷的静态检测方法 |
CN110750439A (zh) * | 2019-09-04 | 2020-02-04 | 南京理工大学 | Android应用中服务使用缺陷的分析与检测方法 |
CN115981711B (zh) * | 2023-03-20 | 2023-06-27 | 花瓣云科技有限公司 | 一种代码处理方法及电子设备 |
CN117520199B (zh) * | 2023-12-06 | 2024-05-14 | 北京邮电大学 | 基于静态符号执行的数值软件缺陷检测方法及装置 |
CN117555811B (zh) * | 2024-01-11 | 2024-03-19 | 北京邮电大学 | 基于静态符号执行的嵌入式软件分析方法、装置及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101286132A (zh) * | 2008-06-02 | 2008-10-15 | 北京邮电大学 | 一种基于软件缺陷模式的测试方法及系统 |
CN102110051A (zh) * | 2010-12-31 | 2011-06-29 | 北京邮电大学 | 应用程序切片技术的静态缺陷检测方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7624075B2 (en) * | 2006-09-15 | 2009-11-24 | Microsoft Corporation | Transformation of modular finite state transducers |
-
2014
- 2014-12-05 CN CN201410736842.3A patent/CN104536883B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101286132A (zh) * | 2008-06-02 | 2008-10-15 | 北京邮电大学 | 一种基于软件缺陷模式的测试方法及系统 |
CN102110051A (zh) * | 2010-12-31 | 2011-06-29 | 北京邮电大学 | 应用程序切片技术的静态缺陷检测方法 |
Non-Patent Citations (1)
Title |
---|
一种路径敏感的静态缺陷检测方法;肖庆 等;《软件学报》;20100228;第21卷(第2期);第209-217页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104536883A (zh) | 2015-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104536883B (zh) | 一种静态缺陷检测方法及其系统 | |
CN105787367B (zh) | 一种软件更新的补丁安全性检测方法及系统 | |
Kanewala et al. | Testing scientific software: A systematic literature review | |
CN101739339B (zh) | 一种基于程序动态依赖关系的软件故障定位方法 | |
CN104899147B (zh) | 一种面向安全检查的代码静态分析方法 | |
US10664601B2 (en) | Method and system automatic buffer overflow warning inspection and bug repair | |
CN109426615A (zh) | 过程间的空指针解引用检测方法、系统、设备以及介质 | |
Martinez et al. | Automatically extracting instances of code change patterns with ast analysis | |
Chen et al. | Understanding metric-based detectable smells in Python software: A comparative study | |
Chen et al. | Coverage prediction for accelerating compiler testing | |
Ganea et al. | Continuous quality assessment with inCode | |
Singh et al. | A systematic review on fault based mutation testing techniques and tools for Aspect-J programs | |
CN111104335B (zh) | 一种基于多层次分析的c语言缺陷检测方法及装置 | |
Tracey et al. | A search-based automated test-data generation framework for safety-critical systems | |
JP2016012274A (ja) | テストケース生成システム及びテストケースを記録した記録媒体 | |
Aghamohammadi et al. | Statement frequency coverage: a code coverage criterion for assessing test suite effectiveness | |
Saini et al. | Comparing quality metrics for cloned and non cloned java methods: A large scale empirical study | |
Harman et al. | Dependence clusters in source code | |
CN102662829B (zh) | 一种复杂数据结构在代码静态测试中的处理方法和装置 | |
CN111966578A (zh) | 一种安卓兼容性缺陷修复效果的自动化评估方法 | |
Moghadam et al. | Resolving conflict and dependency in refactoring to a desired design | |
Sincero et al. | Facing the linux 8000 feature nightmare | |
Attallah et al. | Towards a COSMIC FSM Programming Language Compiler | |
JP2017224185A (ja) | バグ混入確率計算プログラム及びバグ混入確率計算方法 | |
Panigrahi et al. | Regression test size reduction using improved precision slices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |