Besoin · Qualité et stabilité

Votre application a trop de bugs : sortir du cycle correction, régression

Une application qui accumule les bugs manque rarement de développeurs : il lui manque des filets de sécurité. Un registre des anomalies, une préproduction, des tests automatisés sur les parcours critiques et une recette écrite arrêtent d'abord les régressions ; la dette technique se résorbe ensuite par priorité. YMHB Web pose ces filets avant d'ajouter la moindre fonction.

L'essentiel

  • Une application instable manque surtout de filets de sécurité : registre des anomalies, préproduction, tests automatisés, recette écrite et livraisons petites et fréquentes.
  • Selon Android Developers, Google Play peut réduire la visibilité d'une application dont le taux de plantage perçu dépasse 1,09 % sur l'ensemble des appareils.
  • Les règles de l'App Store prévoient qu'Apple rejette les applications qui plantent ou présentent des problèmes techniques évidents.
  • La CNIL recommande de tester avec un jeu de données fictives représentatif plutôt qu'avec les données réelles de production.
  • Sur Klass., projet dont le fondateur de YMHB Web est cofondateur, un programme maison rejoue 269 contrôles automatisés à chaque mise à jour.

Comment savoir que l'instabilité est devenue structurelle ?

L'instabilité est devenue structurelle quand corriger un bug en fait apparaître un autre ailleurs. Le scénario est connu : un loueur de matériel fait corriger le calcul des remises dans son application de réservation ; la semaine suivante, l'export comptable ne sort plus les bons montants. La correction avait été faite directement sur le serveur de production un vendredi soir, sans test, et plus personne ne sait exactement quelle version tourne.

Les signes qui ne trompent pas :

  • les mêmes anomalies reviennent après avoir été déclarées corrigées ;
  • les clients signalent les bugs avant que l'entreprise ne les voie ;
  • chaque mise en production est redoutée et se fait hors des heures d'activité ;
  • les évolutions sont gelées parce que « ce n'est pas stable » ;
  • les anomalies sont éparpillées entre e-mails, messages et appels.

Que coûtent vraiment les bugs ?

Les bugs coûtent du temps de support, des gestes commerciaux et, pour une application mobile, de la visibilité. Android Developers indique que les indicateurs essentiels d'une application influencent sa visibilité sur Google Play : au-delà d'un seuil de mauvais comportement, Google Play peut réduire la visibilité de l'application et afficher un avertissement sur sa fiche. Ces seuils sont publiés :

Indicateur Android vitalsSeuil globalSeuil par modèle de téléphone
Taux de plantage perçu par l'utilisateur1,09 %8 %
Taux d'ANR perçu (application qui ne répond plus)0,47 %8 %

Google Play évalue la qualité sur les 28 derniers jours de données. Côté Apple, la règle 2.1 des App Review Guidelines demande de tester l'application sur appareil avant soumission et précise qu'Apple rejette les binaires qui plantent ou présentent des problèmes techniques évidents : une version instable peut donc retarder une mise à jour urgente.

Le coût le moins visible est interne : une équipe qui éteint des incendies toute la semaine ne livre plus rien de neuf.

D'où vient l'instabilité ?

L'instabilité vient presque toujours d'une méthode de travail, rarement d'un développeur en particulier.

  • Aucun test automatisé : chaque modification est vérifiée à la main, partiellement, quand on y pense.
  • Pas de préproduction : les corrections sont essayées directement face aux clients.
  • Des livraisons trop grosses : quinze changements partent ensemble, et quand quelque chose casse, impossible de savoir lequel est en cause.
  • La dette technique : code dupliqué, raccourcis jamais repris, dépendances obsolètes.
  • Des règles métier jamais écrites : ce que l'un appelle un bug, l'autre l'appelle le comportement prévu.

Les cinq filets de sécurité, dans l'ordre

Cinq filets de sécurité, posés dans cet ordre, suffisent à arrêter les régressions avant de s'attaquer au fond.

  1. Un registre unique des anomalies, où chaque signalement indique comment le reproduire, la gravité, l'appareil et la version. Les e-mails épars disparaissent.
  2. Une préproduction, copie de la production, où chaque correction est vérifiée avant de partir. Dans sa fiche « Tester vos applications », la CNIL recommande de ne pas utiliser les données réelles de production pour les tests et de construire un jeu de données fictives représentatif, en anonymisant les données personnelles si des configurations de production doivent être reprises.
  3. Des tests automatisés sur les parcours qui comptent : création de compte, commande, paiement, facture. La même fiche recommande un système d'intégration continue qui lance les tests automatiquement après chaque modification du code source.
  4. Une recette écrite avant chaque mise en production, rejouée par une personne du métier, selon la méthode de notre guide de la recette logicielle. Pour le mobile, les canaux de test des stores servent de dernier filet : TestFlight permet d'inviter jusqu'à 100 testeurs internes et 10 000 testeurs externes, et la Play Console propose un test interne ouvert à 100 testeurs, puis des tests fermés et ouverts.
  5. Des livraisons petites et fréquentes, que l'on peut annuler en quelques minutes si un problème apparaît.

Comment trier les anomalies ?

Toutes les anomalies ne se valent pas : une grille de gravité, partagée avec le métier, décide de ce qui se corrige tout de suite et de ce qui attend.

GravitéExempleTraitement
BloquanteLe paiement échoue pour tous les clientsCorrectif immédiat, puis test automatisé qui empêche le retour du problème
MajeureUn montant faux sur une facture dans un cas précisProchaine livraison, avec un cas de test ajouté
MineureUn libellé tronqué sur petit écranRegroupée avec d'autres corrections
Évolution déguisée« Le bouton devrait aussi envoyer un SMS »Retirée du registre des bugs, chiffrée comme une évolution

Klass. : 269 contrôles rejoués à chaque mise à jour

Sur Klass., plateforme de sous-traitance pédagogique entre écoles, CFA et formateurs (projet dont le fondateur de YMHB Web est cofondateur), un programme de vérification maison rejoue 269 contrôles automatisés à chaque mise à jour : accès, cloisonnement entre établissements, scénarios métier, liens, données structurées et accessibilité. La règle est simple : si un seul contrôle échoue, la mise à jour ne part pas.

Ce niveau de contrôle se justifie par la structure de la plateforme, qui compte trois portails et douze rôles utilisateurs : une erreur de droits exposerait les données d'une école à une autre. Sur une application plus simple, quelques dizaines de tests ciblés sur les parcours critiques suffisent souvent à casser le cycle des régressions.

Faut-il commencer par un audit ?

Un audit s'impose lorsque plus personne ne sait vraiment ce que contient le code, par exemple après le départ du prestataire d'origine. Il cartographie les zones fragiles, mesure ce qui est testé, liste les dépendances obsolètes et propose un ordre de remise à niveau ; notre page sur le prix d'un audit de code détaille son contenu. Quand le code est récent et connu, on peut poser directement les filets sur les parcours les plus touchés.

Dans les deux cas, YMHB Web suit le même ordre : registre et préproduction d'abord, tests sur les parcours critiques ensuite, puis correction des anomalies par gravité, sans nouvelle fonction tant que la stabilité n'est pas revenue. Le code et les tests écrits appartiennent au client au paiement intégral.

Quand le problème n'est pas dans le code

Une partie des « bugs » ne se corrige pas avec du code, et un développement supplémentaire n'est pas toujours la bonne dépense.

  • Les spécifications sont floues : si personne n'a écrit ce que l'application doit faire dans tel cas, chaque comportement inattendu est vécu comme un bug. Écrire les règles fait disparaître une partie des « bugs ».
  • Le besoin est standard : pour une prise de rendez-vous ou une facturation classique, un logiciel du marché, éprouvé par des milliers d'utilisateurs, sera plus stable qu'un développement spécifique.
  • L'usage est très faible : pour un outil interne utilisé par trois personnes, une liste de vérification manuelle avant chaque mise à jour peut suffire.
  • La feuille de route déborde : ajouter des fonctions à une application instable aggrave la situation. Geler les évolutions quelque temps est souvent la décision la plus rentable.

Questions fréquentes

Qu'est-ce qu'un test de non-régression ?

Un test de non-régression vérifie qu'une modification n'a pas cassé une fonction qui marchait auparavant. Concrètement, chaque bug corrigé donne lieu à un test automatisé qui reproduit le cas fautif, rejoué à chaque mise à jour. Si le problème revient, la mise à jour est bloquée avant d'atteindre les utilisateurs. C'est le moyen le plus direct d'en finir avec les bugs qui reviennent.

Une application peut-elle n'avoir aucun bug ?

Aucune application d'une certaine taille n'est totalement exempte de bugs. L'objectif réaliste est ailleurs : que les parcours critiques (commande, paiement, facture) soient couverts par des tests, que les anomalies soient détectées en préproduction plutôt que par les clients, et qu'un bug corrigé ne revienne jamais. Une application stable est une application dont les bugs restent rares, mineurs et vite corrigés.

Peut-on tester une application avec les vraies données des clients ?

La CNIL recommande de ne pas utiliser les données réelles de production pour les développements et les tests, et de construire un jeu de données fictives représentatif, dont la divulgation n'aurait aucun impact pour les personnes. Si des éléments de production doivent être repris dans un scénario de test, les données personnelles qu'ils contiennent doivent être anonymisées avant usage.

Pourquoi Google Play peut-il pénaliser une application qui plante ?

Google Play mesure la stabilité des applications avec les Android vitals. Selon Android Developers, une application dont le taux de plantage perçu dépasse 1,09 % sur l'ensemble des appareils, ou 8 % sur un modèle de téléphone, franchit un seuil de mauvais comportement : Google Play peut alors réduire sa visibilité et afficher un avertissement sur sa fiche. L'évaluation porte sur les 28 derniers jours.

Combien de tests automatisés faut-il écrire ?

Il n'existe pas de nombre idéal de tests automatisés. La priorité va aux parcours qui rapportent de l'argent ou qui en coûtent en cas d'erreur, puis à chaque bug corrigé. La CNIL conseille de fixer avant le développement les métriques jugées acceptables, comme le taux de couverture des tests. Sur Klass., projet dont le fondateur de YMHB Web est cofondateur, 269 contrôles sont rejoués à chaque mise à jour.

À lire aussi

Sources

  1. Android Developers, Android vitals : seuils de mauvais comportement et visibilité sur Google Play
  2. Apple, App Review Guidelines, règle 2.1 App Completeness (consultées en octobre 2026)
  3. CNIL, « Tester vos applications », guide RGPD de l'équipe de développement (27 janvier 2020)
  4. Apple Developer, TestFlight (testeurs internes et externes)
  5. Aide Console Play, Configurer un test ouvert, fermé ou interne

Prêt à démarrer ?

Décrivez-nous votre situation, pas une liste de fonctionnalités.

Réponse sous un jour ouvré, en général par téléphone. Si un outil du marché suffit, nous vous le dirons.

Premier échange sans engagementCadrage avant chiffrage

AppelerDécrire mon problème