Les métiers de la qualité ont connu une évolution importante en lien avec les pratiques de développement. En effet, l’un ne va pas sans l’autre.
Auparavant, dans la méthode du « cycle en V », les phases de tests arrivaient tout à la fin d’un projet. Avec les méthodes agiles, les choses ont changé car elles incluent le test à l’intérieur du cycle de vie du projet. On avance par itération – en général sur deux ou trois semaines, incrément par incrément. On déploie et on teste dans la foulée, puis on fait une démonstration avant de recommencer.
Cela permet de se rendre compte au plus tôt si l’on ne part pas dans la bonne direction.
Évaluation d’un logiciel : critères et indicateurs
Pour évaluer un logiciel, un service, un produit ou une application, on se base sur un ensemble de critères et d’indicateurs :
- Leur correspondance avec les besoins identifiés
- Leur fonctionnement général
- Leur réponse à des critères d’utilisabilité (notions d’interface et d’interaction avec les utilisateurs)
- Leur réponse à des critères de performance et de sécurité
Les critères de sécurité deviennent de plus en plus cruciaux. Plus nos environnements sont digitalisés, plus les risques de failles se multiplient.
Le rôle de la QA
Dans le but d’assurer la qualité d’un projet, on peut avoir une équipe QA (Quality Assurance) qui pourra mettre en place des processus qualité et mener des campagnes de tests. La QA endosse également un rôle global de sensibilisation des équipes. La qualité est l’affaire de tous.
Ce métier nécessite des compétences humaines. Les testeurs, souvent au cœur des projets, interagissent avec toutes les parties prenantes (développeurs, support, architectes, métiers…). La communication est essentielle pour instaurer une bonne entente et avancer efficacement.
Un exemple vécu montre comment une équipe de développeurs a demandé un testeur, et en restant ouverts aux remarques, les corrections étaient rapides. Le testeur n’est pas là pour critiquer, mais pour assurer un résultat de qualité.
Les enjeux de la qualité logicielle face aux exigences du marché actuel
Aujourd’hui, la rapidité et l’image de marque sont essentielles. La moindre latence sur une interface peut faire fuir un utilisateur. La course à la sortie de nouvelles fonctionnalités rend l’automatisation des tests incontournable. L’automatisation permet de lancer les tests pendant la nuit et, si tout se passe bien, le site est prêt pour les utilisateurs dès le matin, sans passer par des tests manuels.
Domaines spécifiques et impacts variables
Selon les secteurs, les enjeux de la qualité diffèrent :
- E-commerce : acquérir une bonne réputation auprès des consommateurs.
- Applications médicales : exactitude des dossiers patients et des doses prescrites.
- Finance : une simple virgule ou un zéro mal placé peut avoir des conséquences graves.
Avec les nouvelles normes, l’accent est de plus en plus mis sur l’accessibilité et la protection des données.
Projets en constante évolution
De nombreux projets n’ont pas de fin définie. Dans un projet e-commerce actuel, l’équipe QA collabore étroitement avec les développeurs pour introduire de nouvelles fonctionnalités et vérifier qu’elles n’introduisent pas de régressions.
Les principaux tests
Le domaine des tests est vaste et mobilise des compétences variées, tant humaines que techniques.
Niveaux de tests
Le code d’une application est composé de plusieurs couches (lignes de code, méthodes, composants, API, interface utilisateur), chacune nécessitant des tests spécifiques.
La phase de spécification est essentielle pour définir la stratégie de tests, bien que celle-ci puisse évoluer au cours du projet. Malheureusement, les équipes de tests sont rarement présentes dès le début, ce qui complique la correction des bugs trouvés tardivement. En effet, plus un bug est découvert tard, plus sa correction est coûteuse.
Audits et stratégie adaptée
Lorsque des testeurs arrivent en cours de projet, une phase d’audit est nécessaire. Elle inclut des entretiens avec les parties prenantes pour identifier les points faibles et définir une stratégie de tests adaptée.
La qualité logicielle à l’heure de l’IA
L’IA : opportunités et défis
Face à l’IA, deux questions émergent pour les tests :
- Utilisation de l’IA : Comment tirer parti de sa puissance pour gagner en efficacité ?
- Test des IA : Comment va-t-on tester ces nouvelles technologies ?
Ces sujets sont encore en construction, mais l’IA peut déjà être utilisée pour générer des jeux de données et aider à la préparation des cas de tests.
Cas de tests et génération de données
- Cas de tests : À partir d’une user story, l’IA peut générer des cas de tests pour des fonctionnalités spécifiques.
- Jeux de données : L’IA peut aussi générer des profils d’utilisateurs pour enrichir les tests.
Défis à venir
Bien que l’IA ne bouleverse pas encore le métier des testeurs, des changements sont attendus. Elle pourrait un jour générer des cas de tests et du code. Cependant, l’IA fait encore des erreurs, et son test soulève des défis uniques, notamment dans les IA génératives.
Les tests automatisés sont de plus en plus courants, mais certains cas, notamment liés à l’utilisabilité ou à l’accessibilité, nécessitent toujours l’intervention humaine.
Pour se lancer dans la qualité logicielle, il faut aimer explorer les failles et avoir une autonomie certaine, car un testeur est souvent seul sur un projet. Des compétences en communication sont essentielles, ainsi qu’une curiosité constante pour se maintenir à jour.
Le métier évolue avec les préoccupations du monde numérique : écoconception, gestion des données, accessibilité, et IA.
Finalement, la qualité ne serait-elle pas le point clé d’un projet à succès ?