Milos Gligoric, Tihomir Gvero, Vilas Jagannath, Sarfraz Khurshid, Viktor
Kuncak, and Darko Marinov.
Test generation through programming in UDITA.
In International Conference on Software Engineering (ICSE),
2010.
We present an approach for describing tests using non-deterministic
test generation programs. To write such programs, we introduce UDITA,
a Java-based language with non-deterministic choice operators and an
interface for generating linked structures. We also describe new
algorithms that generate concrete tests by efficiently exploring the
space of all executions of non-deterministic UDITA programs.
We implemented our approach and incorporated it into the official,
publicly available repository of Java PathFinder (JPF), a popular tool
for verifying Java programs. We evaluate our technique by generating
tests for data structures, refactoring engines, and JPF itself. Our
experiments show that test generation using UDITA is faster and leads
to test descriptions that are easier to write than in previous
frameworks. Moreover, the novel execution mechanism of UDITA is
essential for making test generation feasible. Using UDITA, we have
discovered a number of bugs in Eclipse, NetBeans, Sun javac, and JPF.
[ bib |
http ]
Back