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.