← QA Mobile : principes, métier et pratique

Tests fonctionnels et non-fonctionnels

≈ 20 minutes · Prérequis : Les niveaux de test et la pyramide appliquée au mobile

Le gain du jour : distinguer ce qu’une app fait de comment elle le fait, et connaître les principales familles de tests non-fonctionnels critiques sur mobile — performance, compatibilité, sécurité, accessibilité.

Fonctionnel : est-ce que ça fait ce qui est demandé ?

Un test fonctionnel vérifie qu’une fonctionnalité se comporte comme spécifié : « en tapant sur Ajouter au panier, l’article apparaît dans le panier avec la bonne quantité ». C’est la famille de tests la plus intuitive, et celle qu’on associe spontanément au mot « test ».

Non-fonctionnel : est-ce que ça le fait bien ?

Une app peut réussir tous ses tests fonctionnels et rester inutilisable. Les tests non-fonctionnels couvrent les qualités transverses :

Performance

Temps de démarrage à froid (cold start), fluidité du défilement (60 images/seconde attendues), consommation de batterie, usage mémoire. Sur mobile, une app lente au démarrage subit un taux de désinstallation mesurable dès les premières secondes — c’est un critère aussi important qu’une fonctionnalité manquante.

Compatibilité

Reprend la matrice vue en leçon 3 : l’app se comporte-t-elle correctement sur les combinaisons OS/appareils/tailles d’écran ciblées ? Un bouton coupé sur un petit écran, un texte illisible en mode sombre non pris en charge sont des défauts de compatibilité, pas des défauts fonctionnels.

Sécurité

Les données sensibles (mot de passe, jeton de session, données bancaires) sont-elles chiffrées au repos et en transit ? L’app résiste-t-elle à une interception de trafic réseau ? C’est un axe souvent testé avec des outils comme Charles Proxy ou mitmproxy, qui interceptent le trafic HTTP(S) d’un appareil mobile pour vérifier qu’aucune donnée sensible ne transite en clair.

Accessibilité

L’app est-elle utilisable avec un lecteur d’écran (VoiceOver sur iOS, TalkBack sur Android), avec un contraste suffisant, avec une taille de police adaptable ? C’est à la fois une exigence légale dans de nombreux pays et un critère de qualité trop souvent relégué en fin de projet.

Utilisabilité (UX)

Un parcours techniquement fonctionnel peut rester confus : trop d’étapes pour créer un compte, un bouton d’action principal peu visible. Ce test est souvent qualitatif, mené par observation d’utilisateurs réels ou de testeurs jouant ce rôle.

Exemple concret : un cas qui passe le test fonctionnel et rate le non-fonctionnel

Une fonctionnalité de recherche renvoie les bons résultats (test fonctionnel ✅) mais met 8 secondes à répondre sur un appareil bas de gamme en 3G (test de performance ❌). Sans test non-fonctionnel, ce défaut n’est détecté qu’en production, via les avis utilisateurs sur le store.

Un outil concret : suivre les cas de test non-fonctionnels dans un tableau partagé

Beaucoup d’équipes centralisent leur matrice de tests non-fonctionnels dans un Google Sheet partagé entre développeurs et testeurs : une ligne par critère (temps de démarrage cible, taux de contraste minimal, appareils de la matrice de compatibilité), une colonne par résultat de campagne de test, avec un code couleur (vert/orange/rouge). C’est un outil simple, accessible à toute l’équipe sans licence spécifique, qui sert de point de référence commun en réunion de suivi qualité.

Vérifie ta compréhension

Une app affiche les bons résultats de recherche mais met 8 secondes à répondre. Quel type de test aurait dû détecter ce problème avant la mise en production ?

Un outil comme Charles Proxy sert principalement à tester quel aspect d'une app mobile ?

À toi de jouer

  1. Active un lecteur d’écran (VoiceOver ou TalkBack) sur ton téléphone et essaie de naviguer dans une app que tu utilises souvent. Note ce qui devient difficile ou impossible.

  2. Choisis une app et évalue son temps de démarrage à froid (appli fermée, pas juste mise en arrière-plan) — chronomètre-le sur ton appareil.

🗂 Fiche de référence associée : Glossaire QA mobile — antisèche.