Dawid Weiss shares academic and industrial background: for over a decade he used to be an associate professor at the Institute of Computing Science of Poznan University of Technology in Poland, then he co-founded Carrot Search, a company that provides commercial services revolving around text processing, text mining and text clustering. In his spare time Dawid likes to code stuff in various programming languages and technologies.
We have been taught that unit tests should be repeatable and most people (including the author) for a long time considered this an equivalent to "static", single-path execution. Solr and Lucene employed an interesting JUnit runner strategy where tests are randomized -- run with various data, various implementation of allowed interfaces, various configurations. The number of combinations makes running all of them as individual tests and execution randomization proves very successful at pinpointing implementation and regression bugs. This talk will provide an overview of this approach and practical considerations on when and how to port them to your own projects. The presentation is based on an open source scaffolding code for running randomized tests and for running tests on separate parallel JVMs.