【技术实现步骤摘要】
新版本程序缺陷检测方法及装置
本专利技术涉及软件工程
,尤其涉及一种新版本程序缺陷检测方法及装置。
技术介绍
程序中通常会隐含大量缺少规范文档描述的编程规则,但由于此类规则数量众多,且受到开发时间和进度的限制,软件工程师很少使用规范细致的文档来描述此类规则。此外,部分编程规则隐藏较深,软件工程师甚至并未意识到其存在,采用传统的代码评审等方法不能发现违反此类规则的缺陷。此外,死锁等产生原因较为复杂的缺陷也难以通过代码评审发现。如果程序员在编程过程中忽视或违反了这类规则,则可能会引发软件缺陷。软件缺陷挖掘是自动识别程序隐含规则的有效手段,其通过对软件代码、文档等相关数据进行建模,以识别隐含的缺陷模式或编程规则,并据此来自动发现软件缺陷。软件缺陷挖掘能在很大程度上实现自动化,人力成本开销较小,近年来在大规模软件上取得了一系列成果,越来越受到工业界的重视。其中,函数调用模式最为常见的一类程序隐含规则,此前的提出的相关技术已经能有效地发现程序中由于违反函数调用模式而导致的缺陷。然而,现有技术方案还存在一定的问题和缺点:使用数据挖掘技术识别出的隐式编程规则通常数量较多, ...
【技术保护点】
1.一种新版本程序缺陷检测方法,其特征在于,包括:获取目标应用的历史版本程序和新版本程序;根据所述历史版本程序和所述新版本程序获得对应的函数调用语句集;根据所述函数调用语句集获得所述历史版本程序和所述新版本程序分别对应的关联规则集;根据所述关联规则集获得用于所述新版本程序的检测用关联规则集;根据所述检测用关联规则集和所述新版本程序的函数调用语句集获得疑似缺陷集。
【技术特征摘要】
1.一种新版本程序缺陷检测方法,其特征在于,包括:获取目标应用的历史版本程序和新版本程序;根据所述历史版本程序和所述新版本程序获得对应的函数调用语句集;根据所述函数调用语句集获得所述历史版本程序和所述新版本程序分别对应的关联规则集;根据所述关联规则集获得用于所述新版本程序的检测用关联规则集;根据所述检测用关联规则集和所述新版本程序的函数调用语句集获得疑似缺陷集。2.根据权利要求1所述的方法,其特征在于,所述根据所述历史版本程序和所述新版本程序获得对应的函数调用语句集,包括:获取待检测版本程序;对所述待检测版本程序进行反编译处理,获得所述待检测版本程序对应的函数集;确定所述函数集中的目标函数,生成对应的抽象语法树;遍历所述抽象语法树的所有结点,判断结点是否为调用语句,获得判断结果;根据判断结果筛选出所述目标函数中的函数调用语句,生成所述目标函数的函数调用语句子集;根据所述函数集中的所有函数对应的函数调用语句子集生成函数调用语句集;其中,所述待检测版本程序为历史版本程序和新版本程序。3.根据权利要求2所述的方法,其特征在于,所述根据所述关联规则集获得用于所述新版本程序的检测用关联规则集,包括:获取所述历史版本程序对应的关联规则集,将其作为第一关联规则集,以及获取所述新版本程序对应的关联规则集,将其作为第二关联规则集;依次确定所述第一关联规则集中的关联规则作为目标关联规则;将所述目标关联规则与所述第二关联规则集中的关联规则进行匹配,获得与所述目标关联规则相同的匹配关联规则;获取所述目标关联规则和所述匹配关联规则的置信度变化值,在所述置信度变化值小于零时,将所述匹配关联规则存储于检测用关联规则集中;将所述第二关联规则集中未与所述目标关联规则相匹配的关联规则存储于检测用关联规则集中。4.根据权利要求3所述的方法,其特征在于,根据所述检测用关联规则集和所述新版本程序的函数调用语句集获得疑似缺陷集,包括:依次确定所述新版本程序对应的所述函数调用语句集中的函数调用语句子集作为待检测子集;确定所述检测用关联规则集中的检测用关联规则,所述检测用关联规则中包括第一关联函数调用语句和第二关联函数调用语句;在确定所述检测用关联规则中的第一关联函数调用语句与待检测子集中的函数调用语句匹配成功,且第二关联函数调用语句与待检测子集中的函数调用语句匹配不成功时,根据怀疑度计算公式计算得到所述待检测子集与所述检测用关联规则之间的怀疑度;在确定所述怀疑度大于预设最小怀疑度时,将所述待检测子集与所述检测用关联规则之间的怀疑关系存储于疑似缺陷集。5.根据权利要求4所述的方法,其特征在于,所述怀疑度计算公式包括:其中,suspicious(FDβ,i,arβ,j)为怀疑度,FDβ,i为所述新版本程序的所述函数调用语句集中的第i个函数调用语句子集,arβ,j为所述检测用关联规则集中的第j个检测用关联规则,Aβ,j为第j个检测用关联规则中的第一关联函数调用语句,Bβ,j为第j个检测用关联规则中的第二关联函数调用语句;support_count(Aβ,j∪Bβ,j)为所述函数调用语句集同时包含Aβ,j和Bβ,j的次数,support_count(Aβ,...
【专利技术属性】
技术研发人员:崔展齐,郑丽伟,刘秀磊,牛科,
申请(专利权)人:北京信息科技大学,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。