ACM Home Page
Please provide us with feedback. Feedback
Finding what's not there: a new approach to revealing neglected conditions in software
Full text PdfPdf (205 KB)
Source
International Symposium on Software Testing and Analysis archive
Proceedings of the 2007 international symposium on Software testing and analysis table of contents
London, United Kingdom
SESSION: Static analysis table of contents
Pages: 163 - 173  
Year of Publication: 2007
ISBN:978-1-59593-734-6
Authors
Ray-Yaung Chang  Case Western Reserve University
Andy Podgurski  Case Western Reserve University
Jiong Yang  Case Western Reserve University
Sponsors
ACM: Association for Computing Machinery
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 15,   Downloads (12 Months): 158,   Citation Count: 3
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1273463.1273486
What is a DOI?

ABSTRACT

Neglected conditions are an important but difficult-to-find class of software defects. This paper presents a novel approach to revealing neglected conditions that integrates static program analysis and advanced data mining techniques to discover implicit conditional rules in a code base and to discover rule violations that indicate neglected conditions. The approach requires the user to indicate minimal constraints on the context of the rules to be sought, rather than specific rule templates. To permit this generality, rules are modeled as graph minors of program dependence graphs, and both frequent itemset mining and frequent subgraph mining algorithms are employed to identify candidate rules. We report the results of an empirical evaluation of the approach in which it was used to discover conditional rules and neglected conditions in ~25,000 lines of source code.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Apache.org. Apache HTTP Server Project. www.apache.org.
2
 
3
4
 
5
Chockler, H., Kupferman, O., and Vardi, M. Coverage metrics for formal verification. Lecture Notes in Computer Science 2860, Springer, 2003, pp. 111--125.
 
6
7
 
8
Engler, D. Meta-level compilation. metacomp.stanford.edu.
 
9
10
11
 
12
Festa, P. Study says buffer overflow is most common security bug. C|Net News.com. news.com.com/2100-1001-233483.html.
 
13
 
14
Grammatech. CodeSurfer. www.grammatech.com/products/codesurfer/overview.html.
 
15
Grammatech. Dependence graphs and program slicing. www.grammatech.com/research/slicing/slicingWhitepaper
 
16
Holder, L. B., Cook, D. J., and Djoko, S. Substructure discovery in the SUBDUE system. AAAI Workshop on Knowledge Discovery in Databases, 1994, 169--180.
 
17
 
18
Howden, W. Reliability of the path analysis testing strategy. IEEE Trans. on Softw. Eng., SE-2, Sept. 1976, pp. 208--215.
 
19
20
 
21
IBM. Orthogonal defect classification. Center for Software Eng., www.research.ibm.com/softeng/ODC/ODC.HTM.
 
22
 
23
Kuramochi, M. and Karypis, G. Finding frequent patterns in a large sparse graph. Technical Report #03-038, Dept. of Computer Sci. and Eng., Univ. of Minnesota.
 
24
Kuramochi, M. and Karypis, G. GREW: A Scalable Frequent Subgraph Discovery Algorithm. Technical Report #TR 04-024, CSE Dept., Univ. of Minnesota.
25
 
26
27
28
 
29
30
 
31
 
32
Mozilla.org. Bugzilla. https://bugzilla.mozilla.org/.
 
33
NIST. National Vulnerability Database. http://nvd.nist.gov/.
 
34
 
35
Renieres, M. and Reiss, S. P. Fault localization with nearest neighbor queries. 18th International Conference on Automated Software Engineering (Oct. 2003), pp. 30--39.
 
36
Richardson, D. J. and Clarke, L. A. Partition analysis: a method combining testing and verification. IEEE Trans. on Softw. Eng., SE-11, 12 (Dec. 1985), 1477--1490.
 
37
Robertson, N. and Seymour, P. D. Graph Minors. I. Excluding a forest. Journal of Combinatorial Theory, Series B 35 (1), 1983, 39--61.
 
38
 
39
Thayer, T. A., Lipow, M., and Nelson, E. C. Software reliability study. TRW-SS-76-03, Redondo Beach, California, TRW, March 1976.
 
40
 
41
Wilander, J. and Fak, P. Rule Matching Security Properties of Code using Dependence Graphs. 1st Intl. Workshop on Code Based Software Security Assessments (Pittsburgh, PA, November 2005).
 
42
43
 
44
 
45
Zhang, S., Yang, J., and Cheedella, V. Monkey: Approximate Graph Mining Based on Spanning Trees, to appear in ICDE, April 2007, Istanbul, Turkey.
46


Collaborative Colleagues:
Ray-Yaung Chang: colleagues
Andy Podgurski: colleagues
Jiong Yang: colleagues