Suggerisco di scrivere una suite completa di test in aree in cui è ragionevole e pratico da fare. In aree meno pratiche, scrivi controlli di integrità.
Nella mia esperienza, il sovraccarico di una serie completa di casi di test vale sicuramente nella maggior parte dei casi, ma realisticamente la copertura del codice ha rendimenti decrescenti. Ad un certo punto, scrivere più test solo per aumentare la copertura del codice non ha senso.
Ad esempio, a seconda della lingua / tecnologia, testare l'interfaccia utente potrebbe non essere pratico o addirittura fattibile. Molti test si baseranno probabilmente su ciò che un utente vede e non può essere automatizzato. Come testesti che un metodo per generare un captcha produce un'immagine che è leggibile da un essere umano, per esempio?
Se un set completo di test ti richiederà tre giorni per scrivere, la probabilità che un bug venga introdotto in quel componente lungo la traccia è molto bassa, e la funzione stessa richiede solo mezz'ora per scrivere, dovresti probabilmente pensa seriamente se valga la pena. Magari solo scrivere un controllo di base per la funzionalità di tale funzione fornirebbe un valore?
Il mio consiglio generale è che dovresti testare completamente i componenti dove i test possono essere scritti in modo relativamente facile. Tuttavia, se si tratta di un'area che è molto difficile da testare, traccia una linea nella sabbia e scrivi test che testeranno l'area a un livello più alto anziché testarlo completamente.
Nell'esempio captcha precedente, è possibile scrivere test che controllano un'immagine della dimensione e del formato corretti e che non vengono emesse eccezioni. Questo ti dà un certo livello di sicurezza senza esagerare.