BLOG

Méthodologie de tests : De la définition à l’automatisation

Bête noire du développeur, cauchemar de l’entreprise, le bug, l’erreur, l’anomalie dans le fonctionnement d’un programme est l’objet de toutes les attentions : même s’ils sont habitués à fournir des patches a posteriori, les développeurs se doivent de livrer des programmes ou des logiciels qui fonctionnent. C’est dans cette optique qu’ont été créés les tests.

Mais tester c’est quoi ? « Tester, c’est exécuter le programme dans l’intention d’y trouver des anomalies ou des défauts ». Bien que datant de 1979, cette définition de G.J Myers est toujours d’actualité. Car même si ne pas trouver d’anomalie ne prouve pas, au sens formel, la validité d’un programme, cela augmente grandement la confiance dans son bon fonctionnement.

Quelle méthodologie de tests alors adopter ?

Pourquoi il ne faut pas multiplier les tests à l’infini

Nous serions tentés d’en conclure que plus on teste un programme, plus sa fiabilité augmente. C’est en partie vrai mais la loi des rendements décroissants s’applique également dans ce domaine : il faut donc trouver un équilibre entre le nombre de tests à exécuter, la confiance acceptable par les commanditaires du programme et le coût de ses exécutions.

Encore faut-il savoir, dans un premier temps, vers quels types de tests s’orienter, car le panel est large. Il existe, en effet, différents niveaux de tests liés à la chronologie de développement d’une application informatique.

  • Test unitaire : Au centre de l’activité de programmation, c’est une procédure qui permet de vérifier le bon fonctionnement d’un programme ou d’une partie précise d’un programme.
  • Test d’intégration : La phase de test d’intégration vise à tester l’assemblage des modules indépendants du programme ou du logiciel. Elle peut également être utilisée pour tester les adhérences entre le nouveau logiciel et le patrimoine applicatif existant.
  • Test fonctionnel : La phase de test fonctionnel permet de vérifier que les fonctionnalités demandées sont bien respectées par le programme.
  • Test d’acceptation ou « d’acceptance » : Très proche des tests fonctionnels, cette phase se déroule dans les locaux et avec l’infrastructure du client final.
  • Test de performance : Cette phase consiste à mesurer les performances de l’application soumise à une charge utilisateur.
  • Test d’intrusion : Il s’agit de simuler une attaque d’un utilisateur ou d’un logiciel malveillant sur un programme, un logiciel ou sur un système complet.
  • Test de non régression : Appelés souvent TNR dans le jargon du métier du test, ils permettent de vérifier qu’un système ou un programme se comporte de la même façon après avoir introduit un changement quelconque au dit système.

Automatisation des tests : qu’est-ce que c’est ?

Automatiser les tests consiste à faire effectuer les tests par un robot, appelé aussi automate de test. Par analogie avec l’industrie, un robot de test est programmé pour exécuter des tests préenregistrés.

Nous l’avons vu, plus on teste plus la fiabilité augmente. Le robot de test est-il alors un excellent atout pour augmenter la fiabilité attendue ? Quel est l’intérêt des tests automatisés ?

Le prochain article de Tenor vous en dira plus…

OCSI


Articles similaires