Properly testing your code

Un fructueux échange d’expérience a lieu sur Slashdot au sujet de l’art et de la manière de tester des développements informatiques. En voici l’essence :
– La revue de code est le moyen le plus rentable d’entre tous pour identifier des défauts.
– Le meilleur livre sur la revue de code est « Software Inspection » de Tom Gilb (en anglais), le site http://www.result-planning.com de l’auteur complète fort bien cette lecture.
– Pour garantir un code robuste, même en développement procédural, on doit adopter une philosophie objet lorsqu’il s’agit de test : chaque appel à une fonction devrait tester systématiquement que le retour correspond aux attentes.
– Le véritable objectif des tests ne doit pas être d’identifier et de corriger des bugs mais d’identifier et de corriger des défauts dans le processus de développement.
– La mise en place d’un contrôle qualité ou de testeurs distincts des développeurs peut avoir pour effet pervers que les développeurs feront moins attention à la qualité dans la mesure où ils savent qu’ils bénéficient d’une protection a posteriori.
– On peut évaluer statistiquement a priori le nombre de bugs présents dans un développement en introduisant des bugs volontaires avant la phase de contrôle, en mesurant la proportion de ces bugs qui aura été révélée par le contrôle et en en déduisant le nombre total de bugs qui doit échapper au contrôle.
– Les tests ne permettent pas de prévenir les défauts mais seulement de mesurer la qualité.
– Il est beaucoup plus rentable d’éviter de produire des bugs que de les corriger.
– La revue de code par un oeil extérieur ajoute 10% au coût de développement mais permet d’économiser 50% du coût de débuggage.
– La mise en place de testeurs indépendants des contrôleurs permet de créer un esprit d’émulation si l’organisation est bien faite.
– La présence d’un bug dans un produit est un révélateur d’une limite de la méthodologie utilisée pour produire ce produit.
Beaucoup d’autres choses encore ont été dites dans cette discussion que je vous invite à consulter (inscrivez-vous sur Slashdot pour pouvoir afficher les contributions par ordre décroissant de pertinence).