Fadio IT logo
Fadio IT

Quality Assurance

Plusieurs rôles entrent en jeu dans l'élaboration d'un projet de développement. Hormis les développeurs et les designers que tout le monde connait, il y a un métier de l'ombre, mais determinant dans l'aboutissement d'un projet : le contrôle QA pour "quality assurance". Donner une assurance qualité signifie contrôler à chaque étape du développement le respect et l'exactitude des spécifications prévues dans le cahier des charges et leur fonctionnement optimal final.

Voici en quelques ligne quelles sont les grandes étapes du métier de la QA dans le déroulé d'un projet


Écriture user story

Intégrer et décrire l'expérience utilisateur lors du démarrage du projet permet de donner un périmètre aux tests de QA qui vont être réalisés en parallèle du développement. Une décomposition simple d'action du type qui/quoi/quand/résultat qui servent de cadre à la cohérence des fonctionnalités attendues pour accomplir ces actions.

userStory

Fonctionnalités et spécifications décomposées en détail dans spreadsheet

Le détail des fonctionnalités est reporté dans des feuilles de calcul. Le format tableur permet de garder une trace logique des évolutions des spécifications en fonction des versions et des changements apportés en cours de développement. Ce format permet également de créer des scenarios de walkthrough.

spreadsheet

Contrôle code fini:

Grace à la décomposition des éléments fonctionnels effectuée dans les feuilles de calcul chaque livraison de code stabilisé peut être contrôlé en suivant les étapes suivantes:

  • Parcours d'une fonctionnalité élément par élément
  • Scénarios de walkthrough d'usage type
  • Stress test
  • Tests exploratoires
  • Test de régression et automatisation

Parcours d'une fonctionnalité élément par élément

Chaque fonctionnalité est testé individuellement indépendamment du fonctionnement du reste du programme.

Scénarios de walkthrough d'usage type

Les fonctionnalités sont ensuite intégrées à une démarche type pensée pour être suivie par l'utilisateur final dans un usage logique de l'application. Ces scenarios s'approche des user story designées en amont mais détaillent quant à eux toutes les étapes et actions suivies jusqu'au résultat attendu.

walkthrough

Stress test

La fonctionnalité est poussé à réagir dans des conditions d'usage intensif et répété pour établir sa stabilité. Ce test peut être réalisé manuellement par un testeur ou automatiquement dans le cadre d'un script de maintenance.

Tests exploratoires

Un ensemble défini de plusieurs fonctionnalités sont sollicités sans qu'une cohérence précise dans leur utilisation les unes vis à vis des autres ne soit considérée. Souvent réalisés à la main par un testeur. Ce sont les tests considérés comme les plus qualitatifs car ils permettent de découvrir des dysfonctionnements inattendus et de parer à des bugs parfois critique. Demande au testeur une connaissance poussée du logiciel pour réaliser une utilisation contre-intuitive des fonctionnalités.

Test de régression et automatisation

Les contenus qui ne sont plus sujets à subir de modification dans un avenir proche peuvent être contrôlés par un "script", une routine de tests qui appliqueront une série d'instructions à accomplir et de données à traiter sans intervention humaine. ces scripts participent à la maintenance du projet pour s'assurer que des fonctionnalités qui n'ont pas subi de modifications directes ne soient pas impactées par les changements effectués dans d'autres parties du projet. La vitesse d'exécution et la répétition programmée de ces scripts peuvent servir également à "stess tester" un scénario de type walkthrough ou exploratoire.

gigAuto

Retours vers équipe de développement

Écrire un rapport de bug

Rédiger une description concise du bug rencontré et lister les étapes de reproduction nécessaires. Ce rapport peut être intégrer à des cartes à assigner dans un tableau de bord pour que l'équipe de développement puisse s'en saisir.

decrireBug visualWorkflowHelp

Tenir à jour un journal d'activité

Documenter les tests réalisés et les mises à jours effectuées dans un journal en plus des cartes de rapport peut s'avérer précieux pour avoir une vue rapide de l'état de développement de l'app

activityLog

Diversité des projets et finalité du rôle de QA

La versatilité des contraintes rencontrées dans chaque nouveau projet induit une certaine souplesse à apporter à ces méthodes de contrôle qualité. Suivant la complexité des fonctionnalités demandées et le choix du support d'utilisation du logiciel il est souvent illusoire d'espérer couvrir de façon exhaustive toutes les faiblesses potentielles d'un programme si le choix de la méthode de contrôle n'est pas pensé en amont. C'est souvent la fenêtre de temps allouée qui déterminera s'il est plus judicieux d'investir en premier dans l'écriture d'un script automatisé ou de réaliser un parcours exploratoire "à la main".

Le rôle de QA associé étroitement au processus de développement est primordial lorsqu'il s'agit de produire des logiciels et des applications modernes dont on sait que le succés dépend essentiellement de la fiabilité et de la stabilité lors de leur sortie et leur mise à disposition du grand public