Note : 7 ; D’excellents conseils dans la lignée du titre éponyme sur les user stories
Gojko Adzic et ses co-auteurs ont gardé la recette qui marche avec ce nouveau titre. Celui-ci ne compte que 117 pages, et comme le titre le suggère : 50 conseils chacun occupant 2 pages avec une illustration quelque peu décalée. Ces conseils sont répartis en 4 sections.
La première partie « generating testing ideas » regroupe 12 conseils. Je citerais en particulier parmi ceux-ci la « big picture view of quality », un pendant pour les tests de la pyramide de Maslow. Un concept bien plus intéressant que la classique pyramide des tests rassemblant des choux et des carottes ! Le « tap into your emotions » nous donne un truc de plus pour explorer les tests à construire. « monitor trends in log & console » est une excellente idée pour chercher des éléments à inspecter. Enfin le « mob your test sessions » est une nouvelle variante du workshop des 3 amis, étendu à plus de personne et qui ne se limite pas à l’écriture des cas de test !
La seconde partie « designing good checks » nous donne des guides pour mieux concevoir nos cas de test. Le « describe what, not how » permet de garder le cap sur des tests boite noire pour les tests d’acceptation. « avoid mathematical formula » s’adresse à ceux qui tendent à écrire des cas de test abstrait. Le « use given-when-then in strict sequence » est probablement le conseil le plus important de cette section : si vous ne devez n’en retenir qu’un, que ce soit celui-ci. Ce livre gravite autour des tests de validation, « split technical and business tests » nous rappelle que l’on confond bien trop souvent tests de validation et tests d’intégration. Enfin , « don’t automate manual tests » met l’accent sur la différence entre les tests exploratoires et les tests d’acceptation.
La 3ème section est consacrée à l’amélioration de la testabilité. Elle est couverte par 9 conseils. Ils sont nombreux à être très utiles, depuis le désormais classique (mais pour qui ?) « wrap synchronous database tests in transaction » qui permet le rollback de le bases de données au « provide external atomic resource » qui poursuit le même objectif pour d’autres types de ressources en passant par le « minimize UI interactions » qui nous exhorte à ne pas passer par l’IHM pour les tests d’acceptation ! D’autres sont moins classiques comme « don’t clean up after » qui s’avère au final du bon sens, ou « use production metrics » qui ne vient pas nécessairement immédiatement à l’esprit. Enfin « wait for event, not time » adresse une source récurrente de problème dans la réalisation des tests d’acceptation.
La dernière partie « managing large tests suite » adresse ce thème, mais aussi quelques conseils qui ne rentraient pas dans les 3 parties précédentes. « design tests together with other teams » est une approche pour contractualiser les interfaces entre systèmes par les tests, de quoi gagner souvent plusieurs mois d’efforts sur les gros projets ! « decouple coverage from purpose » nous rappelle qu’il faut privilégier la finalité du test, un point particulièrement important pour une bonne stratégie de tests. Parmi mes préférés « optimize for reading, not writing » soulève un de mes point préférés : l’expressivité des tests ! Dans la même lignée, « name tests for search engine optimization » énonce assez bizarrement la nécessité d’avoir de bons titres de tests (et encore une fois expressifs !). Enfin « let the chaos monkey out periodically » évoque un sujet méconnu, les tests de mutation (mais pas n’importe lesquels).
Si vous avez un bon niveau sur les tests d’acceptation, ce texte vous apprendra peu de choses, mais bien suffisamment pour en justifier la lecture, sans compter l’ordre qu’il remettra dans vos réflexions. Si vous avez un niveau de base, aucun doute que cette lecture vous sera précieuse. Enfin, si vous êtes débutant, il vous faudra probablement envisager d’autres lectures avant d’attaquer celle-ci. Au final, un livre hautement recommandé !
Référence complète : Fifty Quick Ideas to Improve your Tests – Gojko Adzic, David Evans & Tom Roden – Neuri Consulting / Leanpub 2015 – ISBN : 978 0 9930881 1 7