Reducing knowledge debt by aligning tests, functional models and technical documentation
We integrate knowledge management in testing
In a Recover project we design and execute tests on the system as usual. However, as additional value, we recover (if not enough quality documentation exists) a knowledge specification of the system under test in the form of (structural and behavioral) UML models, that represent the functional requirements of the system that we are testing. We also validate and maintain them up-to-date.
In this way, the system knowledge that is incrementally obtained by testers is specified into an accessible knowledge repository that is delivered to the customer. Recover also allows the generation of technical functional documentation in the form of HTML web pages or textual documents. This documentation is aligned with tests and it is useful for many development, maintenances, QA and transformation activities.
Recovering of the functional model that captures the knowledge acquired by testers during experimentation
The Recover solution generates a system knowledge model that specifies the knowledge that is incrementally acquired through testing. The test-driven generated model represents functional requirements as UML diagrams and auto-generated natural language.
Structured specification of test cases in alignment with the system functional model
Test cases are specified in a structured form in Recover, in alignment with a knowledge model that is incrementally obtained. In this way, test cases are based in a common and non-ambiguous domain language.
Automatic generation of up-to-date technical documentation (in HTML navigable format or documents)
Recover automatically generates up-to-date versions of technical documentation from the obtained system model. This documentation is delivered in several formats to the customer to be used by professionals that require to know the functional knowledge of the system for better work (development, maintenance, QA, transformations...).
Validation of the alignment between the knowledge model of the system and the test cases
Recover maintains the alignment between requirements ant tests. The solution includes an engine that is able to check if tests are executable with the defined knowledge. The inspection of the model allows analyzing the scope of the testing project and identifying untested knowledge.
Autogenerated system models and documentation evolve according to tests. Tests evolve according to the documentation.
When adding/modifying tests, we are able to detect the knowledge to be added/modified in the model. If functional changes are communicated, we can change the model and, then, Recover is able to identify the impacted test cases to be refactored.
An iterative and colaborative solution
Recover is a solution that facilitates colaboration. It can be applicable into traditional software engineering methods and agile methods since the model and the documentation are obtained and validated incrementally as the testing project moves forward.