Create a Quality Testing Program (Continued)
Tools Alone Are Not Enough
It should go without saying that any testing regime should apply a formal methodology that provides direction and focus to the efforts. Testing-oriented methodologies such as Extreme Programming (XP) and test-driven development (TDD) put testing in a critical role in building applications. Doing so makes testing on par with development and an equal partner in the venture.
XP is a model of how you might achieve such cooperation. It places a premium on the production of working code rather than documentation of the process and results. Testing plays a big role in XP; tests are written prior to writing code, so when all the tests have been passed, the coding is complete. If the application doesn't pass a test and defects are found, more tests are written. Often these tests are unit tests, written to determine if any logic errors exist.
But XP also defines acceptance tests, which are black-box tests in that they simply compare expected outputs with actual ones. Acceptance tests focus more on function than the underlying logic, and help determine if an application does what it should.
Test-driven development (TDD) is an offshoot of XP that incorporates the testing strategies of XP while not adhering to all aspects of the methodology. TDD requires that tests are written before coding the application and run often during development. If an application fails a particular test, it indicates a flaw in the application. More tests can be written during development, but none can be taken away. Once again, when an application passes all of its tests, it is done.
Testing isn't usually the glamorous part of the software development lifecycle. After all, it's the practice of finding imperfections in someone's creation. But that doesn't mean it's not important, and that it's not a science and an art. Testing enables applications to deliver what they promise, and it's through a thorough testing program that end users can feel confident in relying on software for their jobs.
But successful testing is done in partnership with development, and that partnership treats both building and testing applications with equal importance. Using the same tools across these application lifecycle stages, sharing data, and collaborating according to a defined methodology, both groups can work together with the common goal of building reliable, high-performance, and scalable applications.
About the Author
Peter Varhol is a technical evangelist for Compuware Corporation. Contact Peter at email@example.com.
Back to top