Tests automatisés et tests manuels : comment faire une recette de qualité ?
18 novembre 2020
La phase de tests est une étape essentielle et délicate dans un projet. Nécessaire, elle peut cependant s’avérer chronophage et extrêmement coûteuse en cas de mauvaise gestion ou sans les bons outils. Quels tests prioriser, dans quelle situation préférer les tests automatiques aux tests manuels…. Notre retour d’expérience dans cet article pour une recette de qualité.
Les tests manuels chez Kaliop
Dans la plupart de nos projets, un testeur manuel intervient pour s’assurer de la qualité des livrables.
Il intervient sur les tests :
- des développements, sur un environnement de recette interne avant la livraison des développements au client,
- de non régression, pour s’assurer que les modifications effectuées sur les derniers développements n’ont pas altéré les parties du code non modifiées,
- multi devices (Mac, Windows, tablettes et smartphones sous Android & iOS, avec différentes configurations).
Les tests automatisés chez Kaliop
En plus des tests manuels, nous développons les tests automatiques suivants :
- API,
- unitaires,
- fonctionnels,
- de non régression visuelle.
Les tests sont lancés depuis une CI/CD afin d’être lancés automatiquement et régulièrement.
Ils permettent d’accroître la qualité du produit et de découvrir les bugs plus rapidement, ce qui permet de minimiser le coût du bug (plus un bug est découvert tard, plus il coûte de l’argent).
Combiner les tests manuels et automatisés pour une meilleure performance
Le testeur manuel a toute sa place dans les projets Kaliop. En effet, il est toujours essentiel de tester les tickets développés en recette interne et de faire une bonne phase de non régression sur différents devices.
Les tests automatisés, quant à eux, interviennent dès que l’on juge qu’ils peuvent apporter une valeur supplémentaire au projet. Ils ne sont pas systématiques, car tous les projets n’en nécessitent pas. Mais ils permettent de s’assurer de la qualité des livraisons, tout en prenant en compte la particularité de chaque projet (budget, fonctionnalité, etc.).
Les tests automatisés, oui, mais pas pour tester n’importe quoi
Quand faire des tests automatiques ?
Le développement de tests automatiques coûte plutôt cher lors de leur mise en place. En effet, plusieurs étapes sont nécessaires à leur implémentation :
- définition des tests à réaliser,
- création des jeux de données nécessaires à l’exécution des tests,
- développement des tests,
- intégration des tests dans la CI/CD.
Il faut aussi prendre en compte la maintenance des tests sur la durée du projet. Elle peut vite devenir importante si on ne l’anticipe pas. Par exemple, un test KO après un développement doit être analysé et éventuellement fixé.
Sur un projet avec des tests automatisés, il est important de toujours penser à vérifier lorsque des évolutions sont apportées si cela impacte ou non les tests déjà en place.
Cela devient alors rentable sur la durée, avec une amélioration de la qualité et moins d’allers-retours liés à des bugs rencontrés sur les différents environnements.
Cependant, cela ne sert à rien de se lancer dans le développement de tests automatiques de toutes les fonctionnalités d’un site. Cette démarche coûterait énormément de temps et d’argent pour un bénéfice qui n’est pas toujours présent.
Il faut impérativement bien définir les tests automatisés à réaliser.
Par exemple, il y a très peu d’intérêt à réaliser des tests automatiques complexes sur une fonctionnalité du site qui est très peu utilisée.
Ne serait-il pas plus judicieux de développer un test automatique simple sur la fonctionnalité majeure du site ?
La démarche de test chez Kaliop
A Kaliop, nous déployons des tests automatisés en priorisant :
- les test les plus critiques du point de vue des enjeux du client,
- les tests les plus simples à mettre en place versus le poids de la fonctionnalité dans le site,
- les tests que le testeur manuel réalise le plus souvent,
- les bugs de production qui seraient passés entre les mailles de la qualité.
Cela nous permet de gérer au mieux le temps passé à écrire les tests par rapport au budget et à sa valeur ajoutée au projet.
Développer des tests automatisés permet de faire gagner du temps au testeur manuel. Il peut ainsi se concentrer sur d’autres tests qu’il ne réalise pas d’habitude. Cela permet par exemple de réaliser des tests aléatoires, qui consistent à parcourir l’application au gré de son humeur pour détecter des anomalies. Une bonne gestion de vos tests de base vous permettra de pousser la vérification ce qui est à long terme très bénéfique.
Ingénieur Qualité