[IEEE 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation...
Transcript of [IEEE 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation...
![Page 1: [IEEE 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation (ICST) - Luxembourg, Luxembourg (2013.03.18-2013.03.22)] 2013 IEEE Sixth International](https://reader037.fdocuments.us/reader037/viewer/2022092707/5750a6701a28abcf0cb9977d/html5/thumbnails/1.jpg)
Leveraging Light-Weight Analyses to Aid Software Maintenance
Zachary P. [email protected]
Westley [email protected]
I. INTRODUCTION
Software maintenance can account for up to 90% ofa system’s life cycle cost [1]. Anecdotal evidence fromreal-world developers suggests that for real systems,maintenance teams often cannot keep up with the highrate at which faults are found and reported [2]. As aresult, many automated techniques have been developedto reduce the overall effort necessary to sustain softwareover time. While many of these tools work well undercertain circumstances, we believe that they could beimproved by taking advantage of large untapped sourcesof unstructured information that result from naturalsoftware development. Software maintenance remainsa costly problem in practice; the proposed work willidentify weaknesses in common maintenance processesand attempt to address them to reduce both human andcomputational costs.
The proposed research will design lightweight anal-yses to extract latent information encoded by humans insoftware development artifacts and thereby reduce thecosts of software maintenance. We will design analysesthat apply throughout the maintenance process, focusingon three areas: (1) the human cost associated with man-ually triaging large collections of automatically exposeddefects; (2) the computational cost and expressive powerof evolving automatic defect repairs; and (3) ensuringthe continued consistency of system documentation toreduce the difficulty (and thus cost) of understandingsystems over time. In each case, we hope to concretelyshow that specific maintenance costs can be reduced byextracting and analyzing previously unused informationthereby easing the total maintenance burden.
The key insight is that many existing maintenancetechniques could be improved by leveraging the less-structured, human-created artifacts that are inherent insoftware development. For example, we have previouslyshown that natural language clues can dramatically im-prove automatic defect localization from human-writtendefect reports [3]. We hypothesize that light-weighttechniques can be used to extract and analyze actionableinformation latent in software artifacts, thus reducing
maintenance costs overall.
II. PROPOSED RESEARCH
We will evaluate our techniques and tools on large,real-world systems, comprising tens of millions of linesof code and thousands of defects. The proposed workwill attempt to reduce the cost of three specific main-tenance tasks: triaging automatically-generated defectreports, automatically synthesizing defect repairs, andautomatically identifying out-of-date or incomplete sys-tem documentation. We hope to address bottlenecks ineach of these three areas and show concrete time andeffort savings for each process. The rest of this sectiondescribes each maintenance process and our proposedimprovements in each case.
A. Clustering Duplicate Automatically-Generated De-fect Reports.
Large software systems contain so many faults thatautomatic defect-finding tools are commonly used to ex-pose them [4] — and in large systems, many faults sharethe same symptoms or the same causes. Unfortunately,automatic defect finders rarely recognize such similarity.We have found, however, that over 30% of such defectreports (over 2,600 actual instances in our study), weresimilar enough that time and effort could be saved byhandling them aggregately. While some of these defectreports share syntactic similarities, in many cases thesimilarities are only visible at a semantic level. Wepropose to cluster such reports by extracting both syn-tactic and semantic information and using lightweightmetrics to model their similarity. The success metricsfor such a technique are accuracy (i.e., clustering onlydefects that are related) and effort savings (i.e., reducingthe number of clusters that must be triaged separately).While there are no directly-comparable tools, we adaptthree established code clone detectors to the task ofclustering automatically-generated defects to use asbaselines when assessing our technique’s ability to savemaintenance effort. Preliminary results show that ourtechnique is both capable of producing clusters thatperfectly match our annotated data set (while code clone
2013 IEEE Sixth International Conference on Software Testing, Verification and Validation
978-0-7695-4968-2/13 $26.00 © 2013 IEEE
DOI 10.1109/ICST.2013.77
507
![Page 2: [IEEE 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation (ICST) - Luxembourg, Luxembourg (2013.03.18-2013.03.22)] 2013 IEEE Sixth International](https://reader037.fdocuments.us/reader037/viewer/2022092707/5750a6701a28abcf0cb9977d/html5/thumbnails/2.jpg)
tools are not) and can save more developer effort atnearly all levels of accuracy.
B. Improved Fitness Functions for Automatic ProgramRepair.
Even after similar defect reports have been triaged, somany defects remain that there has been increasing in-terest in automated program repair techniques to reducethe maintenance burden [5]. However, quickly evolvingfunctionally correct repairs remains a challenge. Currenttechniques typically measure the fitness or “quality” ofa candidate repair only in terms of test cases, treating alltests equally. Unfortunately, this is a very noisy signal inpractice [6] — not all test cases are created equal [7] andinternal program state remains an untapped resource [8].We propose to build a light-weight model that canguide the search to a repair. By weighting test casesand including information about run-time program state,we propose to develop a fitness function with a higherfitness-distance correlation [9]. The goal of this work isto allow program repair tools to generate more eventualdefect fixes and to do so faster than they would withmore naive fitness functions, on an established ([5]) setof real-world defects.
C. Ensuring Documentation Consistency.
Changing a program, either to fix a fault or toadd a feature, may lead to inconsistent or incorrectdocumentation. Previous researchers have shown thatcomments rarely co-evolve with code in real-worldsystems [10], which can lead to severely inconsistentcomments [11], [12]. We propose to create a general,lightweight model of comment quality with respectto consistency and completeness. We will do so bysynthesizing structured “template” documentation thatincludes key concepts but not extraneous natural lan-guage. We will then extract similar information fromexisting natural language comments and perform astructured comparison. This proposed work is the mostspeculative and represents a higher-risk higher-rewardresearch trade-off. We propose to evaluate our techniquewith a set of human studies, focusing on two evaluationmetrics: (1) how often human annotators agree withour model’s judgments of comment consistency andcompleteness; and (2) how much the use of our toolincreases humans’ speed and accuracy when identifyinginconsistent and incomplete comments.
III. ACKNOWLEDGMENT
I wish to thank my research advisor, Westley Weimer,for the guidance he has provided throughout the disser-tation process.
REFERENCES
[1] R. C. Seacord, D. Plakosh, and G. A. Lewis, Moderniz-ing Legacy Systems: Software Technologies, EngineeringProcess and Business Practices. Addison-Wesley Long-man Publishing Co., Inc., 2003.
[2] N. Jalbert and W. Weimer, “Automated duplicate detec-tion for bug tracking systems,” in International Confer-ence on Dependable Systems and Networks, pp. 52–61,2008.
[3] Z. P. Fry and W. Weimer, “Fault Localization UsingTextual Similarities,” ArXiv e-prints, 2012.
[4] A. Bessey, K. Block, B. Chelf, A. Chou, B. Fulton,S. Hallem, C. Henri-Gros, A. Kamsky, S. McPeak,and D. R. Engler, “A few billion lines of code later:using static analysis to find bugs in the real world,”Communications of the ACM, vol. 53, no. 2, pp. 66–75,2010.
[5] C. Le Goues, M. Dewey-Vogt, S. Forrest, andW. Weimer, “A systematic study of automated programrepair: Fixing 55 out of 105 bugs for $8 each,” in Inter-national Conference on Software Engineering, pp. 3–13,2012.
[6] E. Fast, C. Le Goues, S. Forrest, and W. Weimer,“Designing better fitness functions for automated pro-gram repair,” in Genetic and Evolutionary ComputationConference, pp. 965–972, 2010.
[7] K. Walcott, M. Soffa, G. Kapfhammer, and R. Roos,“Time-aware test suite prioritization,” in InternationalSymposium on Software Testing and Analysis, 2006.
[8] B. Liblit, A. Aiken, A. X. Zheng, and M. I. Jordan, “Bugisolation via remote program sampling,” in ProgrammingLanguage Design and Implementation, pp. 141–154,2003.
[9] T. Jones and S. Forrest, “Fitness distance correlationas a measure of problem difficulty for genetic algo-rithms,” in International Conference on Genetic Algo-rithms, pp. 184–192, 1995.
[10] B. Fluri, M. Wursch, and H. C. Gall, “Do code andcomments co-evolve? on the relation between sourcecode and comment changes,” WCRE ’07, pp. 70–79,2007.
[11] L. Tan, D. Yuan, G. Krishna, and Y. Zhou, “/* iCom-ment: Bugs or bad comments? */,” in Proceedings of the21st ACM Symposium on Operating Systems Principles(SOSP07), October 2007.
[12] S. H. Tan, D. Marinov, L. Tan, and G. T. Leav-ens, “@tComment: Testing javadoc comments to detectcomment-code inconsistencies,” in Proceedings of the5th International Conference on Software Testing, Veri-fication and Validation, April 2012.
508