# Introduction au test logiciel

Ce livre s'adresse aux développeurs qui souhaitent gagner en efficacité, produire un code meilleur et réduire le temps et l'argent perdus, passé à chercher et à corriger des bogues qui auraient pu être décelés plus tôt.
* Ce wikilivre s'adresse aux lecteurs qui suivent des études supérieures. (niveaux 12 à 17)
* Une version imprimable du livre « Introduction au test logiciel » est disponible. (voir/ modifier)
* Une version PDF de ce livre est disponible.
Il vise à vous présenter les techniques du test logiciel, discipline du génie logiciel (plus particulièrement, de la qualité logicielle) mise au point et améliorée par de nombreux développeurs d'horizons divers. Aujourd'hui, ces techniques sont devenues incontournables :
* Elles sont au cœur des méthodes agiles telles que l'extreme programming ;
* La méthode CMMI préconise d'avoir, au sein des projets, des personnes dont c'est l'unique rôle ;
* Tous les langages ont leurs outils de tests, certains langages (D) intègrent même des notions de test logiciel nativement ;
* Tous les frameworks Web de la dernière génération intègrent des outils dédiés aux tests (le précurseur Ruby on Rails en tête) ;
* Tous les outils de construction (Ant, Maven, Rake) incluent une phase de validation du code par les tests.
Ces outils font dorénavant parti de la panoplie du développeur, au même titre que les IDE ou qu'un bon gestionnaire de version.
Ce livre se veut neutre vis-à-vis de la technologie et s'adresse à tous les développeurs qui emploient des langages objets. À chaque technique abordée, nous fournissons une liste d'outils pour que vous puissiez la mettre en œuvre immédiatement, dans votre langage préféré. Toutefois, cette neutralité ne place pas le présent livre loin de la préoccupation essentielle des développeurs : le code. Aussi, afin de rester neutre mais accessible et pragmatique, nos explications sont illustrées par des exemples concrets : du code ! C'est pourquoi nous avons choisi d'insérer des exemples en Java, à chaque fois que cela s'avère nécessaire.
Avec ce livre, vous découvrirez les motivations et les bases de cette discipline. Au fur et à mesure des chapitres, nous allons voir les nouveaux problèmes qui se posent lorsqu'on veut tester une application complexe et comment les résoudre. Vous aurez finalement vu un panorama d'outils et de techniques qui vous permettront, dès les premiers chapitres d'améliorer votre code.
Le test étant une discipline trop vaste pour être traitée dans un seul ouvrage, ce livre reste une introduction. Toutefois, nous nous sommes attachés à en donner une vision générale et approfondie mais certainement pas exhaustive. Il s'agit de vous donner les éléments pour qu'à terme, vous puissiez choisir, en connaissance de cause, vos propres outils et techniques : ceux qui conviennent à votre projet à votre façon de développer. Enfin, Le test logiciel reste une discipline au périmètre flou, qui peut soulever d'infinies problématiques et autant de solutions : personne ne peut tout savoir sur ce domaine, alors quoi de mieux pour ce livre que de l'écrire à plusieurs ?

## Sommaire
### Participez !

Vous aimeriez avoir une édition de ce livre avec des exemples en Ruby, Python, PHP ou votre langage préféré ? Nous pouvons vous y aider, lancez-vous !
* Introduction
* Tests unitaires
** JUnit
** PHPUnit
** SimpleTest
** Behat
* Doublures de test
* Tests et conception
* Qualité des tests
* Intégration dans le processus de développement
* Problématiques de tests
* Tests d'intrusion
* Conclusion

## Voir aussi

* Bug logiciel inhabituel sur Wikipédia