Le prix s’oublie, la qualité reste
Les systèmes logiciels font partie intégrante de notre quotidien. Dès notre réveil, on commence déjà à manipuler un tas d’objets qui, on espère, étaient bien testés, comme Le radio réveil, le système d’alarme, la cuisinière, le smartphone, la voiture, les applications bancaires, celles des compagnies d’assurance ainsi que tous les appareils médicaux.
C’est pour cette raison que la qualité et le rendu de ces systèmes doivent être irréprochables pour éviter un certain nombre de conséquences telles que :
- Nuire à la réputation de l'entreprise
- La perte d'argent
- La perte de temps
- Les blessures et même la mort
Comme dit l’adage mieux vaut prévenir que guérir :
Afin d’éviter tout genre de surprise et d’effets de bord, le mieux est de s’entourer d’une équipe qualifiée pour tester au préalable l’application sur l’ensemble de ses aspects fonctionnels et non fonctionnels. Seulement voilà, toutes les entreprises ne sont pas organisées en interne pour mener à bien cette phase essentielle. L’externalisation peut alors apporter une réponse complète, fiable, indépendante et en général moins couteuse à l’entreprise pour éviter de mettre sur le marché un produit défectueux.
Qu’est-ce qu’on fait dans un département de test ?
Une perception erronée courante du test consiste à considérer que cette activité se réduit à exécuter des tests, c'est-à-dire exécuter le logiciel et en vérifier les résultats. Bien au-delà de ça, le test logiciel constitue un processus qui comprend de nombreuses activités telles que la planification des tests, l'analyse, la conception et la mise en œuvre des tests, le suivi de la progression et des résultats des tests, ainsi que l’évaluation de la qualité de l’objet de test.
Quels sont les objectifs des tests ?
Comme tout autre département, le département des tests a un ensemble d’objectifs propres à lui tels que :
- Évaluer les produits d’activités (les exigences, les User Stories, la conception et le code).
- Trouver des défaillances et défauts.
- Construire la confiance dans le niveau de qualité de l'objet de test.
- Fournir suffisamment d'information aux parties prenantes pour leur permettre de prendre des décisions éclairées,.
- Réduire le niveau de risque d'une qualité logicielle inadéquate.
- Se conformer aux exigences ou aux normes contractuelles, légales ou réglementaires.
Les 7 principes à prendre en compte pour optimiser l’activité de test :
Un certain nombre de principes sur les tests ont été suggérés au cours des 50 dernières années et offrent des indications communes à tous les tests. La prise en compte de ces principes lors du déroulement des activités de test nous aide à mieux planifier et ordonnancer les tâches de sorte à livrer un produit de bonne qualité en optimisant l’effort de test.
- Les tests montrent la présence de défauts, pas leur absence: Les tests peuvent prouver la présence de défauts, mais ne peuvent pas en prouver l’absence
- Les tests exhaustifs sont impossibles: Plutôt que de chercher à faire des tests exhaustifs, l’analyse des risques, des techniques de test et des priorités devraient être utilisés pour cibler les efforts de tests.
- Tester tôt économise du temps et de l’argent: Pour détecter tôt les défauts, des activités de tests statiques et des activités de tests dynamiques doivent être lancées le plus tôt possible dans le cycle de vie de développement du logiciel.
- Regroupement des défauts: Un petit nombre de modules contient généralement la plupart des défauts découverts lors des tests avant livraison.
- Paradoxe du pesticide: Si les mêmes tests sont répétés de nombreuses fois, le même ensemble de cas de tests finira par ne plus détecter de nouveaux défauts.
- Les tests dépendent du contexte: Les tests sont effectués différemment dans des contextes différents, on ne teste pas de la même manière un logiciel d’assurance et un site d’ e-commerce.
- L’absence d’erreurs est une illusion.
La qualité logicielle une nouvelle ère qui s’annonce : Satisfaire le client et assurer sa sécurité sont à la tête des objectifs stratégique rapporte le word quality report 2018-2019.
D’après le dernier rapport, les activités de test ont consommé 26% du budget des projets IT cette année au même titre que l’année dernière. Ce qui implique une stabilisation dans la structure des coûts qui va être revue à la hausse lors des prochaines années avec un taux qui avoisinera les 30%. Cette hausse s’explique par les investissements prévus qui seront nécessaires pour répondre aux nouvelles tendances du marché.
Ces investissements engloberont la virtualisation des environnements, la gestion des données, l’automatisation des tests et l’utilisation l’analyse des données durant le cycle de vie des tests.
Les nouvelles tendances incluront :
- La transformation digitale
- L’Internet des objets
- L’intelligence artificielle
- Le Cloud
- La Cybersécurité
- La blockchain
Ces nouvelles tendances sont conduites par un changement de la stratégie qui vise à mettre le consommateur au centre des développements en améliorant l’expérience utilisateur et sa sécurité.
Le diagramme ci-après montre que 42% des objectifs du management est d’assurer la satisfaction du client final au même titre que l’identification des anomalies avant la mise en production.
Ce chiffre vient juste après la sécurité des systèmes d’information qui représente 47% des objectifs. (ce chiffre n’est pas illustré dans le diagramme).
Qu’en est-il de l’automatisation des tests ?
Pendant de nombreuses années l’automatisation des tests concernait uniquement l’exécution des tests fonctionnels. Aujourd’hui on constate de plus en plus de processus intégrés dans le scope. L’objectif ultime étant d’automatiser l’ensemble du cycle de vie.
A quoi ressemble l’automatisation des tests aujourd’hui ?
Selon le rapport mondial de la qualité 2018-2019, seulement 16% des tests fonctionnels sont exécutés par un outil d’automatisation et pareil pour les tests de sécurité. Seulement 15% des E2E test cases sont exécutés avec un outil d’automatisation.
Un certain nombre de facteurs expliquent ce taux d’automatisation assez faible qui avoisine les 16%.
D’après le WQR 2018-2019, 61% des personnes questionnées répondent que le changement des applications à chaque release présente un obstacle, 48% pointent la disponibilité et la stabilité des données de test et des environnements, 46% dénoncent un manque d’expertise des ressources dans l’automatisation des tests.
Automatiques ou manuels, les tests doivent être concentrés sur les domaines où ils sont les plus efficaces de sorte que lorsque les tests sont arrêtés pour une raison quelconque, les tests les plus efficaces ont déjà été effectués.
La mise en place d’une vraie stratégie est indispensable pour organiser et optimiser les activités de test. Cette stratégie permettra d’atteindre les objectifs de qualité spécifiés avec un minimum de cout en respectant le time to market.