InfoQ

News

Interview with Alberto Savoia on AgitarOne, a unit-testing solution

Posted by Rob Thornton on Nov 28, 2006 08:00 AM

Community
Java
Topics
Unit Testing
Tags
Agitar

Agitar recently released AgitarOne and InfoQ sat down with Alberto Savoia, CTO, VP of Engineering, and co-founder of Agitar to talk about the new product.  AgitarOne is a unit-testing product that provides generated JUnit tests to cover legacy code or to provide additional regression tests.  AgitarOne also includes Agitation, a process that will dynamically generate and run test cases by testing boundary conditions.  Code coverage, code rules, and continuous integration (using CruiseControl) are also built-in and all results are displayed on the provided dashboard.

First, Savoia described the key differentiator AgitarOne was for a company that was already behind unit testing with JUnit / TestNG and CruiseControl.

Almost all our customers are already believers in developer testing and are already using JUnit, but want to achieve greater efficiency and more thorough testing. We don't replace JUnit, we complement it. You see, testing is a combinatorial problem; we have found that it takes three to four lines of JUnit for every line of Java code in order to achieve 90-100% code coverage. Human beings are great at tasks that require creativity, insight, and domain knowledge; while computers are great at tasks that require repetition, exhaustive searches, etc. AgitarOne allows developers to focus on the aspects of testing that require human intellect and takes care of the bits that will benefit from automation. In my opinion test automation is not a luxury, or an option, but a necessity. Without it, you can't be as thorough or efficient as you need to be. I have a new favorite slogan: "Exhaustive testing without exhausted developers"?.

Next Savoia was asked if a company is just getting started on unit testing, would he recommend focusing on JUnit / TestNG first and then adding AgitarOne, or are they independent of each other?

AgitarOne is designed to encourage and leverage JUnit usage and developer interaction. I believe that every professional Java developer should know how to write tests and should write unit tests for their code. JUnit, and other frameworks and extensions based on it, are very easy to learn and use - there’s really no excuse for not knowing them or using them. For a developer, being able to test using JUnit, is like for an accountant being able to add using a calculator - an essential skill. But to achieve maximum effectiveness, an accountant takes advantage of tools like spreadsheets. The spreadsheet does not replace the accountant, but it helps achieve much greater efficiency by using a computer to do the kind of tasks that computers do best. AgitarOne does for developers what a spreadsheet does for accountants; it allows them to do their job with more effectiveness, efficiency, and thoroughness. I would not dream of hiring an accountant that does not know how to add, or have an accountant working for me without the benefit of a spreadsheet. Similarly, I expect developers to know how to test manually, but to also have the tools to automate and help them with the aspects of testing that benefit greatly from automation.

The discussion moved to integration of AgitarOne into an existing codebase. AgitarOne ships with an Eclipse plug-in, but we asked if there were any plans for integration into other IDEs such as NetBeans or IntelliJ.

AgitarOne is designed to integrate seamlessly, and at any time during the development cycle, and I believe we have made it extremely easy and fast to deploy. The Eclipse plug-in downloads and installs in less than one minute, and you can have your first generated test in another minute or so. Currently we have full and seamless integration with Eclipse and we are exploring ways and partnerships to cover NetBeans, IntelliJ, and other IDEs.

Lastly Savoia provided what he thinks is exiting about the future of software testing.

To me, the most exciting thing about the future of software testing is the excellent prospects for what I call "The Developer Testing Revolution" - the idea that developers should take responsibility for unit testing their own code. Thanks to JUnit and XP (and other Agile methodologies) we have a great chance of making developer testing the rule rather than the exception. But I don't think this will happen without new tools and technology to help the majority of developers cross that bridge. I am thrilled that, with Agitar, I have an opportunity to play a role in the success of this revolution.

AgitarOne version 4.0 is available immediately on Windows and Linux.

No comments

Watch Thread Reply

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.