Automation and agile
The agile manifesto places tremendous importance on usable code over conventional documents. It encourages practices such as extreme programming, which is a type of agile software development practice that improves software quality and makes the software development more responsive to the ever changing customer requirements. Amongst other important tenets of this practice is the automated acceptance testing. An acceptance test is simply some code that can be run and captures at its heart some aspect of the functionality of the system. The idea is that both the developer and the stakeholder collaborate on writing this test together, to capture the requirements in the code, which when passed, forms some kind of seal of approval. These are distinct from unit and integration tests as they are largely written by the developer, and for the developer. They help them emerge, validate design, and protect against errors. Acceptance tests are written by the stakeholder and the...