Les programmes écrits en informatique ont tous pour but de réaliser une fonction bien
précise, cependant à un moment donné de leur cycle de vie et notamment pour ce qui
concerne leur utilisation côté client, des défauts de fonctionnement peuvent être rencontrés.
Suite à ces défauts, des corrections variées ou même complètement des évolutions peuvent
être effectuées, de plus des spécifications de nouvelles fonctionnalités peuvent également être
définies pour des programmes existants d’où la réalisation de leurs évolutions. Toutes ces
actions ont donc forcément un impact sur les programmes concernés mais le vrai problème est
que pour engager toute modification d’un programme, il est nécessaire non seulement d’avoir
un certain nombre d’informations sur lui mais aussi de pouvoir facilement s’y retrouver et très
efficacement et rapidement le modifier à des fins de correction ou d’évolution. Par suite les
tests sont plus simples et plus rapides à effectuer et le programme devient plus rapidement
opérationnel.