Une application mobile ne peut pas ĂȘtre considĂ©rĂ©e comme "terminĂ©e" uniquement parce qu'elle se lance ou qu'elle fonctionne sur le tĂ©lĂ©phone du dĂ©veloppeur.
Avant toute publication (et mĂȘme tout au long du dĂ©veloppement), il est indispensable de vĂ©rifier que les fonctionnalitĂ©s rĂ©pondent rĂ©ellement aux besoins attendus.
Ce chapitre se concentre sur la vérification des exigences fonctionnelles, c'est-à -dire sur la question essentielle :
Est-ce que l'application fait correctement ce qu'elle est censée faire ?
Ă la fin de ce chapitre, vous serez capables de :
Dans un contexte de développement mobile, il est trÚs courant d'entendre des phrases comme :
"Bah moi ça marche sur mon tĂ©lĂ©phone ! âïžđ€"
Mais ce constat est largement insuffisant.
Une application mobile est utilisée :
Un bug fonctionnel peut avoir des conséquences immédiates :
Sur mobile, ces effets sont amplifiés :
Tester les exigences fonctionnelles permet donc de :
Une exigence fonctionnelle décrit une action que l'utilisateur doit pouvoir réaliser dans l'application.
Elle exprime un besoin concret, du point de vue de l'utilisateur, et non du développeur.
Exemples :
đš Important :
Chaque exigence fonctionnelle doit pouvoir ĂȘtre :
Il existe un lien direct entre :
Sans exigence clairement identifiée, il est impossible de tester correctement.
Dans le cadre de ce module, les tests fonctionnels sont principalement manuels.
Ils consistent à utiliser l'application comme le ferait un utilisateur, en suivant des scénarios précis.
On distingue notamment :
Tests manuels dirigĂ©s â on suit un cas de test prĂ©cis.
Tests exploratoires â on explore l'application de maniĂšre plus libre, pour dĂ©tecter des comportements inattendus.
Tests de rĂ©gression â rĂ©alisĂ©s aprĂšs une correction pour vĂ©rifier que les fonctionnalitĂ©s existantes fonctionnent toujours.
Les tests peuvent ĂȘtre rĂ©alisĂ©s :
sur un émulateur
sur un appareil réel
đ Sur mobile, tester sur un appareil rĂ©el est toujours recommandĂ© avant publication.
Un cas de test décrit précisément comment vérifier une exigence fonctionnelle.
Il doit ĂȘtre suffisamment clair pour que n'importe quelle personne puisse l'exĂ©cuter et obtenir le mĂȘme rĂ©sultat.
Un cas de test fonctionnel contient généralement :
Exigence : lâutilisateur peut se connecter avec un compte valide.
Préconditions :
Ătapes :
Résultat attendu :
Un bon cas de test est :
précis
compréhensible
reproductible
Exécuter un test = suivre exactement les étapes décrites dans le cas de test, puis observer le comportement réel.
Ă lâissue de lâexĂ©cution, le rĂ©sultat peut ĂȘtre :
â Conforme
â Non conforme
Il est important de noter les observations, mĂȘme si le test est rĂ©ussi.
En cas de test non conforme, il est utile de collecter :
đ Ces informations seront prĂ©cieuses pour :
Un bug fonctionnel apparaßt lorsqu'une exigence n'est pas respectée.
Pour qu'un bug puisse ĂȘtre corrigĂ© efficacement, il doit ĂȘtre dĂ©crit clairement.
â "L'app ne marche pas quand je clique sur le bouton de connexion."
ProblĂšmes :
pas de contexte (appareil, version...) ;
pas d'Ă©tapes prĂ©cises â impossible de reproduire ;
pas de résultat attendu exprimé ;
"ne marche pas" peut vouloir dire :
(et en plus, elle n'a pas de jambes)
âïžđ€ "Sur un iPhone 12 avec la version 1.0.0 de l'application, lorsque je clique sur le bouton de connexion aprĂšs avoir saisi mes identifiants, rien ne se passe : la page reste statique. J'attendais Ă ĂȘtre redirigĂ© vers l'Ă©cran principal."
Ce rapport contient :
un contexte précis
des étapes claires
le résultat observé
le résultat attendu
Une fois le bug corrigé :
le test correspondant doit ĂȘtre rejouĂ© ;
on vérifie que :
Cycle fondamental :
test â bug â correction â re-test
Corriger un bug peut parfois en créer un autre.
Les tests de régression consistent à rejouer des tests existants aprÚs une modification du code.
Sur une application mobile, il est particuliĂšrement important de re-tester :
les fonctionnalités principales ;
les parcours utilisateurs critiques :
MĂȘme une petite modification peut avoir un impact inattendu ailleurs.
Un utilisateur a décompilé des fichiers du jeu Team Fortress 2 et a découvert une image de noix de coco dans les assets.
En essayant de la supprimer, il constate que le jeu ne se lance plus sans ce fichier.
Personne nâest 100 % certain, mais cela illustre bien :
une petite modification peut avoir des conséquences inattendues.
"I have no f**** idea who put this here, but when I deleted it the game wouldnât start. Words cannot describe my f**** confusion."*
Quelques principes essentiels :
Les tests fonctionnels sont une étape clé de la qualité logicielle, et non une contrainte inutile.
Ă partir dâune application mobile donnĂ©e (rĂ©elle ou fictive), vous devez :
Ce travail peut ĂȘtre rĂ©alisĂ© :