Mon projet concernant le Test Agile

De Wiki Agile du @GroupeCESI
Aller à : navigation, rechercher

Auteur : Brain Marick
Source : My Agile testing project
Date : 21/08/2003


Traducteur : Fabrice Aimetti
Date : 07/07/2019


Traduction :

Lors de XP Agile Universe, deux personnes - peut-être plus - m'ont dit que je ne faisais pas assez pour aider au développement du Test Agile en tant que discipline, comme un ensemble stable et largement reconnu de compétences. Je passe trop de temps à dire que je ne sais pas où en sera le Test Agile dans cinq ans, pas assez à pointer dans une direction et à dire "Voyons si on ne pourrait pas le trouver là-bas". Ils ont probablement raison. C'est donc le début d'une série de notes dans lesquelles je vais faire exactement cela.

Je vais commencer par réitérer deux distinctions qui, à mon avis, sont de plus en plus courantes.

Si vous entendez quelqu'un parler de tests dans les projets Agiles, il est utile de demander si ces tests sont orientés métier ou orientés technologie. Un test orienté métier est un test que vous pourriez décrire à un expert métier en des termes qui pourraient (ou devraient) l'intéresser. Si vous parliez au téléphone et que vous vouliez décrire les questions auxquelles le test répond, vous utiliseriez des mots tirés du domaine métier : "Si vous retirez plus d'argent que ce que vous avez sur votre compte, le système vous accorde-t-il automatiquement un prêt pour la différence ?"

Un test orienté technologie est un test que vous décrivez avec des mots tirés du domaine des développeurs : "Différents navigateurs implémentent Javascript différemment, donc nous testons si notre produit fonctionne avec les navigateurs les plus importants." Ou : "PersistentUser#delete ne devrait pas se plaindre si l'enregistrement utilisateur n'existe pas."

(Ces catégories ont des limites floues, comme tant d'autres. Par exemple, le choix des configurations de navigateur à tester est en partie une décision métier.)

Il est également utile de demander aux personnes qui parlent de tests si elles veulent que les tests aident le développement ou critiquent le produit. Par "aider le développement", j'entends que les développeurs les utilisent comme partie intégrante de l'acte de développement. Par exemple, certains développeurs écrivent un test qui leur dit quel code écrire ensuite. En écrivant ce code, ils changent une partie du comportement du programme. L'exécution du test après le changement les rassure sur le fait qu'ils ont changé ce qu'ils voulaient changer. L'exécution de tous les autres tests les rassure sur le fait qu'ils n'ont pas changé le comportement qu'ils avaient l'intention de laisser tranquille.

Les tests qui critiquent le produit ne sont pas centrés sur l'acte de développement. Ils examinent plutôt un produit fini dans l'intention de découvrir les défauts et les manquements.

Mettez ces deux distinctions ensemble et vous obtenez cette matrice :

Test-matrix.jpg

Dans les prochaines billets, je parlerai de chaque quadrant de la matrice. Quelle est ma meilleure hypothèse sur la façon dont elle devrait évoluer ?