L'identification du problème et sa description
L'automatisation des tests logiciels débute par une identification du problème rencontré. Celle-ci va consister en une analyse des exigences fonctionnelles, analyse rattachée à la maîtrise d'ouvrage.
Ici, on vise de façon précise une définition des chemins de l'application à l'écran. En procédant ainsi, on aboutit à une structuration de la phase de test et en une génération de chemins de test.
La description du problème n'est pas non plus à négliger. Celle-ci fournira toutes les informations utiles pour son traitement. Pour décrire le problème, il faut considérer entre autres son périmètre, sa période, son indicateur, son niveau d'importance, les éléments de constat et son incidence sur les résultats affichés au niveau du site.
Le choix des chemins à tester
Une fois que le problème a été identifié et décrit, la phase qui suit va consister en un choix des chemins à tester. Pour s'en sortir assez facilement, il faut établir des critères de sélection, sans oublier de mettre au préalable en place des objectifs d'AB Testing. L'AB Testing compare deux versions d'une même page Web afin de mesurer l'impact des changements effectués sur cette page.
Les critères de sélection sont des indicateurs qui aident à trouver la page qui atteint le mieux l'objectif fixé. Aussi bien ces derniers que l'objectif doivent être définis pour toute la durée que prendra l'évaluation. Pour des tests réellement automatisés, il faut veiller à ne pas les changer tant que les chemins de test à vérifier ne sont pas tous sélectionnés.
Certains professionnels recommandent l'adoption de la procédure du Risk-Based Testing. Le RBT hiérarchise les tests des fonctions et des fonctionnalités d'un logiciel. Il se base pour cela sur l'importance des uns et autres, sur leur risque de défaillance, sur la probabilité de la défaillance et sur son impact. Des critères de qualité sont ensuite liés à chaque test présent sur la liste hiérarchisée. Une validation est maintenant faite par le Maître d'Ouvrage (MOA) et le Maître d'œuvre, avant que les tests ne soient archivés.
L'outillage du processus
L'outillage du processus va structurer les automatisations de tests et les faciliter. En la matière, ce ne sont bien évidemment pas les produits qui manquent. La plupart de ces outils sont très intéressants et très performants. Ils possèdent une palette fonctionnelle très riche et à chaque fois, ils pourront servir de support aux différentes tâches qui seront exécutées.
Le premier outil conseillé est Selenium Web. C'est un des plus célèbres outils d'autonomisation des navigateurs Web. Selenium Web écrit de façon assistée, et ce, plus ou moins précisément, des scripts. Cet outil open source peut être décomposé en Selenium IDE et en Selenium Web Driver. Pour bien l'utiliser, il faut maîtriser les langages de programmation basiques et complexes.
En dehors de Selenium, l'automatisation d'un test logiciel peut avoir lieu avec Cucumber. Ce BDD ou Behavior Driver Development conçoit des tests fonctionnels automatisés puis les rend à la fois lisibles et compréhensibles. Cette extension du Test Driver Development ne teste pas qu'une partie du code, mais tout le système. On y retrouve des bibliothèques de fonctions qui peuvent servir de documents de référence aux développeurs, aux testeurs et aux analystes métier. Il prend en charge plusieurs catégories de langages.
Ranorex a aussi fait ses preuves sur le terrain et est d'ailleurs un outil très apprécié. Ranorex effectue des tests fonctionnels, des tests de régression et des tests sur les mots-clés. Son interface est conviviale et ses nombreuses fonctionnalités favorisent une prise en main assez facile. Cet outil peut être utilisé aussi bien par les débutants que par les professionnels de la programmation. Sa suite comprend les infrastructures de test Ranorex Studio et Ranorex Webtestit. Le premier est appliqué aux applications mobiles et aux applications de bureau. Les actions du second sont plus efficaces pour les applications Web et les sites.
Ranorex joue le même rôle que TestComplete. Sauf qu'avec cet outil-ci, l'effort de maintenabilité de tout script de test est considérablement réduit. Les tests peuvent facilement évoluer dans des milliers d'environnements pour que la couverture de test la mieux adaptée soit trouvée. Aussi, les tests pourront être enregistrés, rejoués et systématiquement mis à jour par le système.
L'optimisation proprement dite du processus
Après l'application de l'outil que vous aurez choisi, automatiser vos tests de logiciel reviendra à éliminer progressivement les versions non performantes. Avant chaque suppression, assurez-vous de la validité de l'échantillon. Autrement dit, le trafic qu'il aura recueilli doit être assez suffisant pour que des conclusions sans erreur puissent être tirées.
Sélectionnez ensuite la version que vous comptez conserver. S'il advenait que la version contrôle sort gagnante de ce long et complexe processus, vous devez recommencer à zéro. Cependant, si vous obtenez une des versions dites « challenger », vous pourrez la mettre en ligne. Elle remplacera ainsi la version actuelle.
Précisons que le processus n'a pas pour autant pris fin. Il ne suffit pas que la bonne version soit publiée, il faudra suivre chacune de ses performances sur un moment. De cette manière, vous détecterez très rapidement les contre-performances qui s'afficheront et vous pourrez automatiquement réagir.