La mia organizzazione sta investendo tempo nella scrittura di tipi di test errati (test unitari eccessivamente complicati per l'implementazione, richiede molto tempo per creare e spesso rende il sistema più difficile da modificare). Inoltre, il contesto è spesso gettato via e i test sono distorti per migliorare le metriche di copertura.
Le stesse ipotesi inserite nel codice vengono inserite nei test delle unità.
Credo che la copertura del codice sia una metrica fuorviante. Uno può avere una copertura del 100% del codice e ha ancora molti bug, molti casi edge non testati, ecc. La costanza di quanto lavoro ci vuole per ottenere l'ultimo 10% di copertura non fornisce un valore commensale.
I test non funzionano bene come "specifiche leggibili" (un ideale che suona bene sulla carta ma spesso non traduce).
Ho trovato un test che, ad esempio, ha affermato che un determinato menu a discesa "contiene 7 elementi". Ciò non si adatta alle aspettative del mondo reale detenute dagli utenti aziendali o persino tecnici. Sembra che l'autore di quel test fosse solo alla ricerca di "qualcosa da far valere".
Temo che stiamo misurando ciò che è facile misurare su ciò che è importante (anche se forse meno misurabile).
Alcuni test sono scritti a un livello tale da configurare mock per verificare ogni piccolo passaggio dell'implementazione (è stato chiamato Dispose su UnitOfWork)? Ecc.
Preferirei test basati sui risultati - verificare che il risultato sia giusto, il "cosa" e non il "come".
Penso che sarebbe bello fare BDD o ATDD (sviluppo basato su test di accettazione) ma organizzativamente non siamo pronti per un grande cambio di paradigma verso Cucumber o SpecFlow o uno strumento simile (anche se forse è un buon obiettivo a lungo termine) .
Ecco il problema. Se esprimi il desiderio di scrivere meno test, i test zelanti ti guarderanno come se ti stessi rivelando profondamente ignorante / immorale. Forse sto proiettando un po '? Ma nessuno vuole sembrare come se suggerissero di "tagliare gli angoli" per la velocità. Ciò nondimeno, ritengo che il nostro processo sia trascinato dalla cieca adesione a protocolli che non sono sempre appropriati dal punto di vista del contesto.
Esiste una postura di "post-zelotria" sul test che posso iniziare a spostarci verso?