DocumentCode :
950857
Title :
Privately Finding Specifications
Author :
Weimer, Westley ; Mishra, Nina
Author_Institution :
Univ. of Virginia, Charlottesville
Volume :
34
Issue :
1
fYear :
2008
Firstpage :
21
Lastpage :
32
Abstract :
Buggy software is a reality and automated techniques for discovering bugs are highly desirable. A specification describes the correct behavior of a program. For example, a file must eventually be closed once it has been opened. Specifications are learned by finding patterns in normal program execution traces versus erroneous ones. With more traces, more specifications can be learned more accurately. By combining traces from multiple parties that possess distinct programs but use a common library, it is possible to obtain sufficiently many traces. However, obtaining traces from competing parties is problematic: By revealing traces, it may be possible to learn that one party writes buggier code than another. We present an algorithm by which mutually distrusting parties can work together to learn program specifications while preserving their privacy. We use a perturbation algorithm to obfuscate individual trace values while still allowing statistical trends to be mined from the data. Despite the noise introduced to safeguard privacy, empirical evidence suggests that our algorithm learns specifications that find 85 percent of the bugs that a no-privacy approach would find.
Keywords :
data mining; perturbation techniques; program debugging; software maintenance; buggy software; data mining; perturbation algorithm; specification techniques; D.2.19 Software Quality/SQA; F.3.1.f Specification techniques; I.2.6 Learning; K.4.1.f Privacy;
fLanguage :
English
Journal_Title :
Software Engineering, IEEE Transactions on
Publisher :
ieee
ISSN :
0098-5589
Type :
jour
DOI :
10.1109/TSE.2007.70744
Filename :
4359470
Link To Document :
بازگشت