Des tests logiciels efficaces peuvent permettre d'économiser de l'argent et des efforts en attrapant les problèmes avant qu'ils n'arrivent très loin dans le processus de développement du logiciel. Il est connu que plus longtemps un défaut reste non détecté, plus il est coûteux à réparer. Les tests constituent donc une partie essentielle du processus de développement. Ils peuvent également être coûteux et exiger beaucoup de travail, en particulier lorsqu'ils sont effectués à la main. On estime que l'effort total de test d'un logiciel consomme au moins la moitié de la main-d'œuvre globale d'un projet. L'automatisation peut rendre la plupart des tests effectués par une organisation plus précis et moins coûteux que si l'on se contentait de mettre plusieurs personnes dans une pièce et de leur faire exécuter des tests à partir d'un script papier. Elle permet également au personnel chargé des tests d'effectuer des tests plus spécifiques et plus approfondis que ce qui serait possible autrement. Cet article se concentre principalement sur les techniques d'automatisation des tests logiciels et sur la manière dont l'automatisation peut améliorer l'efficacité d'une équipe logicielle ainsi que la qualité du produit final.
Bien que l'automatisation de certains types de tests logiciels puisse augmenter considérablement la productivité et l'efficacité des projets de développement logiciel, il est rare que 100% des exigences puissent être couvertes par des tests automatisés. Certains tests sont encore mieux réalisés à la main car les testeurs humains sont bien plus flexibles et créatifs que n'importe quel programme informatique. L'automatisation permet aux testeurs humains d'approfondir le système en les dispensant d'effectuer des tâches répétitives pour lesquelles l'utilisation de l'automatisation est plus appropriée.
Avec un peu de coopération entre les développeurs et les testeurs, le code logiciel peut être rendu plus testable. Le codage pour la testabilité est une considération clé pour les programmeurs travaillant dans un environnement de développement Agile. Par exemple, dans mon exercice pratique avec le programme Recipe Box, j'ai démontré comment les composants de l'interface graphique qui sont déclarés comme étant des membres de classe privés peuvent quand même être testés avec un script de test maison sans violer les principes clés de la programmation orientée objet ou recourir à des solutions de rechange douteuses.
Le test automatisé de logiciels est un projet de développement de logiciels à part entière, et devrait être traité comme tel, afin d'inclure tous les processus habituels de développement de logiciels, tels que le contrôle de version, les revues de code, les normes de codage, et ainsi de suite. Des suggestions ont également été faites dans ce document sur la façon dont les coûts associés aux efforts d'automatisation peuvent être minimisés.
Il existe de nombreux outils préemballés pour aider les testeurs à créer des scripts de test. Certains d'entre eux, proposés par des vendeurs commerciaux, peuvent être coûteux, tandis que d'autres outils sont à code source ouvert et donc gratuits. En fait, la communauté des logiciels libres est à peu près aussi capable que les vendeurs commerciaux de produire des outils de test de logiciels de haute qualité.
L'intégralité de la thèse de maîtrise peut être consultée ici (PDF en anglais).
1. Cookies fonctionnels
Nous utilisons des cookies fonctionnels pour garantir la fonctionnalité de base du site web.
2. Cookies de performance et de statistique
Nous utilisons Matomo pour analyser et améliorer notre site web. Des cookies permettent une collection anonyme des informations qui nous aident à vous offrir un visite clair et facile à utiliser de nos pages web.
This cookie contains a unique, pseudonymized visitor ID internal to Matomo for recognizing repeat visitors.
This cookie is used to track from which website the anonymized user proceeded to any page or sub-page.
The Matomo session cookie is used to track the visitor's page requests during the session. The cookie is automatically deleted at the end of each session (website visit), at the latest after one day.
is created and should be then directly deleted (used to check whether the visitor’s browser supports cookies).
short lived cookies used to temporarily store data for the visit.
short lived cookies used to temporarily store data for the visit.