Comment assurer la qualité (QA) dans un projet Informatique ?

Bien entendu, la qualité d'un produit ou d'un service est un élément primordial pour tout un chacun. Mais lorsqu'il s'agit d'effectuer des travaux complexes, sur-mesure, mobilisant de nombreux acteurs, la gestion de la qualité des développements et des livrables devient un facteur clé de succès du projet.

La qualité, ce processus sans fin

Dans cet article, nous vous présentons la vision d'ACSEO à propos de la gestion de la qualité des projets informatiques que nous réalisons. Il n'existe pas de vérité absolue concernant la gestion de la qualité. Chaque entreprise peut avoir sa propre vision des méthodes à mettre en oeuvre pour assurer la qualité de ce qu'elle produit.

Qu'il s'agisse du domaine de l'informatique ou de bien d'autres secteurs, la gestion de la qualité est par définition un processus sans fin, mouvant. En effet, chaque projet ou incident peut amener à une révision de la procédure de gestion de qualité mise en place.

La première étape de cette démarche consiste cependant à se poser la question suivante : avons nous des procédures permettant d'assurer la qualité des projets ? Pour y répondre, on peut se poser les questions suivantes :

  • Le code source produit est il standardisé ?
  • Le code source produit est il compréhensible et documenté ?
  • Le code source produit est il testé ?

Nous voyons donc 3 sujets émerger de notre démarche de qualité : standardisation, documentation, testabilité. Et pour que ces sujets soint

Standardiez vos projets pour gagner en qualité

Pour commencer, capitalisez sur vos projets passés en standardisant des gabarits de projets qui correspondent à votre besoin, et qui intègrent au fur et à mesure les composants que vous jugez éprouvés ou que vous maitrisez, et que vous êtes amenés à utiliser régulièrement.

Les projets modernes, utilisant PHP et Symfony, Sylius ou NodeJS et React par exemple, favorisent grandement cette modularité grâce au gestionnaires de dépendances Composer ou NPM.

En étant versionnées, Nos stacks peuvent être améliorées en continue grâce aux contributions de toute l'équipe d'ACSEO 😎

Disposez d'une documentation de qualité

Si vous faites de la qualité, dite-le, écrivez-le.

Dans votre environnement projet

Le premier emplacement de votre démarche de qualité doit se situer dans le code source que vous produisez. Mettez vous à la place de celui ou celle qui reprendra votre code source dans 6 mois, de celui ou celle qui devront utiliser votre l'API que vous êtes en train de développer. Voici quelques pistes pour bien démarrer :

  • Renseignez avec soin le README versionné dans votre projet. C'est souvent la première chose qui sera lue. Vous pouvez partir de cette liste de super README.
  • Utilisez la syntaxe du langage de votre projet pour écrire de la documentation technique (par exemple PHPDoc et PHPDocumentor).
  • Utilisez le Wiki de votre outil de gestion de projet pour consigner toutes les informations utiles de votre projet.
  • Utilisez un Makefile pour documenter les procédures et les commandes à exécuter pour assurer le bon fonctionnement du projet
Bonus ! Tout ce que vous écrivez dans votre code tout au long du projet pourra être utilisé pour générer une documentation en ligne ou au format PDF.

Dans vos relations contractuelles

Vous pouvez formaliser toute votre démarche qualité dans un Plan que Qualité Projet, également appelé Plan d'Assurance Qualité.

Un plan de Qualité Projet (PQP), est un document qui décrit les dispositions particulières mises en œuvre pour la réalisation du projet afin de répondre aux exigences contractuelles en matière de qualité. Ce document permet à toutes et à tous de s'accorder sur le contexte, le périmètre, les enjeux (attraits et risques) ainsi que les véritables attentes dans le cadre de la prestation à réaliser. Il s'agit donc d'un outil de référence, validé par les parties, qui décrit la façon dont la qualité du projet sera assurée.

ACSEO a mis en place un Plan que Qualité Projet spécifique à la réalisation de projets Web et Mobile. N'hésitez pas à nous contacter pour en savoir plus

Testez votre produit à tous les étages

Suivez la qualité du projet en local

Tout commence en local, sur le poste de travail de chaque développeur et développeuse. Grâce à l'utilisation combinée de git hooks et commandes enregistrées dans le Makefile du projet, nous pouvons lancer des commandes permettant de vérifier que le code est compatible avec les standards du projet. Sur un projet Symfony standard ACSEO, avant de pouvoir commiter, les tâches suivantes seront automatiquement exécutées :

  • Syntaxe du code source avec PHP CS
  • Lint du code Javascript avec eslint
  • lint des fichiers Yaml et Twig
  • Validation du schéma de la base de données avec Doctrine
  • Validation des dépendances PHP avec Composer validate
  • Analyse statique du code PHP avec PHP Stan
  • Enfin, lancement des tests unitaires avec PHPUnit

Centralisez le suivi de la qualité

Le code source une fois envoyé sur le système de versionning, des étapes d'intégration continue et de déploiement continu vont s'enclencher pour lancer de nouveaux tests, et si tous les tests sont au vert, déployer une version intermédiaire du projet sur un serveur de test.

Parallèlement à cette étape, les outils comme Symfony Insight (que nous utilisons) peuvent être lancés pour analyser la qualité du code produit, et identifier une amélioration ou une régression de celle-ci

Testez de bout en bout

Et parce qu'en fin de compte, un produit sera de qualité si il fonctionne bien pour les utilisateurs finaux, il est important de pouvoir faire des tests de bout en bout (end to end user testing).

En quoi consistent les tests de bout en bout ? A s'assurer que l'utilisateur final, par exemple l'internaute, parviendra bien à utiliser le produit ou le service qui a été développé. Pour cela, il faut tester en conditions réelles notre application. Cela veut dire exécuter des scénarios complexes de tests, mettant en jeu les mêmes mécanismes d'interraction (UI) que ceux que rencontreront l'utilisateur.

La mise en place de tests de bout en bout est la forme la plus complète mais aussi la plus complexe à mettre en oeuvre. nécessite :

  • De disposer d'un environnement de test avec des jeux de données maitrisés
  • De tester le comportement de l'application côté client (Front)
  • De tester le comportement de l'application côté serveur (Back)

Pour cela, une seule solution : automatiser l'exécution de tests dans un navigateur Web

Panorama des solutions existantes

De nombreuses solutions existent afin d'écrire et réaliser des tests dans un navigateur. La plupart sont réalisées à l'aide de Selenium

Pour approfondir le sujet, nous vous invitons à jeter un oeil aux solutions suivantes :

Vous voulez des projets de qualité, Contactez nous !

Une idée, un projet ? Nous sommes à votre disposition pour discuter.