De plus en plus, les entreprises constatent que les méthodes traditionnelles de développement entravent les projets et qu’il est nécessaire d’automatiser les tests pour obtenir la qualité souhaitée.
Les tests constituent la pierre angulaire du développement logiciel de qualité, mais cela ne va pas sans effort. On estime que, dans un modèle traditionnel de développement logiciel, l’assurance qualité correspond à au moins 30 % du travail nécessaire à un projet. Selon ce modèle, les tests sont faits manuellement, ce qui alourdit le processus. Au fil d’un projet, il devient alors difficile, voire impossible, de connaître avec exactitude l’état d’avancement des tâches et le niveau de qualité du livrable. Dans ces conditions, la qualité dépend largement du bon vouloir des programmeurs et des spécialistes de l’assurance qualité (AQ).
À cet égard, l’automatisation des tests apporte des avantages marqués. À l’étape des tests intégrés, l’automatisation évite aux spécialistes AQ d’avoir à faire les tâches répétitives, qui peuvent être très fastidieuses. Dans le cadre d’un projet, par exemple, il n’est pas rare que l’on ait à traiter quelque 2 000 cas de test, au bout desquels on trouvera 1 000 anomalies. Des correctifs sont apportés et l’on exécute de nouveau les 2 000 cas, qui révèlent cette fois quelques centaines de bogues, dont certains que l’on croyait réglés. Il est possible que l’on ait à écrire d’autres cas de test avant de recommencer. Selon l’envergure de l’application et les compétences des développeurs, il faudra peut-être effectuer six, sept et, même huit fois les tests intégrés.
À ce stade, la réaction classique et bien humaine du spécialiste AQ qui teste manuellement est de prendre des raccourcis en omettant de vérifier ou de revérifier certaines anomalies, afin d’abréger le processus. On peut comprendre une telle réaction, car on demande à ces professionnels, qui possèdent une vaste connaissance des affaires, de s’astreindre à des tâches lassantes parce que hautement répétitives. En outre, le spécialiste AQ subit la pression exercée par la direction et l’équipe de projet en vue de terminer le travail le plus rapidement possible pour respecter les limites budgétaires établies. Dans ce contexte, plus le processus manuel est long, plus grandes sont les probabilités que des anomalies ne soient pas corrigées.
Orchestration de l’automatisation
L’automatisation des tests permet d’éviter ces difficultés. Certes, la rédaction d’un script servant à l’automatisation exige plus de temps de la part du développeur que l’élaboration de cas de test manuels. Ultérieurement, cependant, l’équipe de projet économise un temps précieux. En fait, le défi de l’automatisation consiste à orchestrer efficacement le travail associé aux divers tests de qualité. De cette façon, il est possible de vérifier rigoureusement l’ensemble des fonctions et sous-fonctions internes et externes du système que l’on développe.
Il s’agit là d’une tâche délicate, car un processus peut englober plusieurs environnements (ordinateur central, service Web, système de reconnaissance vocale, etc.), qui doivent tous être inclus dans les tests. L’équipe de développement peut grandement se faciliter la tâche en ayant recours à une solution qui est spécialement conçue pour orchestrer l’utilisation des nombreux outils qui servent à tester chacun des environnements pertinents.
En orchestrant l’automatisation des tests, on peut obtenir une image précise de l’évolution du travail au fil du processus des tests intégrés. L’équipe de développement est alors en mesure de vérifier facilement la progression du nombre de tests réussis et les anomalies qui restent à corriger. En bout de piste, l’équipe sait qu’elle a entre les mains un produit de qualité. Cette certitude permet d’écourter considérablement le cycle de préproduction ou les tests d’acceptation par les utilisateurs.
Grâce aux tests automatisés et orchestrés, le temps consacré à l’assurance qualité pourrait être aussi peu que de 15 % à 20 % de la durée totale du projet – au lieu d’une moyenne de 30 % lorsque les tests sont faits manuellement. En somme, l’automatisation et l’orchestration des tests permettent de réaliser le projet dans un délai plus court et à moindre coût, tout en assurant une qualité logicielle supérieure.