Inspection and Testing as disciplines form subsets of the overall software development process. By their nature they provide feedback on the success or otherwise of the process, hence improving the final
Deliverable from the activity. It makes sense to use the results and metrics obtained, and the information derived from them, as an aid to design in improvements to the development process itself. Many organisations already have activities in place testing various systems, but they do not capture any metrics.
Many do not realise the value of this information, or use it to improve their methods. This article suggests how to utilise this information to improve overall systems development. It is important to bear in mind that we are concerned here with processes and not people.
Looking at the various stages of the V Model, there are stages on the left-hand side which lend themselves to the inspection technique. On the right hand side are outputs and activities which lend themselves to testing techniques.
The tests themselves, the test plan, test cases, test documentation etc., should all be subject to the formal inspection process. Errors are just as likely to be made in these documents as in any other document used in the development process.
Each stage of the inspection or testing process will produce a set of metrics and other information which after some analysis can indicate areas where improvements to the development process can be made.
Process improvement model
Looking at the process improvement model above there are three stages to be undergone after the completion of each inspection or test. The first of these should be to analyse the issues raised and identify the main causes.
The second is to identify improvements that can be made which will avoid a recurrence of these issues in future projects. The third is to implement the changes to the process method.
Let us consider an example of how the process improvement model works in action. If we inspect the outputs from the requirements analysis phase we may find that there are several issues arising. These may show that there are ambiguities and clashes, or that the data gathering exercise was insufficiently rigorous.
Thus the inspection allows us to consider the issues for the current project. But, by invoking the process improvement model we can improve the requirements analysis process for subsequent projects. This should lead higher quality deliverables and reduced rework and costs.
The process improvement model is a simple process. Initially it will add an element of time to the project, however, in a short space of time the gains from continual process improvements and reduced rework should more than pay for this.
Gavin Wilson, OCS Consulting