Whitepapers

White Paper | Accelerate the Move from Waterfall to Agile Development (PDF)
In a traditional waterfall development process, code quality is often controlled primarily with system tests run by a quality assurance (QA) team, that commonly drive the application through its user interface. Today, software development processes for many organizations are transitioning to an Agile development approach, which uses developer-run continuous testing as a key to controlling code quality. This raises the challenge of creating a large volume of unit tests, that can be run automatically and frequently by programmers to help ensure that the code actually does what it is supposed to do.

A new generation of JUnit generators delivers unit-level regression tests, also called fast tests, that can provide near-complete unit-level code coverage at the push of a button, providing a substantial boost to development teams that have moved to or are planning to move to an Agile process. Read more...

White Paper | Utilizing Fast Testing to Transform Java Development into an Agile, Quick Release, Low Risk Process (PDF)
System tests, often called slow tests, play a crucial role in nearly every Java development effort by making sure all the different parts of the system work together as expected to meet the requirements of the end user. But the complexity and long run time of system tests mean that they can usually only be run on a limited number of cases and infrequently during the development cycle. On the other hand, unit tests, often called fast tests, are short and specific tests that exercise specific building blocks of the code on various inputs to be sure they return the right results. Read more...

White Paper | Measuring Risk to Improve Java Software Quality (PDF)
The resources available to ensure the quality of a software project are nearly always limited. So it’s important to know the potential for a certain method, class or project to possess quality problems in order to prioritize testing, reengineering and bug fixing efforts. Read more...

White Paper | Observation Driven Testing: Yes, the code is doing what you want. By the way, what else is it doing? (PDF)
Observation-Driven Testing (ODT) is a development methodology for organizations intent on maximizing the effectiveness of development teams while also maximizing code quality. ODT is complementary to, yet not dependent on, the widely adopted Test-Driven Development (TDD).

It has been observed that TDD is an excellent methodology for developing “clean code that works” (Ron Jeffries). Its many strengths include the ability to create code that does only what you want and to create a thorough set of automated tests. However, by itself, TDD is incomplete as a coding and testing methodology because of the fact that it creates code that does only what you want without taking into account unintended side effects. ODT fills that void, using automated tools to test the behavior of code and providing developers with actionable observations about possible unintended side effects. Read more...

Application Note | software agitation: Your Own Personal Code Reviewer (PDF)
‘software agitation’ refers to the process of exercising your code by automatically creating dynamic test cases, synthesizing sets of variable input data against such test cases, and analyzing the results. ‘Agitation’ provides a unique interactive understanding of code behavior as a Developer writes or modifies Java classes or methods. To fully and completely unit test code, every line and every branch outcome must be tested. That is a daunting problem. It’s simply not practical, and too time consuming, to create such exhaustive tests manually, even with the assistance of, and collaboration with, code review peers… who have their own time constraints and deadlines. Read more...

Early and Often: Avoiding Security Flaws with Continuous Integration with High Code Coverage (PDF)
Security vulnerabilities are caused by flaws in code that are exploitable and are not caught before software is released. There are tools available to try and find such vulnerabilities after they have been coded, but these tools are often used after software changes are migrated to the later integration/testing phases of development. Software flaws would be much easier to find early, and less likely to occur at all, if the software is being properly analyzed and tested in a continuous integration environment with tests providing a high level of code coverage. Such a process complements and enhances the value of static analysis tools that scan code for known security flaws. Read more...

Case Study: AgitarOne Ensures Quality of Outsourced Software Development at Major International Bank (PDF)
One of the major international Banks has adopted AgitarOne technology for delivering generated unit tests for their Java software development. The Bank services millions of customers and is a leading provider of current accounts, savings, personal loans, credit cards, mortgages, etc. AgitarOne was able to substantially reduce the cost of software development and significantly improve the software quality process.

Through implementation, the bank discovered enormous financial gains in uncovering defects and reducing software complexity in the code base being maintained by their various outsourcers and contractors. We tell the story here about why AgitarOne was purchased, what was found, and how it assists management with the software development and quality process today. Read more...

Coding In Quality for Business Agility - An IDC Whitepaper(PDF)
Written by Melinda Carol-Ballou, Program Director of Application Lifecycle Management at IDC, this whitepaper describes the importance of "coding in" quality for business agility, and how effective, iterative unit testing should be a critical component of any company's approach to ensuring software quality. Read more...

Getting Your Software to Meet Your Business Goals - An Agitar Executive Summary (PDF)