Lyma

Test technique et fonctionnel

Le test:

Avant d’entrer dans le vif du sujet des tests techniques et fonctionnels, il est important de savoir que signifie tester ?

Par définition, un test « désigne une procédure de vérification partielle d’un système. Son objectif principal est d’identifier un nombre maximum de comportements problématiques du logiciel afin d’en augmenter la qualité (si les problèmes identifiés lors des tests sont corrigés). Néanmoins, le test peut aussi avoir pour objectif d’apporter des informations quant à cette qualité afin de permettre la prise en décisions ».

Comme vous le saviez peut-être déjà qu’une partie importante de la qualité d’un logiciel doit être apportée et contrôlée par les équipes techniques. Ce contrôle est assuré par la mise en œuvre de tests techniques : tests unitaires, tests d’intégration, tests de montée en charge…

Ainsi, dans ce chapitre, on abordera certaines notions ici, à savoir :

  • La réalisation de tests fonctionnels : tests d’intégration, tests de non régression…
  • La réalisation de tests techniques : développement de tests unitaires, tests de performance, tests de robustesse, tests de vulnérabilité
  • Mise à disposition de plateforme de tests : mise en place de plateforme virtuelle pour qualifier un logiciel sur plusieurs environnements.

I. Typologies de tests: 

Nous distinguons deux catégories de tests :

I.1. Les tests fonctionnels : niveau aval

Les tests fonctionnels sont réalisés par la MOA et s’appuient sur les spécifications fonctionnelles détaillées. Ils sont réalisés dès lors que les tests techniques sont terminés. Ils sont composés des tests d’intégration fonctionnelle où l’on va contrôler qu’ensemble, tous les modules de l’application fonctionnent correctement, et les tests d’acceptation, appelés également «recette» qui permettent de valider que toutes les fonctionnalités du cahier des charges sont couvertes par le logiciel.

I.2. Les tests techniques : niveau amont

Les tests techniques sont réalisés par les développeurs et par les équipes de tests. En respectant les règles définies en début de projet, le développeur conçoit et écrit les scripts qui permettent de valider qu’une fonction répond en tout point aux spécifications. Ils permettent de valider qu’une fois assemblés, tous les modules communiquent bien ensemble et que les flux d’informations sont correctement traités. Ils sont réalisés par une équipe de testeurs qui s’assure également de la robustesse de l’application.

A côté de ces catégories de tests, nous distinguons également différents types de tests comme :

  • Les tests de non régression qui permettent, spécialement dans les développements réalisés en extrême programming, de valider qu’une mise à jour d’un module du logiciel ne provoque pas un problème dans un module qui n’a pas été modifié.
  • Les tests de performance qui permettent de valider que la performance attendue du logiciel est bien atteinte et ce, dans toutes les conditions de montée en charge.
  • Les tests de vulnérabilité qui permettent de s’assurer de la sécurité du logiciel.
  • Les tests de robustesse qui sont réalisés pour s’assurer de la stabilité du logiciel dans le temps.

Pour ne pas m’arrêter là, et pour plus satisfaire ma passion, mon futur projet est de me spécialiser en tant que testeur (test technique ou fonctionnel). Je trouve très important le rôle des testeurs informatiques, définir l’efficacité de votre produit.

Les test vont être confronté à votre code et votre produit, question de savoir s’ils sont à jours ou pas on revient à ce stage au jeu de coloration: le rouge: qui signifie non = il y a des modifications à apporter, et tout ce que mon produit devrait faire, montre que le produit contient des erreurs à corriger, nous montre également où en est votre produit par rapport à vos attentes. Il détecte des problèmes, nous montre les codes à modifier ou qui ont cassés des choses (ici on parle de régression).

Et le vert , le oui = le test est ok, nous indique que les comportements définis sont bien fonctionnels. On sait bien que la chose qui va mieux spécifier votre produit est le code, qui définie également ce que fait votre produit. Là où les tests sont intéressant, c’est le fait qu’ils s’attachent au besoin de votre produit et non pas à des algorithmes complexes, qui sont parfois difficiles à lire. Les test vont représenter ce qu’on appelle le ‘DONE‘ c’est à dire à quel moment je fini mon travail ? Le test nous montre réellement que ce qu’on a codé fonctionne ou pas, c’est à dire définie au produit le code développé, vérifie et valide votre DONE si vous êtes arrivé au bout de vos développements.

II. Les qualités d’un bon testeur ?

On test à travers des framework utilisés, pas seulement. La question est de savoir est ce qu’on va privilégié les tests unitaires ou d’intégrations ou des tests d’interférence , dans quelle mesure? Dans quelle limite ?

Pour tester, il faut avoir la motivation et l’envie de partager et travailler , en un mot un esprit d’équipe avec ses collègues pour remonter certaines informations. De même, il est possible dès fois de partir d’une feuille blanche, travailler ensemble, résoudre des problèmes comme le cas d’une suite Fibonacci (calcul du nombre premier), s’améliorer en TDD( Test River Developpement). Le test doit spécifier ce que fait le code, on doit l’exprimer en forme de Given (état initial, à la date t0), de when(action du test, le déclencheur) et le then (l’état final).

III. Evolution du test: 

Ici, je vais vous parler précisément d’un terme très utile dans ce métier, il s’agit de la bonne couverture. Majoritairement, les développeurs disent souvent qu’on a 99% de couverture de code, et là le métier dit que le produit ne fait pas ce que je veux, donc penser à cette fameuse couverture fonctionnelle de votre code est vraiment indispensable pour la réalisation d’un produit final. On ne se limite pas là seulement, il faut par ailleurs connaitre les services utilisés par vos clients (web, mobile,..) et leur comportement pour éviter les bug informatiques.

IV. Les bug informatiques: 

Les bug sont à l’origine de beaucoup de choses, on est confronté à ce phénomène couramment dans ce métier, tout code peut causer un bug, un bon développeur doit s’attendre au bug, c’est pourquoi il est important de laisser des commentaires dans le code afin de pouvoir repérer facilement l’origine du bug et permettre aux développeurs de faire des modifications à apporter pour le bon fonctionnement du code. Il faudrait savoir le pourquoi et le comment à travers un outil efficace (GIT). Se mettre sur la bonne branche(Master), on vous parlera de git commit, de git init, de git status, de git log, ….De même il faut une bissection entre les différentes branches (2 branches).

Conclusion:

Les tests ont besoin d’un bon travail. Soignez vos tests est un bon investissement, choisir une stratégie de test en discutant ensemble peut être un moyen pour faciliter le bon fonctionnement de vos produits. Ne faites pas aussi trop de tests, éviter, la meilleure solution est d’aller à l’essentiel c’est à dire faire des tests rentables.


lyma

Ibrahima ALATA Développeur & Intégrateur web. 44700 Orvault. Site web: www.ibrahimalata.com

LEAVE A REPLY

    mars 2023
    L M M J V S D
    « Juin    
     12345
    6789101112
    13141516171819
    20212223242526
    2728293031  

    Archives

    Catégories