Welcome to the UDITA project homepage. UDITA is a language that allows users to combine the expressive strengths of both filtering (declarative) and generating (imperative) test abstractions to create more expressive composable test generation programs. UDITA also provides execution mechanisms to ensure that greater expressiveness also leads to greater efficiency.
By Milos Gligoric,
Tihomir Gvero,
Vilas Jagannath,
Sarfraz Khurshid,
Viktor Kuncak, and
Darko Marinov.
32nd International Conference on Software Engineering
(ICSE 2010), pages 225-234, Cape Town, South Africa, May 2010. pdf.
By Milos Gligoric,
Tihomir Gvero,
Vilas Jagannath,
Sarfraz Khurshid,
Viktor Kuncak, and
Darko Marinov.
In EPFL Technical Report LARA-REPORT-005, September 2009. web page.
We found bugs in Eclipse (3.3.2), NetBeans (6.5), Sun javac (1.6.0_16) and Java PathFinder (4.0, SVN revision 1849) using UDITA based test generation programs. The bug reports for those bugs are as follows:
Both these bug reports have been submitted to Sun and are being considered for addition into their bug database.
interface C { public C m(); } interface B { public B m(); } interface A extends B, C { public A m(); }However javac does not accept the program and gives the following error:
types C and B are incompatible; both define m(), but with unrelated return types
public class A { private void m(){} class B extends A { void m(int i){ m(); } } }However javac does not accept the program and gives the following error:
m(int) in A.B cannot be applied to ()
Another case study we used to evaluate UDITA was a Red Black Tree implementation. You can find the Java and C# sources for the implementation along with all the versions of it with seeded bugs here.
Here are the instructions for running UDITA to test JPF itself (more specifically, to test conformance of the JPF's JVM to a regular JVM). Note that these instructions were written for the old JPF repository hosted on SourceForge; JPF was meanwhile moved to NASA servers and SourceForge repository was discontinued.
svn co -r1849 https://javapathfinder.svn.sourceforge.net/svnroot/javapathfinder/trunk jpf-test cd jpf-test
wget http://mir.cs.illinois.edu/udita/jpf-patch-to-read-rsc-files patch -p0 <jpf-patch-to-read-rsc-files
wget http://mir.cs.illinois.edu/udita/jpf-udita.tgz tar xfvz jpf-udita.tgz
./run-jpfvsjvm-generators-and-testing
The above downloads also get the files needed for generating programs for testing refactoring engines in Eclipse and NetBeans and for comparing ASTGen and UDITA:
./run-astgen-comparison-generators
./run-new-refactorings-test-generators