The Obsidian project, an open source unit test generator built for the JUnit framework, has been in development for two years at the College of Charleston's Cyber Infrastructure Research and Development Lab for the Earth Sciences (CIRDLES). Using open source components such as JUnit and Netbeans, Obsidian concentrates on building standardized test implementations that are comprehensive and easy to maintain.
It was originally conceived by senior at College of Charleston, Hunter Hegler, when he was writing unit tests for a Java project. Categorizing the common elements he came across when generating unit tests led him to believe that he could automate the process.
In order to do this, Obsidian employs a set of design patterns that are built around a method test's necessities for compilation, exception handling, and test case iteration. Obsidian also provides the test engineer with tools for defining equality between two objects on the global, package or class levels. Defining test cases becomes much quicker and easier once one is used to the patterns used in Obsidian, resulting in automated tests that are clear and easy to maintain.
Previously, developers would spend a lot of time and effort into the development of automated unit test generation techniques in order to produce meaningful test cases, only to plug them into simple, sometimes non-comprehensive, test implementations. This would result in difficult to understand and maintain unit tests, belittling the effort to produce meaningful test cases and not allowing tests to reach their full potential.
Team Obsidian was created in order to take the project from a personalbit of code, to a fully functioning Open Source Project.
A recent showcase of the project at the Palmetto Open Source SoftwareConference (POSSCON) resulted in a lot of positive buzz for the Obsidian Project. Many developers are looking forward to Obsidian in other languages, and the team plans implement Object Oriented Languages in the future.
We hope that we can build a community around Obsidian and that we will continue to contribute to it for years to come.
—Hunter Hegler, Creator of Obsidian
Visit Obsidian's website and get involved. Links to the project's GitHub and Twitter can be found there, as well as a downloadable Obsidian .jar file. If you want to jump in and develop, check out the contributing page on the project's GitHub repo page. You should also feel free to introduce yourself on our user, or developer mailing lists, where you can get in contact with people who help get you started.