Living documentation is a dynamic method of system documentation that provides information that is current, accurate and easy to understand. Feature files that are written in a natural language format may serve as the core of living documentation. Each file describes how a particular piece of code is supposed to behave, gives an example and describes the desired outcome. Business stakeholders can review the documentation to ensure that it describes the desired behavior of the system from a logical standpoint. Developers can use the information to help them program only what is needed, making the code as lean as possible. Testers can use the documentation to help create tests and confirm that results meet requirements, and Operations can rely on the same information to support ongoing maintenance operations in the production environment.
The living documentation approach is commonly used with behavior-driven development (BDD) and specification by example (SBE). With these methodologies, executable specifications such as automated acceptance tests are often written in a way that permits them to serve as documentation. Because automated tests are run on a routine basis, any change in the software will necessitate a change in the living documentation. In this way, the process of testing ensures that the associated documentation is always up to date.