Importance of test documentation

An aspect of testability is the ease with which tests can be executed, including testers who did not originally write the test cases. The reusability and maintainability of tests, part of testability, are improved with the existence of quality test documentation. When dealing with a large system, it can be difficult to remember all of the business rules and alternative paths related to a particular scenario.

With agile software development methodologies, excessive documentation is viewed as a project risk rather than something that will reduce risk. Project teams aim to be efficient with documentation and produce only as much as is needed. In addition, automated tests should be fairly self-documenting through things such as the test method names, test class names, and comments.

However, there are many different types of testing beyond automated tests that need to be conducted, and some can be quite involved. There can be complexity in the business logic, in the inputs and outputs of tests, in the data that is needed to set up particular tests, and to ensure adequate coverage on a variety of business scenarios. Some form of test documentation can really be of benefit.

Resources can, and more than likely will, change over time. An employee may leave an organization, or testers simply get different assignments over time and a piece of functionality isn't necessarily owned by a single tester. Testing documentation allows different testers to use the test case over time and it facilitates such transitions so that quality is not sacrificed.

To add to that point, it is increasingly common for development departments to outsource development work, including testing. Not only may you have to deal with outsourced resources changing, but testing tasks may need to move from internal resources to outsourced resources, and vice versa.

Documentation of artifacts such as designs and tests is very useful so that new resources can get up to speed quickly. It's basically the concept of tribal knowledge and being able to pass on things that have been previously learned to others. Projects with good documentation typically demonstrate a higher level of organizational maturity and contribute to the project's overall success.