If you have done any Extreme Programming, you probably know
that unit testing is one of its fundamental aspects. Moreover, in an ideal work
environment, the test cases should be automatic, they should test everything in
every class, and guaranteed to work all the time. Unit testing can be a
nightmare; you need to write lot of test cases. It will be nice if software
engineers test their code as they write it, it's called 'developer
testing'.
|
Thanks to Agitator, an intuitive test environment for Java
developers, developed by Agitar Software, that provides a new approach to
testing and agile development. Agitator enables organizations to test and manage
Java apps throughout the development lifecycle. Using Agitator is much more
beneficial than manually generating test cases.
With Agitator, you can analyze Java bytecode and observe
the behavior of each class and method in a variety of circumstances. In minutes
you can create durable test assets that would otherwise take hours or days. Bugs
discovered earlier in the lifecycle often cut cost and development time than
bugs found toward the end of development (system testing, load testing) or even
worse, post deployment.
Agitator comes with a set of command-line tools and a set
of corresponding Ant tasks that you can use to automate regression testing as
part of your regular build process. Using these tools, you can choose to agitate
classes based on different criteria's, for instance, classes that have changed
or only classes with changes to agitation configuration etc. Agitator further
helps in streamlining regression testing by monitoring just a specific class
rather than an entire project. Agitator saves generated objects in the object
pool so that it can reuse them in future method calls. As part of this process,
Agitator automatically adds new test cases as the code changes to ensure that
any tests stay up to date. Black-box testing by third parties is potentially
very powerful, but it can be ineffective if the code doesn't work properly when
delivered and QA resources are wasted finding trivial coding faults.
We tested Agitator on Windows XP and integrated it with the
Eclipse. We appreciated its support for Java SE 5 for mapping generic types,
autoboxing, enumerators among several other features. We were impressed to find
the plug-ins for Struts and Log4j. Agitator is also capable of identifying an
item's state before and after a method call. This allowed us to form
assertions that tracked how a variable's state changed. We unit tested the
MedTracker application, and the
results were awesome. We used checkpoints. A checkpoint is a high-level summary
of a set of agitation results at a particular moment in time. Checkpoints
provide a baseline for comparison. You can use them to chart progress over the
lifecycle of a project. When you have saved one or more checkpoints, you can
compare your current status with any previous checkpoint. Large development
teams can leverage from Agitar's Management Dashboard which aids in testing
and can use these checkpoints to show which classes are new, which ones have
been modified, and which ones are unchanged since the checkpoint was saved.
Overall, a nice unit testing tool with rich functionalities.
Bottom Line: An award winning Java unit testing tool
for developers, which not only automates testing, but helps to
identify bugs during early stages of software development cycle and create
powerful regression suites.
Kunal Jaggi