Le test réalise sa révolution

La mutation en cours se fonde sur l’arrivée à maturité de processus outillés et industriels, ainsi que le développement de nouvelles compétences. Elle s'explique par un besoin de qualité accrue et une aversion croissante pour les anomalies.

Les activités de test et qualification logicielle, historiquement le "parent pauvre" du développement informatique, connaissent une mutation profonde de leurs pratiques. La révolution observée se fonde sur une industrialisation des processus, le développement de compétences et de qualifications dédiées et l’arrivée à maturité de processus outillés supportant le passage des exigences métiers au référentiel des tests automatisés.

En développement de logiciel, le test a été longtemps traité comme un mal nécessaire. La phase de test était repoussée en fin de développement, à un moment où la pression de sortie de l'application conduisait à sacrifier l'effort initialement prévu. Les équipes affectées aux tests l'étaient parfois par défaut et sans être suffisamment formées aux techniques, méthodes et outils adaptés permettant de garantir la qualité applicative.

Cette réalité évolue rapidement sous l'effet de deux phénomènes : le besoin de qualité d'une part, et l'aversion aux anomalies d'autre part, les anomalies perturbant la production n'étant aujourd'hui plus acceptées par les utilisateurs. Par ailleurs, la multiplication des services rendus par les systèmes d'information a considérablement augmenté la complexité fonctionnelle des applications à tester. Ces éléments conduisent à abandonner des pratiques peu maîtrisées en faveur de démarches structurées et outillées, appuyées sur des compétences dédiées. Une mutation qui se manifeste sous quatre formes, qui constituent les piliers d'une industrialisation du test logiciel :

- Les méthodes de test fondées sur les exigences métier et l'analyse de risque
Les méthodes de test se sont considérablement renforcées depuis la fin des années 90, avec des approches structurées tels que TMap de Sogeti et le référentiel l'ISTQB (International Software Testing Qualification Board). Pour le test fonctionnel, ces méthodes sont fondées sur la dérivation du référentiel de tests à partir des exigences métier, leur traçabilité dans le référentiel pour assurer leur couverture par les cas de tests, et l'analyse de risque du produit pour adapter l'effort de test. L'automatisation de l'exécution des tests constitue un élément clé du test de non-régression, c'est-à-dire de la capacité à maîtriser l'impact des évolutions sur le maintien du bon fonctionnement applicatif.

- La mise en œuvre d'un processus de test outillé

Les points de peine du test ont longtemps résidé dans la difficulté à produire un référentiel de tests pertinent (capable d'assurer une bonne couverture et détection d'anomalie), et dans l'effort permanent que constitue la maintenance des cas de tests lors d'évolutions fonctionnelles ou techniques de l'application.

La maîtrise de ces difficultés s'appuie aujourd'hui sur un processus outillé, en phase avec les méthodes décrites précédemment, et qui intègre la gestion intégrée du référentiel des tests (outils comme HP Quality Center ou IBM Rational Quality Manager), la génération des cas de tests à partir des exigences fonctionnelles (outil comme Smartesting Test Designer), et les environnements d'exécution automatique des tests (outils comme Selenium, HP QuickTest Pro ou IBM Rational Functional Testing). L'ensemble de ces outils constitue une chaîne intégrée, qui facilite la prise en compte des évolutions applicatives au niveau du référentiel de tests automatisés.

- Les métiers du test logiciel
C'est une grande découverte de la profession informatique de ces dernières années que d'avoir compris que le test logiciel constituait un ensemble de métiers à part entière au sein des métiers du logiciel. L'efficacité requise pour mettre en œuvre les méthodes et processus outillés implique une maitrise de technologies variées incluant la maitrise des stratégies de test, de la conception du référentiel de tests, ou de l'automatisation des cas de tests. Cela implique une formation et une certification de ces compétences, pour des métiers qui ont pour noms : analyste de test, chef de projet de test, ingénieur d'automatisation de test, consultant de test, et qui remplacent l'ancien nom générique de "testeur".

- Les centres de service de test
L'organisation en équipes spécialisées, en interne ou chez un prestataire, qui portent l'industrialisation du test, constitue un élément clé des évolutions récentes dans le domaine du test logiciel, et permet d'atteindre le niveau requis en termes de qualification logicielle.

L'ensemble des grands intégrateurs ont organisé des centres de service de test, avec des offres locales, nearshore ou offshore, assurant des prestations au forfait sous forme de tierce recette applicative, et des engagements de niveaux de service. Ces "usines à test" peuvent aussi être organisées au sein de l'entreprise utilisatrice, en particulier pour assurer la proximité avec les besoins métier dans le cas du test de recette. Dans les deux cas, cette organisation en centre de service permet d'assurer la professionnalisation des compétences, des processus outillés et des méthodes.

Ces éléments attestent de la révolution tranquille que le test logiciel est en train de réaliser, similaire au passage de la planche à dessin à la CAO 3D qu'a connu l'industrie mécanique dans les années 80. La crise actuelle constitue en la matière un facteur d'accélération de ces évolutions : l'industrialisation des tests permet d'assurer la maitrise des coûts et la prédictibilité des résultats.