In my previous column, I introduced the problem of application testing and how to integrate it more effectively into the application development lifecycle. In this week’s column, I wanted to spend a little more time exploring some new approaches to this problem.
Some organizations are starting to consider different approaches to integrating their development and testing processes. For example, some developers may be familiar with an approach to application development called continuous integration. If you aren’t, you may want to check out Martin Fowler’s website, www.martinfowler.com for more information and background on it. Continuous integration is basically a practice of extreme programming. Its goal is a fully automated build and test process, which allows teams—and that’s an important part of the process—to build and test an application or project many times in a single day.
The benefits can be many. For example, doing continual builds and on-going testing makes it much easier to identify potential problems before they’re “baked into” an application. It can also increase productivity, since developers are not spending time chasing old errors and testers are focusing the most critical functionality. In addition, the approach can reduce the amount of integration time required to get the application out the door, since individual components have a higher degree of quality and are less likely to cause unexpected problems when integrated with other components.
Taking the approach of continuous integration and doing continual builds of an application or project can significantly reduce the number of problems or bugs that occur later in the release process—but it’s an approach that does require some discipline.
Which brings us to an extension of the continuous integration approach called continuous integrated testing. Continuous integrated testing builds on the approach of continuous integration. Continuous integrated testing is a combined development and testing methodology that enables a unit test to be run while profiling the application’s code—it makes the process more efficient and reduces the level of effort required by individual developers. Continuous integrated testing enables organizations to integrate application components more frequently and it incorporates functional testing capabilities to increase the quality of the final output.
With continuous integrated testing, application testing can start at the beginning of the development phase and not the end—which can have a big impact on those costs of finding bugs that we talked about in the previous column.
-1-