L’édito de GNU/Linux Magazine n°219 !

Avez-vous remarqué comme, étrangement, de plus en plus d’applications et de sites en ligne dysfonctionnent ? Je pense avoir enfin trouvé un élément de réponse à ce phénomène qui se généralise… mais avant de vous exposer mon hypothèse, je vous propose de revenir sur deux exemples concrets auxquels j’ai été confronté au cours de la même semaine.

Tout d’abord, je reçus un appel de détresse de ma mère qui ne parvenait pas à acheter des places d’opéra sur Internet. Rien que de très habituel : elle n’avait sans doute pas vu où cliquer ou avait dû se tromper de champ de formulaire… Je pris donc le temps de refaire la manipulation avec elle en utilisant chacun un navigateur différent à savoir Chromium (Google Chrome) et Firefox. Nous obtînmes le même résultat et nous retrouvâmes dans l’impossibilité de sélectionner une place sur le plan qui s’affichait (le clic ne produisait aucun évènement). Trouvant cela vraiment étrange, je décidai de tester sur un autre navigateur. Sur iPad avec Safari le résultat fut le même… mais sous Android avec Chrome (version Mobile 67), je pus achever la réservation.

Quelques jours après, je voulus effectuer une commande sur un site marchand. Il ne s’agissait pas d’un de ces monstres de la vente par correspondance, mais d’une enseigne de taille moyenne aux États-Unis. La commande se déroula sans accroc, le paiement également et mon colis fut expédié. Jusque-là pas de problème. C’est après que les complications apparurent : la commande partant de Los Angeles et n’étant pas un envoi prioritaire, au bout de quelques jours, comme nous en avons tous pris l’habitude, je cliquai sur un lien me permettant de suivre mon colis et j’aboutis sur une page… blanche ! Un petit problème de serveur, ça peut arriver et je décidai donc d’attendre le lendemain… pour un résultat identique. Me souvenant de mon expérience précédente, je tentai sans trop y croire une visualisation sur mon smartphone. Et là, ô miracle, les informations apparurent comme par enchantement !

On ne peut bien entendu pas tirer de généralités de ces deux expériences, mais elles soulignent un point important : bien souvent les applications et services ne sont pas purement et simplement buggées, elles ne sont pas testées ! Dans ces deux cas, on peut facilement imaginer qu’un seul navigateur a été employé et que la validation en mise en production a pu se produire de la manière suivante :

– côté développeurs : « si ça marche chez moi c’est que ça marche chez tout le monde ! » :

– côté client : « ils savent ce qu’ils font, ça doit fonctionner ».

Tester un programme n’est pas une activité plaisante, mais elle est nécessaire. Elle paraît pourtant être souvent négligée. Même lorsque j’indique à mes étudiants en développement web que les tests feront partie des critères de notation d’un projet, environ 50% d’entre eux ne teste absolument rien (que ce soient les saisies utilisateur ou l’exécution sur différents navigateurs). Pourtant, même lors de calculs basiques on peut s’assurer de la validité d’un résultat. En simplifiant à l’extrême, avec x + 1 = 2, on peut dire que x = 10… On s’aperçoit vite que 10 + 1 ne vaut pas 2, mais pour cela il faut prendre le temps de tester le résultat obtenu et peut-être encore plus important avoir l’humilité de se dire que l’on a pu faire une erreur : « Errare humanum est ».

La prochaine fois qu’une application dysfonctionne, pensez donc à tester des choses basiques puisque les tests ne sont plus à la mode. En attendant, vous pouvez toujours lire GNU/Linux Magazine et vous astreindre à tester TOUS vos codes…

Tristan Colombo


Retrouvez GNU/Linux Magazine n°219 :