À propos de cet outil
Trois chiffres différents s’appellent tous « couverture », et ils répondent à des questions différentes. La couverture des exigences demande si chaque exigence a un test. La couverture d’exécution demande quelle part des tests prévus a réellement tourné et réussi. La couverture de code demande quel code s’est exécuté pendant les tests automatisés. Ce calculateur gère les trois et affiche chaque formule. Pour la couverture de code, saisissez les quatre pourcentages de votre rapport Istanbul, Vitest, Jest, JaCoCo ou coverage.py et un seuil : il indique quelles métriques ne passent pas le seuil et repère des tendances, comme une couverture de branches très inférieure à la couverture de lignes, ce qui signifie généralement que les chemins d’erreur et les branches else ne sont pas testés. Il précise aussi ce que la couverture ne peut pas vous dire.
Mode d’emploi
- Choisissez le calculateur : couverture des exigences, d’exécution ou du code.
- Saisissez les nombres ou pourcentages ; les résultats se mettent à jour pendant la saisie.
- Pour la couverture de code, définissez le seuil imposé par votre CI et lisez les constats.
- Copiez la synthèse pour un rapport d’avancement.
FAQ : Calculateur de couverture de test
100 % de couverture de code est-il un bon objectif ?
Rarement. Les derniers pourcents correspondent généralement à du code défensif coûteux à atteindre, et 100 % de couverture ne prouve toujours pas que les assertions ont du sens. Beaucoup d’équipes fixent un seuil de 70 à 90 % et relisent plutôt le code non couvert dans les pull requests.
Pourquoi la couverture de branches est-elle inférieure à la couverture de lignes ?
Une ligne contenant un if est considérée couverte dès qu’elle s’exécute une fois, mais la couverture de branches exige à la fois l’issue vraie et l’issue fausse. Un écart important signifie que beaucoup de conditions ne sont testées que dans un sens, souvent le cas nominal.
Comment savoir si mes tests vérifient vraiment quelque chose ?
Le mutation testing (par exemple Stryker pour JavaScript ou PIT pour Java) modifie légèrement votre code et vérifie qu’un test échoue. Les mutants survivants révèlent du code exécuté pendant les tests mais pas réellement vérifié.