En-tête-canalplus
16 décembre 2020

Tests automatisés de logiciels : Responsabiliser les testeurs

Christophe Cressend
Blog > Agile
Tests automatisés de logiciels : Responsabiliser les testeurs

Faire réaliser des tests automatisés par des testeurs fonctionnels n'ayant aucune compétence en développement informatique est au cœur du dispositif mis en place par Agilitest. Ce point ne fait pas forcément consensus dans notre profession, alors pourquoi est-il important pour nous, voici notre point de vue.

Automatisation des tests logiciels

Cet article ne traitera pas de la question de l'automatisation des tests unitaires et des tests d'intégration, sur laquelle il existe un consensus général : la mise en œuvre de l'automatisation des tests logiciels commence généralement par cette phase relativement maîtrisée, cette activité est réalisée par les développeurs, ils sont autonomes, utilisent leurs outils de développement, et ont une bonne compréhension des développements qu'ils ont réalisés.

La question suivante est : qu'en est-il des tests fonctionnels ? quels sont les problèmes rencontrés par les équipes pour les automatiser ? et pourquoi est-il important de rendre les équipes de test autonomes dans ce domaine ?

Les tests fonctionnels

Les tests fonctionnels sont généralement réalisés par des équipes de testeurs professionnels qui connaissent le métier et ses règles, lesquelles sont implémentées dans le logiciel. Leur champ d'intervention va du test des fonctions principales du logiciel (test fonctionnel) aux scénarios métier, c'est-à-dire l'utilisation d'un ensemble de fonctions complémentaires d'un logiciel pour réaliser une opération complexe (test métier). Ces derniers peuvent être réalisés en suivant des scénarios prédéfinis, qui sont généralement des cas clients réels dont on doit absolument s'assurer qu'ils fonctionnent, ou en explorant des domaines de fonctionnement qui pourraient avoir du sens pour certains clients, on parle alors de tests exploratoires.

Ces tests exploratoires sont le graal que les testeurs d'entreprise rêvent d'atteindre, car ils leur permettent d'évaluer de véritables cas clients complets, d'appliquer leur connaissance de l'entreprise, d'évaluer l'expérience utilisateur, les séquences et les graphiques.

Il est évident que les tests exploratoires ne peuvent pas être automatisés, même si nous pouvons effectuer des tests combinatoires aléatoires automatiques entre plusieurs scénarios prédéfinis. Il est donc important que les équipes de testeurs fonctionnels puissent gagner du temps sur les tests fonctionnels et les tests métier avec des scénarios prédéfinis.

Le dilemme de l'automatisation des tests

Les équipes de testeurs fonctionnels sont des experts qui ont, en général, peu de connaissances en matière de développement informatique, et malheureusement la majorité des tests fonctionnels actuels d'automatisation des logiciels nécessitent d'écrire du code.

L'automatisation des tests fonctionnels et métiers nécessite donc un dialogue permanent entre eux, qui spécifient les tests, et les équipes de développement, éventuellement dédiées, qui réalisent les tests. Lorsque le logiciel évolue, chaque test évolue également, et donc l'échange entre les deux équipes devient rapidement un jeu de ping-pong incessant. Nous ne parlons que de l'exécution des tests, mais si nous ajoutons le test maintenance, cela génère une charge de travail et d'analyse qui peut rapidement devenir importante. En effet, il existe différentes causes d'échec d'un test en intégration continue : un vrai bug, le test doit être revu ou il y a un flaky test....

Ces méthodes de travail vont mobiliser les équipes sur des activités inutiles, alors que l'on voudrait qu'elles puissent travailler et être efficaces dans d'autres domaines : produire de nouvelles fonctionnalités (pour les développeurs) et réaliser davantage de tests métiers et exploratoires (pour les testeurs fonctionnels).

Au final, cela conduit généralement à limiter le nombre de tests fonctionnels automatisés qui sont réalisés et on passe à côté des objectifs de l'automatisation : pouvoir produire des logiciels dont la qualité globale est maîtrisée en réduisant au maximum l'intervention humaine.

Des testeurs fonctionnels autonomes ?

L'intérêt de fournir aux testeurs fonctionnels une autonomie complète dans l'exécution de leurs tests automatisés est multiple : ils contrôlent leur scénario au fur et à mesure de l'évolution du logiciel, ils peuvent analyser les causes d'échec et maintenir les tests eux-mêmes.

Cela leur permet de disposer de plus de temps pour les tests exploratoires et de se mettre d'accord avec le site product owner et les développeurs sur les prochains développements à effectuer.

Les priorités que nous fixons lorsque nous abordons les développements et les évolutions que nous réalisons dans Agilitest sont toujours guidées par ces principes : cela permettra-t-il aux testeurs fonctionnels de gagner en autonomie ? cela facilitera-t-il le maintenance des tests ? et la réponse doit toujours être oui.

Photo par Miguelangel Miquelena sur Unsplash

Vous voulez essayer Agilitest ?

Découvrez Agilitest en action. Divisez par 5 le temps nécessaire à la sortie d'une nouvelle version.

Automatiser les tests fonctionnels pour des équipes heureuses.  

  • Des tests manuels aux tests automatisés
  • De l'automatisation des tests à l'automatisation intelligente des tests
  • Trouver les bons outils
ebook-scaling-test-automation-agilitest

Recevez les actualités du monde du test et d'Agilitest dans votre boîte mail

Rejoignez des milliers d'abonnés. Conforme RGPD et CCPA.