TY - GEN
T1 - Evaluating program analysis and testing tools with the RUGRAT random benchmark application generator
AU - Hussain, Ishtiaque
AU - Csallner, Christoph
AU - Grechanik, Mark
AU - Fu, Chen
AU - Xie, Qing
AU - Park, Sangmin
AU - Taneja, Kunal
AU - Hossain, B. M.Mainul
PY - 2012/8/28
Y1 - 2012/8/28
N2 - Benchmarks are heavily used in different areas of computer science to evaluate algorithms and tools. In program analysis and testing, open-source and commercial programs are routinely used as benchmarks to evaluate different aspects of algorithms and tools. Unfortunately, many of these programs are written by programmers who introduce different biases, not to mention that it is very difficult to find programs that can serve as benchmarks with high reproducibility of results. We propose a novel approach for generating random benchmarks for evaluating program analysis and testing tools. Our approach uses stochastic parse trees, where language grammar production rules are assigned probabilities that specify the frequencies with which instantiations of these rules will appear in the generated programs. We implemented our tool for Java and applied it to generate benchmarks with which we evaluated different program analysis and testing tools. Our tool was also implemented by a major software company for C++ and used by a team of developers to generate benchmarks that enabled them to reproduce a bug in less than four hours.
AB - Benchmarks are heavily used in different areas of computer science to evaluate algorithms and tools. In program analysis and testing, open-source and commercial programs are routinely used as benchmarks to evaluate different aspects of algorithms and tools. Unfortunately, many of these programs are written by programmers who introduce different biases, not to mention that it is very difficult to find programs that can serve as benchmarks with high reproducibility of results. We propose a novel approach for generating random benchmarks for evaluating program analysis and testing tools. Our approach uses stochastic parse trees, where language grammar production rules are assigned probabilities that specify the frequencies with which instantiations of these rules will appear in the generated programs. We implemented our tool for Java and applied it to generate benchmarks with which we evaluated different program analysis and testing tools. Our tool was also implemented by a major software company for C++ and used by a team of developers to generate benchmarks that enabled them to reproduce a bug in less than four hours.
UR - http://www.scopus.com/inward/record.url?scp=84865282525&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84865282525&partnerID=8YFLogxK
U2 - 10.1145/04000801.2336798
DO - 10.1145/04000801.2336798
M3 - Conference contribution
AN - SCOPUS:84865282525
SN - 9781450314558
T3 - 10th International Workshop on Dynamic Analysis, WODA 2012 - Proceedings
SP - 1
EP - 6
BT - 10th International Workshop on Dynamic Analysis, WODA 2012 - Proceedings
T2 - 10th International Workshop on Dynamic Analysis, WODA 2012
Y2 - 15 July 2012 through 15 July 2012
ER -