Having a full test suite with good coverage for your large application is an essential tool for maintaining code reliability and programmer sanity, but despite this, many projects still neglect this
... [More]
important aspect of software development. In pondering this programming paradox, I came to understand two fundamental axioms of software development:
1. Software developers are pompous *******s who truly believe their code is simply too elegant and efficient to necessitate testing, despite half a century of testament to the contrary and a bulging bug list.
2. Writing unit tests is simply not much fun.
Unfortunately, no software tool will ever be capable of bending the average software developer's ridiculously inflated ego, but a tool that can provide a comprehensive test suite without requiring the writing of a single test ... well, at least it's a Turing-computable problem.
Terot began life as a project to teach myself the intricacies of Java generics & reflection, but somehow grew into a project that taught me generics and reflection, AND was available for free on Google Code. The basic premise is that by injecting essentially random data into your methods and recording the results, you can identify behavioral changes in your application's logic and predict future problems before they occur. To this end, The Goal of the project is to develop a tool that provides the most generally useful test analysis as possible, while requiring a hard limit of half an hour to set up on a project of arbitrary size. [Less]