When we write software, we're very good at getting requirements and turning them into code. To turn that beautiful code into working software we need to deploy and test it. Often, we fail to emphasize the latter as well as the former. Do you have a backlog of "code complete" software waiting to be deployed, tested, signed-off and made live?
In test automation, code involved in testing is not only test logic, but also a bunch of other supporting code, like URL concatenation, XML parsing, UI, etc. Test logic can be buried in this unrelated code, which has nothing to do with test logic itself, making test code hard to read and maintain. In this article, the layered architecture of test automation is presented to solve this problem.
'Release It!: Design and Deploy Production-Ready Software' by Michael Nygard, which is nominated for a 2008 Jolt Award, discusses what it takes to make production-ready software and explains how this differs from feature-complete software. InfoQ spoke with Nygard about the areas that the book covers and some questions around how the book's philosophy fits in with concepts such as Agile.
Continuous Integration has become a standard development best practice - but it's not always done well. InfoQ presents advice and examples in Chapter 6: Continuous Testing from a new CI book. 4
Mark Figley talks about enforcing coding standards and best practices in an automated fashion through the build process. 5
Can refactoring and TDD create “working software” that survives real life? Michael Nygard suggests that "leaky abstractions" ambush us at 5AM when we've paid too little attention to architecture. 25
Today, almost every modern application consumes or produces XML. Stefan Bodewig explains the challenges in testing XML-based applications, and shows how to use the XMLUnit Java Framework to do so. 8
Agile software development, shunning up-front design, has grown up in parallel to the emergence of "user-centered design," with its detailed user research and modeling. Can these be used together? 7