Tuttavia, per ridurre al minimo il lavoro ridondante, è una buona idea provare a incorporare i test di unità nei test di accettazione?
No.
In altre parole, hanno quest'ultimo [accettazione] chiamare l'ex [unità]. Andare nella direzione opposta ha senso?
Non disturbare.
I test di accettazione sono spesso politici. Li mostri a persone che, in base al loro istinto, decidono di accettare o rifiutare.
Quindi si discute sulla validità dei test di accettazione.
Poi discutete sullo scopo del lavoro e sulla prossima versione.
I test di accettazione non sono - generalmente - tecnici. Se lo fossero, allora avresti test unitari formali e sarebbe quello.
Non cercare di migliorare la politica. Abbraccialo. Lascia che accada.
Si può sperare che Acceptance Test-Driven Development (ATDD) porta a "test di accettazione sono scritti e concordati da tutta la squadra prima dell'inizio di sviluppo." Ma devi riflettere la realtà che qualsiasi cosa scritta in anticipo è speciosa nella migliore delle ipotesi e negoziabile nel peggiore dei casi.
La premessa dietro tutti i metodi Agile è che puoi solo accettare di arrivare a qualcosa di sbloccabile. Tutto dopo è negoziabile.
La premessa dietro a tutti i test-first (TDD, ATDD o qualsiasi altra cosa) è che un test è un accordo rivestito di ferro. Tranne che non lo è. Con qualsiasi metodo TDD (o ATDD) è possibile concordare - in linea di principio - con il test risultati, ma non si è realmente d'accordo sul test stesso.
È possibile che il test non possa essere facilmente scritto. O peggio, non può essere scritto affatto. Puoi accettare i risultati che sembrano verificabili, ma risultano essere scarsamente definiti. E adesso? Queste sono cose che non puoi sapere fino a quando non inizi lo sviluppo e ottieni dettagli.
Tutte le prove sono importanti. E nessun particolare tipo di test può essere un superset o un sottoinsieme di qualsiasi altro tipo di test. Sono sempre set parzialmente sovrapposti. È probabile che cercare di combinare in qualche modo un po 'di lavoro sia una perdita di tempo.
Altri test sono meglio di qualsiasi altra cosa. L'unione di tutti i test ha più valore che provare a forzare una relazione subset-superset tra i test.
Grazie, Carl. Puoi per favore parlare un po 'di più del perché non dovremmo limitare i test unitari legandoli a test di accettazione? – Calvin
Bene, se un AT usa un UT, allora siamo meno liberi di cambiare l'UT quando vediamo che un design migliore è appropriato. Ogni uso del codice lo vincola e il codice (anche i test) che è troppo strettamente vincolato diventa fragile. Gli UT dovrebbero essere molto malleabili in modo da poterli ristrutturare per soddisfare nuove esigenze e visioni. –
Stai descrivendo un test di accettazione come un pezzo di software in esecuzione e che fornisce il risultato. Non è affatto quello che significa il termine per me. – reinierpost