L'automatisation du logiciel legacy est un sujet sensible qui nécessite une analyse minutieuse des situations, qui sont souvent toutes différentes. Dans certains cas, elle est utile, voire nécessaire, et dans d'autres, vous perdez votre temps. Dans cet article, nous détaillons ces cas.
Qu'est-ce que le logiciel legacy ?
Dans la culture informatique, un logiciel "legacy" est un logiciel qui est en production depuis un certain temps, qui peut avoir eu plusieurs versions successives et/ou remaniements de code et qui répond correctement aux besoins de ses clients.
Le maintenance de ce type de solution peut être réduit au minimum : peu d'évolutions et des corrections limitées du bug , le tout étant assuré par une équipe qui peut être une seule personne ne travaillant pas à plein temps dessus.
Ce type de logiciel est "tel quel" en ce qui concerne les aspects de test et de validation, et tout est possible : des tests manuels à profusion et éventuellement redondants, des tests automatisés sur plusieurs solutions d'automatisation, aucun test sur les données, aucun test unitaire...
Ne touchez pas au logiciel legacy ! Sauf dans certains cas...
Dans certains cas, il est surtout recommandé de ne rien changer, notamment si le logiciel a peu de bugs, s'il est globalement couvert par des tests et s'il évolue peu à travers quelques livraisons annuelles.
Mais dans certains cas très précis, il peut être pertinent d'envisager de changer ses méthodes de validation. Nous allons détailler ces cas ci-dessous.
CAS n°1 : Une validation qui prend du temps
Si votre activité de validation prend trop de temps par rapport aux activités de développement, et que vous avez l'intention de poursuivre le développement et la livraison pendant un certain nombre de versions, il peut être utile de revoir vos plans en conséquence.
Commencez par faire une analyse fonctionnelle de votre couverture de test pour essayer de la réduire ; il y a sûrement des redondances qui peuvent être supprimées.
Parmi les tests restants, déterminez ceux qui prennent le plus de temps à rejouer et automatisez-les. Si vous êtes Agile, vous pouvez vous fixer comme objectif de remplacer n tests manuels par sprint. Cela motivera vos équipes et vous réduirez progressivement votre charge de validation manuelle, et donc votre dette de validation technique.
Conservez les tests automatisés existants s'ils fonctionnent et ne coûtent pas cher à rejouer.
CAS n° 2 : La stabilisation sans fin
Votre équipe de validation a travaillé dur et ouvert des centaines de bugs sur la dernière version et vous voulez absolument corriger les plus critiques.
Vous essayez de réduire le bugs en mobilisant votre équipe de développement et de validation et les correctifs vous permettent d'aller un peu plus loin dans les scénarios pour découvrir de nouveaux bugs. Vous n'en voyez pas le bout et vos équipes ne peuvent toujours pas travailler sur la prochaine version....
Dans ce cas, il peut être pertinent de revoir votre politique de validation pour envisager une couverture automatisée plus globale, des tests rejoués en intégration continue, bug des correctifs couverts par des tests....
CAS n° 3 : Lorsque vos tests automatisés ne sont pas fiables
Les tests automatisés devraient être déterministes et les conditions d'échec devraient être dues à l'occurrence de bugs, mais en réalité, ce n'est pas si simple : vous perdez du temps à essayer de comprendre pourquoi le test qui a réussi la veille dans les mêmes conditions ne réussit pas aujourd'hui. Cela se produit chaque jour pour un certain nombre de tests, mais ce ne sont souvent pas les mêmes.
Il est temps d'utiliser un outil qui met tout en œuvre pour assurer la robustesse et la fiabilité de vos tests automatisés.
Le refactoring des tests automatisés, ça existe !
Pour profiter des fonctions de gain de temps d'Agilitest, vous pouvez même envisager de revoir vos tests automatisés.
- Lesvidéos qui montrent vos tests au moment où ils ont échoué vous feront gagner du temps dans l'analyse.
- La possibilité d'ajouter de la profondeur à vos tests en les rejouant sur des données étendues(Data Driven Testing), une approche utile lorsque vos clients signalent bugs en rapport avec leurs données.
- Éliminez les tests automatisés maintenus par les développeurs et récupérez ces ressources pour le développement de fonctionnalités, car vos équipes de validation peuvent automatiser les tests avec Agilitest.
- Réduisez la charge de maintenance de vos tests automatisés : Les Xpaths ne sont pas vos amis.
Alors, faut-il ou non automatiser les tests de votre logiciel legacy ? Comme nous l'avons vu, tout dépend de la situation dans laquelle vous vous trouvez.
Un dernier conseil : dans votre démarche, n'oubliez pas que les gains peuvent être liés au système que vous mettez en place plutôt qu'à la somme des réductions de travail de chaque équipe ; et ces gains seront bien plus importants que vous ne le pensez. La traque du temps perdu ne doit pas être votre seule motivation.