Pour commencer, je ne pense pas que ce soit une répétition d' autres questions sur les tests unitaires . Ce que je recherche, c'est exprimer sa valeur à une équipe de programmeurs, d'analystes, de gestionnaires et de testeurs. Par des tests automatisés, je ne pense pas avoir besoin de faire une distinction entre les tests unitaires (par exemple JUnit), BDD (par exemple JBehave, Fitness) et UI (Selenium, Watir) parce que je pense qu'ils fournissent tous une valeur similaire (mais n'hésitez pas à écrivez une réponse qui n'est pas d'accord :))
Ce qui suit est une liste que j'ai identifiée, je cherche des réponses qui aident à développer ou à affiner:
- Économies de temps et d'argent : l'écriture de tests automatisés peut prendre plus de temps que les cas de test écrits. Cependant, étant donné que les tests sont exécutés plusieurs fois, le travail marginal (c.-à-d. Coût / temps) pour exécuter des tests automatisés est de plusieurs ordres de grandeur de moins. Le fait que les tests automatisés soient peu coûteux à exécuter facilite le changement du système au fil du temps.
- Documentation : il n'y a pas de moyen plus vrai de savoir comment fonctionne un système que ses tests. Toute autre documentation est généralement obsolète au moment où elle est écrite, mais les tests (au moins ceux qui réussissent) révèlent comment les choses fonctionnent réellement. Cela est vrai pour la documentation de l'utilisateur final et de l'API.
- Qualité du code : l'écriture de test vous oblige à:
- considérer les clients parce que les tests sont un client
- rompt les dépendances où rendre le code testable signifie souvent trouver comment rendre ce code ne nécessitant pas qu'un autre grand système soit disponible