logo lenewt

La qualité par le test

L’un des nombreux aspects du développement logiciel est le test. Leur but étant d’assurer une qualité optimale, autant d’un point de vue technique que d’un point de vue fonctionnel.

Tests de régressions: Tests unitaires, intégration, E2E, etc..

L’un des nombreux aspects du développement logiciel est le test. Le but de ceux-ci est d’assurer une qualité optimale, autant d’un point de vue technique que d’un point de vue fonctionnel.
En effet, les tests imposent une architecture claire et évolutive lorsqu’ils sont bien utilisés. Ils permettent d’assurer au client un niveau de fiabilité du logiciel.
Pour nous autres, le test est une partie intégrante de notre processus de développement : Nous utilisons ce que l’on appelle l’intégration continue. C’est à dire que nous testons le logiciel régulièrement au fur et à mesure du développement par divers procédés et divers acteurs.
Pour chaque fonctionnalité, nous allons nous assurer de passer par les trois étapes suivantes :

Tests unitaires

Les tests unitaires sont, d’une certain façon, la colonne vertébrale d’un projet. Ils assurent le bon fonctionnement et soutiennent celui-ci.
Leur rôle est de tester la logique d’une “unité”, autrement dit de confirmer le bon fonctionnement d’une petite partie du logiciel. Ils sont simple à mettre en place si l’architecture est convenablement pensée. Ils prennent peu de temps à développer et doivent être nombreux pour être efficace.
Il s’agit d’une étape de validation purement technique.

Tests d’intégrations

Le but des tests d’intégrations est de tester une fonctionnalité précise du logiciel dans un environnement local émulant l’environnement final d’un utilisateur.
Il s’agit de confirmer que toutes les parties du logiciel concernées fonctionnent correctement entre elles. La validation est ici technique et fonctionnelle.
Notons également que certaines partie du logiciel peuvent être encore simulées à ce point du développement, selon la tâche à accomplir.

Tests d’acceptances

Il s’agit d’une phase de test orientée client. Appelée également end user testing (Test d’utilisateur final), le but est de tester une fonctionnalité finalisée, en laissant le client l’utiliser dans des conditions réelles.
On ne parle plus de validation technique, (c.f tests unitaire et d’intégration) mais purement de validation fonctionnelle.
L’idée étant de délivrer au client des fonctionnalitées qui respectent les spécifications imposées par celui-ci et de s’assurer que le logiciel fonctionne correctement dans des conditions réelles.
Cela permet également, dans un contexte d’agilité, de s’assurer que les fonctionnalitées sont bien celles que l’utilisateur a besoin, et de possiblement clarifier menus détails ou malentendus.

Les 3 étapes clés du processus de test

Il est important de noter qu’il peut exister des tests et phases subsidiaires dépendantes du projet ainsi que des besoins client.

Un autre aspect de l’intégration continue est la distribution continuelle du logiciel au fur et à mesure de son développement pour le client. Le but étant de tester le plus souvent possible par les gens qui ont en le plus besoin afin d’avoir un retour constructif et de s’adapter en conséquence.

Le test logiciel est un vaste sujet, bien souvent négligé alors même qu’ils sont bénéfiques pour tous, client comme développeur. Il est important de les considérer comme faisant partie intégrante du développement. Laisser les tests de côté pour des questions de budget ou de délais est souvent un mauvais choix. Les économies réalisées par l’omission de test étant bien vite rattrapées et dépassées par les bugs et difficultés d’évolution du logiciel.