Baking quality into the product
Automated testing development is in many ways similar to product-based software development. The end goal of an automated testing solution is to validate the viability of another software project. The only real difference is the target audience of the solution created. Just as product code adheres to standards and quality rigor so should the respective test harnesses, and test suites. This helps ensure that test code is managed in much the same way as product code. This shift in mindset raises the software process and architectural considerations. Let's identify some best practices that should be adhered to for testing solutions.
All test code should be committed to source control. It would be wise additionally to create a test directory structure along side the product being tested. This helps ensure that the test code is kept in lockstep version with the product code. Some software frameworks already support this convention directly. Some examples include...