L'audit informel des activités de test logiciel, un premier pas assuré vers une amélioration de la qualité des logiciels

Le test logiciel est l’un des plus importants facteurs de réussite des projets informatiques. Délivrer en temps et en heure des systèmes logiciels fiables et fidèles aux attentes des maîtrises d’ouvrage et des utilisateurs, exige un processus de test professionnel.

Le test logiciel est l’un des plus importants facteurs de réussite des projets informatiques, quelle que soit leur taille. Délivrer en temps et en heure des systèmes logiciels de qualité, fiables et fidèles aux attentes des maîtrises d’ouvrage et des utilisateurs finaux, ne peut se faire sans un processus de test professionnel.
Pour vérifier la pertinence d’un processus de test existant, ou pour identifier des axes de progrès dans le domaine du test, et ceci dans des délais courts, l’audit informel des activités de test est une action qui permettra, pour un investissement limité, d’obtenir les informations indispensables à la mise en place d’une amélioration.
Cette chronique s’attachera à présenter ce type d’audit, et proposera des clefs pour comprendre comment le réaliser et en tirer des bénéfices.

Qu’est ce que l’audit informel ?
A la différence d’un audit formel, basé sur un modèle et des pratiques formalisés, CMMI par exemple, l’audit informel est plus souple à mettre en œuvre et se basera, non pas sur un modèle mais plutôt sur l’  « état de l’art du test logiciel », appliqué par un expert reconnu à un « contexte particulier », sur un « périmètre précis » et avec des « objectifs spécifiques ».
S’il n’existe pas de définition de l’ « état de l’art du test logiciel », il correspond néanmoins à un ensemble d’éléments.
Des normes et standards apportent des éléments précis sur le test logiciel. On peut citer par exemple, les normes IEEE 830 sur la gestion des exigences, IEEE 829 sur la documentation des tests, IEEE 1028 sur les revues logicielles, IEEE 1044 sur la classification des anomalies ou encore l’ISO 25000 sur la qualité des produits logiciels. Même sans être appliquées à la lettre, elles apportent une meilleure connaissance des activités de test et offrent des outils, comme des modèles de documents, permettant de professionnaliser leur mise en œuvre.
Des modèles d’évaluation de la maturité des entreprises sur différents aspects du développement logiciel et du test permettent d’identifier les principales composantes d’un test logiciel efficace et de mesurer leur mise en œuvre. Lors d’un audit informel ce n’est qu’une partie du contenu des modèles qui est exploitée et le processus de conduite d’audit selon le modèle n’est pas suivi. Considérer CMMI (www.sei.cmu.edu/cmmi) et ses domaines de processus vérification et validation, ou encore les niveaux 2 et 3 de TMMI (www.tmmifoundation.org) permet de couvrir en grande partie les bases du test logiciel.
Des organismes de définition et certification des compétences des métiers du test apportent, en plus d’une vue détaillée sur les différentes pratiques, des moyens d’évaluer les compétences des personnes. L’ISTQB® et le CFTL sont, à l’étranger et en France, incontournables. Le contenu de ces programmes de certification alimente l’état de l’art du test.
Enfin, l’expérience personnelle de l’auditeur et sa connaissance de nombreux retours d’expérience sont de précieux éléments qui vont lui permettre d’apprécier chaque situation avec un œil expert. L’expérience personnelle s’acquiert et s’utilise mais ne se transmet pas. Les retours d’expériences peuvent être partagés par le biais d’associations telles le club utilisateur mercury ECUME (www.lecume.org) ou encore le comité technique du CFTL, qui réunissent des responsables en test logiciel opérant dans différents types de sociétés.
L’audit peut se dérouler dans différents « contextes » et « périmètres »  différenciés principalement par la maturité des activités de test, par l’efficacité de leur mise en œuvre et par les acteurs impliqués. Le contexte d’un audit peut être celui d’une entreprise qui souhaite professionnaliser ses activités de test, celui d’un projet qui se prépare à démarrer, celui d’un projet en cours, celui d’une partie d’un projet localisée chez un sous-traitant, celui d’un fournisseur de logiciel ou encore celui d’un vaste projet informatique faisant intervenir différentes sociétés dans différents pays.
Plusieurs objectifs peuvent conduire un chef de projet ou une direction informatique à organiser un audit ; par exemple être rassuré sur la maturité des activités de test de l’entreprise, évaluer les activités de test sur un projet particulier ou encore évaluer et contrôler les compétences en test mise en œuvre chez un sous-traitant ou un fournisseur.

Comment la mise en œuvre de l’état de l’art du test se concrétise-t-elle ?
L’ensemble des éléments constitutifs de l’état de l’art du test vont se décliner sur différents aspects dans l’entreprise qu’il conviendra d’appréhender durant l’audit.
L’organisation de l’entreprise et la coopération entre les différents acteurs ou services doivent permettre et faciliter des interactions entre différents profils d’acteurs afin d’anticiper au maximum ce qui peut l’être. Par exemple, des architectes techniques ou fonctionnels pourront être impliqués tôt dans des revues de spécifications d’exigences ou de dossier de conception.

Une documentation précise mais strictement limitée à ce qui est utile doit permettre de :

  • Présenter les objectifs définis pour le test
  • Décrire une façon de faire commune
  • Décrire ce qui est fait sur chaque projet
  • Donner de la visibilité sur l’avancement
  • Capitaliser, réutiliser, s’améliorer

Différentes mesures sont nécessaires pour évaluer les coûts des tests, coûts permanents et coûts récurrents mais également pour mesurer la progression des activités de test et la qualité des produits ou systèmes testés. Ces mesures, comparées à des objectifs ou KPI sont nécessaires au pilotage d’un projet de test ou d’une entité chargée d’accomplir une ou plusieurs activités de tests.
Différentes activités de test doivent être mises en œuvre à plusieurs niveaux. Par exemple, l’activité d’exécution de tests au niveau intégration doit être précédée par des activités d’analyse et de conception de ces tests.
Des environnements et données de tests doivent être gérés pour permettre l’exécution et la réexécution de tests dans un environnement précisément identifié.

Les personnes impliquées directement dans le test doivent maîtriser des méthodes et compétences spécifiques au test. Un Test Manager doit par exemple maîtriser la gestion des risques liés au test alors qu’un Analyste de Test doit maîtriser différentes techniques de conception des tests.
Des outils et logiciels de test sont absolument nécessaires pour mettre en œuvre efficacement le processus de test ; notamment des outils de gestion des exigences, tests et anomalies.
Des processus connexes comme la gestion de projet, la gestion de configuration ou encore la gestion des exigences devront être correctement mis en œuvre et interfacés avec le processus de test.
Enfin, un soutien fort et visible de la hiérarchie est un pré-requis indispensable au bon déroulement des activités de test. Le point de vue des décideurs ou « sponsors » de projets dans l’entreprise et leur investissement pour promouvoir et soutenir les activités de test sont donc également des aspects correspondant à la mise en œuvre de l’état de l’art du test dans l’entreprise.

Qui rencontrer ?
L’audit informel va consister à évaluer la mise en œuvre des éléments identifiés ci-dessus en interrogeant différentes personnes de l’entreprise pour recueillir leurs explications mais aussi des preuves et démonstrations.
Les acteurs ayant un rôle particulier à jouer dans le test sont nombreux et l’audit ne se limitera pas aux testeurs, loin de là.
Lors de l’audit informel d’un éditeur de logiciel, ici appelé « Devsoft », les profils suivants ont été rencontrés :

  • Responsable des développements logiciels chez Devsoft
  • Responsable de l’équipe de tests pour les produits Devsoft
  • Responsable du Service Qualité
  • Chef de projet face au client principal pour la gamme de logiciels destinés aux entreprises
  • Directeur des Opérations: vente, installation et maintenance des logiciels
  • Chefs de Projet Client sur mySOFT 1 et mySOFT 2 (les deux principaux logiciels développés par Devsoft)
  • Testeurs pour le produit mySOFT 1
  • Chefs de Projet techniques pour mySOFT 1 et mySOFT 2
  • Testeur  pour le produit mySOFT 2
  • Clients utilisateurs de mySOFT 1 et mySOFT 2
  • Responsable développement
  • Testeur responsable de l’automatisation
  • Gestionnaire des environnements de test

Comment présenter un rapport d’audit informel ?
Le rapport d’audit, même informel, ne devra contenir que des éléments justifiables, soit par des propos recueillis lors des entretiens, soit par des pratiques constatées sur le terrain, soit par des documents recueillis.

Un plan classique peut être :
- Rappel de l’objectif de l’audit,
- Précautions et mise en garde,
- Liste des personnes rencontrées avec leurs rôles,
- Rappel sur ce qu’est l’état de l’art du test logiciel et comment il se met en application,
-  Les bonnes pratiques identifiées,
-  Les axes d’amélioration identifiés.

Il peut être intéressant de montrer, comme dans l’exemple ci-dessous, comment l’état de l’art est couvert par les pratiques de l’entreprise , en affectant une valeur « Pas couvert », « Partiellement couvert » ou « Couvert » à chaque aspect : l’intérêt de la synthèse ci-dessus est de ne pas se limiter aux éléments spécifiques au test mais au contraire, de prendre en compte d’autres points touchant indirectement au test.
En complément, il est aussi intéressant, même d’une façon très informelle, de montrer à quel niveau de maturité cela correspond, par rapport à un standard comme TMMI. Cela permet de montrer le caractère officiel et incontournable des éléments présentés.
Le résultat devra faire passer le même message mais en se limitant au test logiciel tel que vu par le standard :

Passer d’objectifs d’améliorations à un plan d’action concret
A partir des résultats de l’audit, il est possible d’identifier des objectifs d’amélioration et des actions associées, ce qui permet de bâtir un plan d’action concret.

Des objectifs d’amélioration « court et moyen terme » sont par exemple :
-  Stabiliser les bonnes pratiques existantes sur un projet puis les généraliser,
-  Introduire de nouvelles pratiques sur des projets pilotes puis les généraliser,
- Introduire sur l’ensemble des projets, avec un soutien, des améliorations simples et rapidement rentables (Gestion des tests, Reporting, Pilotage transverse, Coopération entre les acteurs),
- Revoir l’organisation du test et ses objectifs.

Des objectifs d’amélioration moyen et long terme sont par exemple :
- Industrialiser les activités,
- Documenter les pratiques,
- Analyser le passé et améliorer
- Capitaliser pour réutiliser,
- Mesurer le coût et l’efficacité,
- Automatiser.

En face de chaque objectif, une ou plusieurs actions sont identifiées, ce qui permet d’obtenir un plan d’actions précis.
La première action, à mettre en face de l’objectif « Industrialiser les activités » sera sans doute d’identifier un responsable de la mise en œuvre du plan d'amélioration des pratiques de test qui devra se l'approprier (compréhension, priorisation) puis le mettre en œuvre en donnant de la visibilité à tous les services sur l'avancement.
Un autre exemple d’action touchant l’objectif « Automatiser » pourraît être d’identifier les outils d'exécution de test unitaire à utiliser pendant le développement, de les présenter aux équipes de développement avec des recommandations d’usage et un support  pour la mise en œuvre.

A partir d’un « état de l’art du test logiciel », un expert en test pourra conduire un audit qui, même informel, débouchera sur un plan d’actions d’amélioration concret. Cela permettra incontestablement à l’entreprise ou au projet de s’améliorer efficacement et ceci, pour un coût initial peu élevé.
Néanmoins, pour professionnaliser cette amélioration, pour mieux la piloter et pour viser des objectifs mesurables et affichables, il est souvent intéressant, après une première phase d’amélioration, de faire conduire un audit plus formel respectant un modèle d’amélioration de processus comme TMMI.