Tests et TestNG
Pourquoi tester ? 
Tester au plus tôt
Il est intéressant de faire des Tests lors du développement
d'application logicielle.
Cela pour plusieurs raisons:
- Un logiciel est une entité complexe
- Les tests vont nous permettre de réaliser la cohérence du logiciel avec le besoin l'initiant, mais aussi nous permettre de vérifier la fiabilité du logiciel
"Beware of bugs in the above code; I have only proved it correct,
not tried it"
Donald Knuth
"Nos études ont montré que la probabilité qu'un programme corrigé
fonctionne comme avant la correction est seulement de cinquante
pourcent."
Bev Littlewood et Lorenzo Strigini, Pour la science, janvier 1993
Bugs et vie du projet

La courbe ci-dessus est très interressante, car elle nous permet de mettre en paralléle 3 points importants dans le développement d'une application logicielle. Nous voyons les indicateurs:
- Le pourcentage de bugs introduit en fonction de la phase du projet
- Le pourcentage de bugs découvert en fonction de la phase du projet
- Le coût des bugs en fonction de la phase du projet
Attachons nous tout d'abord, au premier indicateur, nous montrant où sont introduits majoritairement les bugs lors d'un développement de projet logiciel: Sur cette première courbe nous voyons que le plus gros des bugs introduits, le sont pendant la phase de codage de l'application (avec un seuil à 85%). Notons cependant qu'à un autre moment cette courbe recommence à grimper mais bien sûr de façon moins importante: il s'agit de la phase de tests de système. Ceci est normal, en effet en corrigeant un code il est toujours possible d'introduire de nouvelles erreurs.
Si nous, nous penchons maintenant sur la seconde courbe concernant la découverte des bugs, nous observons que ceux-ci sont découverts lors des différentes phases de tests. Le nombre de bugs découverts augmente en fonction des phases de tests. Nous remarquons ainsi que le nombre de bugs trouvés lors des tests systèmes est presque le double des bugs découverts lors des tests unitaires.
Enfin la dernière courbe est elle aussi très interressante car elle nous montre que le coût lié aux bugs et corrections de ceux-ci augmente de manière quasi exponentielle. Ce qui nous montre bien qu'il est nécessaire de trouver au plus vite les différents bugs d'une application. D'où l'importance de tester un maximum.