Static Testing

AKA Traceability. This is the mapping of requirements through the SDLC (software delivery life-cycle) to ensure that they are included at each stage of the process.

Many projects fail to implement static testing effectively and this results in far higher levels of defects and rework at all stages of testing than there really should be. This is always a particularly difficult job when delivering a large volume of change such as in a waterfall project. It is much less arduous in an agile project as the changes are much smaller making the mapping effort far more manageable. However it is a process ignored at the peril of the project.

When considering the steps that occur in software delivery at the most abstract level then a degree of mapping is done tacitly by the team member responsible for completing each stage of the process. A static test is a checklist for each phase that ensures that every item in the previous phase of delivery has been accounted for in the subsequent phase.

This process should be incorporated into the delivery process and include a level of peer review. When completed after the fact the effort of producing evidence of the mapping is greatly increased which is where these processes tend to either get abandoned or burn so much resource that they become an inefficient use of time. Ideally you want to be able to provide evidence to a reviewer (and yourself) that you have identified and delivered an element in the current phase for each element in the previous phase.

Traceability diagram