Skip to content

gliga/ekstazi

Repository files navigation

Ekstazi

Ekstazi is a tool for optimizing software testing. Ekstazi implements Regression Test Selection (RTS) for Java, which is a technique to detect a set of tests that can be skipped after a code change.

Ekstazi

Developing

If you have Maven, building Ekstazi is trivial:

JAVA_TOOL_OPTIONS="-Djdk.attach.allowAttachSelf=true -Djava.security.manager=allow" mvn install

(-Djdk.attach.allowAttachSelf=true is required from Java 11 and -Djava.security.manager=allow is required from Java 21.)

Building Ekstazi targets Java 8 bytecode specification. The following Java versions were used successfully to build Ekstazi code.

Ekstazi SHA Java Maven
16fffb9e 8; 11; 17; 21 3.5.2

Use

At this point, most of the instructions are located on the official Ekstazi web page.

The table below shows the known working combination. (Although we focus on Java LTS versions, other versions might work as well.)

Ekstazi SHA Java Maven JUnit
16fffb9e 8; 11 ✴️ ; 17 ✴️ ; 21 ✴️ 3.5.2 3.8.2; 4.10; 4.13.2

✴️ Running these configuration requires setting an extra option on command line:

JAVA_TOOL_OPTIONS="-Djdk.attach.allowAttachSelf=true" mvn ...

You need an extra option for Java 21:

JAVA_TOOL_OPTIONS="-Djdk.attach.allowAttachSelf=true -Djava.security.manager=allow" mvn ...

Acknowledgments

The Ekstazi Logo was designed by Vladimir Petrovic. We also thank Aleksandar Milicevic for his feedback on this work and many members of the open-source community (especially Apache Commons Math developers, Apache CXF developers, and Apache Caml developers) for their willingness to communicate with us on topics related to Ekstazi.

Research

If you have used Ekstazi in a research project, please cite the following paper:

@inproceedings{GligoricETAL15Ekstazi,
  author = {Gligoric, Milos and Eloussi, Lamyaa and Marinov, Darko},
  title = {Practical Regression Test Selection with Dynamic File Dependencies},
  booktitle = {International Symposium on Software Testing and Analysis},
  pages = {211--222},
  year = {2015},
}

Contact

Feel free to get in touch if you have any comments: Milos Gligoric <milos.gligoric@gmail.com>.

About

Software testing optimization tool

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages