> For the complete documentation index, see [llms.txt](https://guide-agile.wishtack.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://guide-agile.wishtack.io/extreme-programming/testing.md).

# Testing

{% hint style="info" %}
**ALL CODE IS GUILTY UNTIL PROVEN INNOCENT!**
{% endhint %}

Personne d'autre qu'un test automatisé ne peut garantir qu'un code fonctionne.

### Test-Driven Development

Les tests unitaires sont écrits en premiers.

### Tests are Specs

Les tests unitaires **définissent le comportement du code** à implémenter et non l'inverse.

### Tests are Documentation

Les tests unitaires ont l'avantage de fournir naturellement une documentation toujours à jour.

### **Tests MUST Pass**

Le code ne peut être livré tant que tous les tests unitaires ne fonctionnent pas.

Un test cassé doit être la priorité de toute l'équipe.

### Bugs Happen... but only Once!

Un bug est acceptable mais pas une régression.

A la découverte d'un bug, des tests unitaires doivent être ajoutés garantissant ainsi que le bug ne se reproduira plus jamais.

Les tests doivent être exécutés à chaque changement et les résultats doivent être publiés.
