Shaking up the market for testing

Written By:
Published:
Content Copyright © 2007 Bloor. All Rights Reserved.

The Italian word meaning to shake up is agitare: hence the name of Agitar, a company that first came to market in 2004 (it wad founded in 2002) but is still relatively unknown outside of the United States, although it has recently opened offices in the UK and Germany and elsewhere.

The first generation Agitar product was called Agitator but last month it released its second generation product called AgitarOne. This adds two significant capabilities to what was previously available. But perhaps I had better go back a step and describe what Agitar does.

Agitar provides automated unit testing. This is, or is almost, unique: most of the big boys in the testing world tend to focus on functional testing, load testing and so forth and unit testing tends to get the short end of the stick. In particular, the usual approach to ensuring code correctness is to give the responsibility for this task to QA. But this means testing after the event. And we all know (or should know) that the later you catch problems the longer it takes and the more expensive it is to fix them. The solution therefore, is to make developers responsible for unit testing, which needs to be done on an iterative basis. I’ll come back to this in a moment: first, I want to describe the basic value proposition that Agitar offers, which is known as agitation.

What agitation does is to exercise your code. It generates data to pass through your code, monitors the results, checks which paths have been tested, modifies the data it is generating to check other paths and then presents its observations back to the developer by means of a dashboard. There are also some 250 pre-built coding rules (which you can turn on or off) that you can apply to ensure that code is meeting relevant standards.

When observations are passed back to the developer you may find that the code is performing as expected or not. In the latter case, you will need to look at the code again but in the former case you may want to proceed with conventional testing. This is where we come back to the developer being responsible for testing.

Now, in the Java world (and Agitar only works with Java) the standard method used for unit testing is to download JUnit, which is freeware, and to deploy that. But JUnit is only a framework and you still have to write and maintain your own scripts. While certainly making things easier, JUnit is still too time consuming for most developers to bother with. What AgitarOne does is that, after the agitation process, if results are as expected, then you can use the results of agitation to generate JUnit tests to detect behaviour changes whenever the code is subsequently modified.

The second new feature of AgitarOne is that the company has added a Continuous Integration and Test module. Here, the idea is that you check-in relevant tests (Agitar supplies some 35,000 assertions and 15,000 JUnit tests) along with your code and then these can be tested overnight, say, with a report of key observations ready for the start of the next working day.

In practice, Agitar reports that between 40 and 60% of all code can run with automatically generated tests without change. In the other cases, the Agitar software will need help (typically because the code is either badly written or very complex) to understand the software and, for these cases, the company provides tools to help the developer to teach Agitar which tests to run.

Finally, note that AgitarOne can be used with existing code. One of the problems with existing Java applications are that they can be very fragile. AgitarOne will allow you to test these, and move forward with them, without breaking them.

To conclude: Agitar is a specialist in the testing world but it is a specialist in an area that is largely ignored. It is ignored because it is difficult and time consuming. Agitar makes it simpler and shorter.