Informazioni sullo strumento
Tre numeri diversi si chiamano tutti “copertura”, e rispondono a domande diverse. La copertura dei requisiti chiede se ogni requisito ha un test. La copertura di esecuzione chiede quanta parte dei test pianificati è stata davvero eseguita ed è passata. La code coverage chiede quale codice è stato eseguito durante i test automatici. Questo calcolatore gestisce tutte e tre e mostra ogni formula. Per la code coverage, inserisci le quattro percentuali del report di Istanbul, Vitest, Jest, JaCoCo o coverage.py e una soglia: segnala quali metriche non superano il gate e individua pattern come una branch coverage molto più bassa della line coverage, che di solito significa che i percorsi di errore e i rami else non sono testati. Indica anche cosa la copertura non può dirti.
Come si usa
- Scegli il calcolatore: copertura dei requisiti, di esecuzione o del codice.
- Inserisci i conteggi o le percentuali; i risultati si aggiornano mentre scrivi.
- Per la code coverage, imposta la soglia applicata dalla tua CI e leggi i risultati.
- Copia il riepilogo per un report di stato.
Calcolatore di copertura dei test: domande frequenti
Il 100% di code coverage è un buon obiettivo?
Raramente. Gli ultimi punti percentuali sono di solito codice difensivo costoso da raggiungere, e il 100% di copertura non dimostra comunque che le asserzioni siano significative. Molti team mettono il gate tra il 70 e il 90% e rivedono il codice non coperto nelle pull request.
Perché la branch coverage è più bassa della line coverage?
Una riga con un if conta come coperta quando viene eseguita una volta, ma la branch coverage richiede sia l’esito vero sia quello falso. Un divario ampio significa che molte condizioni sono testate in un solo verso, spesso l’happy path.
Come capisco se i miei test verificano davvero qualcosa?
Il mutation testing (ad esempio Stryker per JavaScript o PIT per Java) modifica leggermente il codice e controlla se un test fallisce. I mutanti sopravvissuti indicano codice che viene eseguito sotto test ma non è davvero verificato.