3.2. Central Test Database

It is highly advisable that organizations maintain a central database of tests. These tests would form a regression library, documenting the knowledge acquired by the organization over time. Outside of the standard documentation benefits (training, risk assessment, etc.), this has several key benefits:
  • More thorough testing over time
  • Preservation of knowledge
  • Training Tool
Over time, as the expectations of users will be forgotten. This can occur because people come and go, or simply because people forget over time. There is a very low probability that anyone is going to remember that there was a key requirement of there being a minimum font size of 26px on a component 1 year after the initial development was complete. By putting that requirement in a standard checklist that people have to validate against, everytime they modify the component, it will act as a reminder when someone has to make a change in the future. This puts an end to people not understanding the full ramifications of changed specifications.
On the flip side, when a developer sees an odd piece of code, they may be hesitant to undo it, thinking there must have been a good reason to have done that. This level of documentation puts an end to the fear of making changes because “It must have done that for a good reason”. You know the reason, it is in written in the test, and you can confidently proceed to change the specification if required.
By putting the documentation in a single location, shared among all stakeholders, you significantly reduce the probability that any changes to the system will not be replicated through to other stakeholders. The maintenance of a list of bug reports, test reports, and specification reports means that changes to one set of documentation is not replicated through to the other datasets. A Central Test Database reduces this by becoming the authoritative data repository: everyone is required to keep the central repository up to date. This means that changes get replicated out to everybody immediately.
Some of this work has already been done.
Currently, the central repository of data is the “CompTests” project, consisting of automated tests and written documentation. The written documentation serves as the shared knowledge base of tests for everyone on the project. See “Writing an Automated Test” for more information on creating documentation.