期刊文献+

基于函数调用序列模式挖掘的程序缺陷检测 被引量:2

Defects Detection Based on Mining Function Call Sequence Patterns
下载PDF
导出
摘要 程序中通常会隐含大量编程规则,若在程序编写过程中违反此类规则,则可能引发软件缺陷。函数调用规则是其中一类常见的程序隐含规则,常见的函数调用规则挖掘工作将整个函数体内的函数调用作为一个项集来进行分析,未使用程序中函数调用先后顺序等约束信息,导致软件缺陷挖掘结果的误报率较高。通过简单的静态分析即可获取函数调用序列信息,如在缺陷挖掘过程中充分利用函数调用序列信息,将有效提高缺陷挖掘精度。基于上述思路,提出了一种基于函数调用序列模式挖掘的缺陷检测方法,该方法自动检测程序中违反函数调用序列模式的疑似缺陷,并报告可疑度较高的缺陷。基于该方法,在一组开源项目上进行的实验的结果表明,此方法能有效发现程序中由于违反函数调用序列模式而导致的缺陷,减少了缺陷误报,从而降低了人工核查疑似缺陷开销。 Large scale programs usually imply a large number of programming rules.However,if programmers violate those rules in the process of programming,it is possible to cause software defects.The function call rule is one kind of the typical implicit rules in programs.Previous work on mining function rules handle function calls in the body of a function definition as an itemset,and the constraints implied in function call sequences are not utilized,which can lead to high false positive rates.If the function call sequence information is exploited in the process of mining rules,it will effectively improve the accuracy of mining defects.This paper proposed a defect detection approach based on mining function call sequence patterns.In the approach,the suspected defects which violate function call sequence patterns are detected automatically,and the defects with high suspicious degrees are reported.Based on this approach,experiments were carried out in a group of open source projects.The expriment results show that this approach can effectively find defects which violate function call sequence patterns in programs,and reduce false positives.As a result,the overhead of verifying suspicious defects are also reduced.
出处 《计算机科学》 CSCD 北大核心 2017年第11期226-231,共6页 Computer Science
基金 国家重点研发计划(2016YFC0801407) 计算机软件新技术国家重点实验室开放课题(KFKT2016B12) 北京信息科技大学学校科研基金(1625008) 计算机学院大类人才培养模式改革项目(5111623409)资助
关键词 函数调用序列 序列模式挖掘 缺陷检测 Function call sequence, Sequence pattern mining , Defects detection
  • 相关文献

参考文献3

二级参考文献133

  • 1Shaw M. Truth Vs. knowledge: The difference between what a component does and what we know it does//Proeeedings of the 8th International Workshop Software Specification and Design. Budapest, Hungary, 1996: 181- 185.
  • 2Binkley David. Source code analysis: A road map//Proceedings of the Future of Software Engineering. Minneapolis, MN, USA, 2007:104 -119.
  • 3Dwyer Matthew B, Hatcliff John, Robby, Pasareanu Corina S, Visser Willem. Formal software analysis emerging trends in software model cheeking//Proceedings of the Future of Software Engineering. Minneapolis, MN, USA, 2007: 120- 136.
  • 4Flemming Nielson, Hanne Riis Nielson, Chris Hankin. Principles of Program Analysis. Berlin, Germany: Springer Verlag, 2005.
  • 5Jackson Daniel, Rinard Martin. Software analysis: A roadmap//Proceedings of the Future of Software Engineering. Limerick, Ireland, 2000:133-145.
  • 6Aho Alfred V, Sethi Ravi, Ullman Jeffrey D. Compilers: Principles, Techniques, and Tools. New Jersey, USA: Addison-Wesley, 1986.
  • 7Clarke E M, Jr Grumberg O, Peled D A. Model Checking, Cambridge, MA: MIT Press, 2000.
  • 8Ball T, Rajamani S K. Automatically validating temporal safety properties of interfaces//Dwyer M B ed. Proceedings of the 8th SPIN Workshop. LNCS 2057. Springer, 2001:103-122.
  • 9Chen H, Wagner D A. MOPS: An infrastructure for examining security properties of software//Proceedings of the 9th ACM Conference on Computer and Communications Security. Washengton, DC, USA, 2002:235-244.
  • 10Corbett J et al. Bandera: Extracting finite-state models from Java source code//Proceedings of the 22nd ICSE. Limerick, Ireland, 2000:439-458.

共引文献105

同被引文献19

引证文献2

二级引证文献1

相关作者

内容加载中请稍等...

相关机构

内容加载中请稍等...

相关主题

内容加载中请稍等...

浏览历史

内容加载中请稍等...
;
使用帮助 返回顶部