On estime que les développeurs de logiciels commettent 100 à 150 erreurs pour chaque millier de lignes de code.4 Selon un rapport du Consortium for IT Software Quality (CISQ) : « Même si seule une petite fraction, disons 10 %, de ces erreurs sont graves, une application relativement petite de 20 000 lignes de code comportera environ 200 erreurs de codage graves. » 5
Les tests logiciels sont essentiels pour isoler et atténuer les erreurs. Un bon processus d'assurance qualité peut révéler des centaines, voire des milliers de défauts, et les équipes de test doivent tous les gérer. L'intégration du suivi des bugs dans le workflow des tests améliore l'efficacité en aidant les testeurs à établir des priorités, à surveiller et à rendre compte de l'état de chaque erreur.
« Le suivi des défauts permet de s'assurer que les bugs trouvés dans le système sont effectivement corrigés », explique Yvette Francino, consultante Agile. « Les outils de suivi permettent non seulement d’assurer un suivi, mais aussi d’obtenir des indicateurs précieux. En fonction de l'outil utilisé, l'équipe peut relier les défauts au code modifié, aux tests ou à d'autres données qui permettront la traçabilité ou l'analyse des tendances en matière de défauts. Si un module est truffé de défauts, il est peut-être temps de le revoir et de le réécrire. » 6
Idéalement, les tests devraient être effectués le plus tôt possible, lorsque les bugs sont plus faciles et beaucoup moins coûteux à corriger. Une étude antérieure d'IBM a montré que les défauts détectés après la production ou la publication peuvent coûter 15 fois plus cher à corriger que les erreurs résolues au début du développement.
De nombreuses équipes utilisent désormais une méthodologie connue sous le nom de tests continus. Dans ce cas, des tests de qualité sont effectués à tous les stades du développement avec des commentaires, depuis la conception et le codage jusqu'au déploiement. Les technologies modernes comme l'intelligence artificielle (IA), elles aussi, peuvent faciliter le processus de test en détectant et en analysant les bugs dès le début du cycle de vie.