Our software development projects each need to result, periodically, but preferably as soon as possible, in a deliverable that can be installed, preferably after a sane number of tests have been executed.
These tests should consist of the following levels;
* **Build** tests, to be executed as part of a post-commit response (Herald, Harbormaster, Drydock, Docker)
* **Unit** tests, to be executed as part of a post-commit response (Herald, Harbormaster, Drydock, Docker)
* **Functional** tests, to be executed as part of a post-commit response (Herald, Harbormaster, Drydock, Docker)
* **Install** tests, to be executed as part of a full set of builds of relevant software development projects.
* **Integration** tests, to be executed as part of a full set of builds of relevant software development projects.
* **Performance** tests, to be executed as part of a full set of builds of relevant software development projects.