Paris Test Conf #1

Une premiĂšre Ă©dition oĂč toutes les places ont Ă©tĂ© vendues, le test intĂ©resse, certains diront passionne. Indispensable pour notre industrie logiciel en manque de stabilitĂ©, il est nĂ©anmoins bĂąclĂ© ou oubliĂ© par une belle partie de notre industrie Ă  raison de fausses excuses de rapiditĂ© ou un manque d’habitude. A ne pas tester on le paye toujours plus tard, souvent lorsqu’on veut ĂȘtre capable de passer Ă  l’échelle.

Le test, c’est du dev

Jean Pierre Lambert qui anime Scrum Life nous le dit si bien

On ne part pas en dev tant qu’on ne sait pas comment le tester

Ne pas prĂ©voir comment on va tester une tĂąche c’est prendre le risque de la revoir apparaĂźtre dans le backlog une semaine aprĂšs lorsqu’on sera passĂ© Ă  autre chose en ayant oubliĂ© la plupart des dĂ©tails 😬

J’ai souvent fait et vu un tableau SCRUM avec une colonne TEST juste avant celle de DONE. Thomas Lelong, ingĂ©nieur quality & assurance chez back market, nous fait part de son expĂ©rience de faire un “shift left” sur la colonne des tests dans notre tableau SCRUM pour la placer ou l’incorporer directement dans la colonne du dĂ©veloppement.

Selon moi, le risque en ayant une Ă©quipe de test dĂ©tachĂ©e de l’équipe de dev, ou que la tĂąche soit faite aprĂšs l’étape de dĂ©veloppement, c’est une dĂ©-responsabilisation de l’équipe de dĂ©veloppeurs sur le produit final, qui aboutira sur le long terme Ă  des bugs et des dĂ©lais plus long pour mettre en production, avec plusieurs aller-retours qui peuvent mettre en pĂ©ril la cohĂ©sion des Ă©quipes.

Tester, c’est une vraie compĂ©tence

StĂ©phane Colson nous a montrĂ© 6 exemples d’erreurs monumentales faite par les GAFAM. MalgrĂ© leur tests poussĂ©s (ou non 😅) il peut toujours y avoir une erreur, le but Ă©tant d’ajouter de plus en plus de couche de tests pour les Ă©viter.

Kevin Roulleau, nous a prĂ©sentĂ© les tests bout Ă  bout mobiles iOS et Android chez Happn avec Appium et Cucumber pour s’assurer de la qualitĂ© de leur app. Ils monitorent les temps d’exĂ©cution pour s’assurer des performances et pour tester sur de nombreux appareils sans devoir en acheter et les maintenir Ă  jour, ils utilisent les services de Sauce Labs.

Le vocabulaire du test

Le Behaviour Driven Development pour écrire nos scénarios de tests accessibles à tous avec les mots de la syntaxe Gherkin:

  • Étant donnĂ© que (une situation de dĂ©part)
  • Et (des prĂ©cisions)
  • Quand (une action)
  • Et (des prĂ©cisions)
  • Alors (une consĂ©quence ou situation d’arrivĂ©e)

Les tests exploratoires : tester la plateforme de la façon la plus bizarre que vous puissiez, qui rĂ©sulte en gĂ©nĂ©ral Ă  la dĂ©couverte de bug 😁 Pour ne pas s’y perdre, on peut s’aider de cette syntaxe:

explore ___ with ___ to discover ___

Les sanity tests cherchent si les bugs ou la fonctionnalitĂ© marchent bien lors des mises en production, Ă  travers un humain testant manuellement les nouveautĂ©s livrĂ©es : c’est le sommet dans la hiĂ©rarchie de la pyramide des tests car ils peuvent prendre du temps.

A l’inverse, les tests unitaires qui sont situĂ©s Ă  la base de la pyramide sont rapides Ă  coder (ou alors c’est un signe que nous devons refactorer notre code 😜), ils sont aussi idĂ©aux pour trouver des erreurs, refactorer avec plus sĂ©rĂ©nitĂ©, mais aussi documenter notre code. Ils devraient ĂȘtre prĂ©sents Ă  presque tous les endroits de notre app.

Les tests d’intĂ©gration permettent de tester plusieurs systĂšmes entre eux, ils sont rĂ©putĂ©s pour planter pour aucune raison logique (comprendre : cache, concurrence, 3rd party, 
) une fois sur 3, et pour ĂȘtre durs Ă  maintenir. Cependant, ils permettent de gagner en confiance lors des mises en production et grĂące Ă  eux on peut franchir l’étape de dĂ©ploiement continu avec plus d’aisance.

Des visions différentes

J’ai entendu pour la premiĂšre fois le terme automaticien pour parler de testeur. Ce mot est employĂ© pour diffĂ©rencier les diffĂ©rents types de testeurs, certains plus orientĂ©s mĂ©tier et d’autres plus techniques. Selon moi, ces derniers sont des dĂ©veloppeurs qui s’ignorent 😛

A la maniĂšre du mouvement DevOps, qui rapproche dev et ops, je n’ai pas pu m’empĂȘcher de penser Ă  lancer le mouvement DevQA, il doit certainement exister d’ailleurs je suis curieux d’apprendre son nom 😁 Une Ă©quipe experte en test qui met en place les outils et s’occupe de la diffusion des bonnes pratiques parmi les Ă©quipes de dĂ©veloppement. Cette Ă©quipe aiderait ponctuellement les dĂ©veloppeurs Ă  tester leur code, car progressivement les dĂ©veloppeurs deviendraient indĂ©pendants sur les tests.

Docker chez les testeurs

Arnaud Bailly et moi avons parlĂ© Docker 😬 Cette technologie peut nous aider Ă  tester et dĂ©velopper plus efficacement : faciliter l’accĂšs Ă  n’importe quel projet en pouvant le lancer avec une ligne de commande, nous Ă©vite d’ĂȘtre fainĂ©ant pour tester nos montĂ©es de versions de bases de donnĂ©es, et nous permet mĂȘme de simuler des coupures rĂ©seaux pour tester la rĂ©silience de nos apps.

La conférence a pu paraßtre trÚs technique, on est convaincu que cette technologie, qui peut faire peur au démarrage, peut amener un changement de mentalité nécessaire à nos organisations en y ajoutant plus de collaboration, et ça, du product owner au data engineer.

L’agilitĂ© chez les managers

Bertrand Foucault nous parle d’avoir un prisme de l’intention positive : chaque rĂ©sultat a Ă©tĂ© fait du mieux qu’on pouvait avec l’information dont on disposait, d’accepter que le modĂšle du monde de chacun est diffĂ©rent, et qu’on a tous en nous les moyens de franchir les obstacles.

Mot de la fin

Il faut responsabiliser les dĂ©veloppeurs Ă  la production, et ça passe par acquĂ©rir un savoir faire mĂ©tier mais aussi un savoir faire de testeur pour casser les frontiĂšres entre le monde du dev et du test : #DevQA 😁. En comprenant les forces et les faiblesses d’un produit qu’on dĂ©veloppe, on devient plus efficace pour coder, tester et dĂ©ployer et on contribue activement Ă  la rĂ©ussite du produit.