Lo sviluppatore dovrebbe fare il test iniziale in modo da sapere che il pezzo che abbiamo codificato funzionerebbe nel modo in cui dovrebbe funzionare, secondo i requisiti che abbiamo. Quindi eseguiamo i test normali e scriviamo Test unitari per il codice che abbiamo scritto.
Il prossimo passo è il lavoro dei responsabili della qualità per scoprire cosa gli sviluppatori non vedono quando scriviamo il codice. Uno sviluppatore pensa in un livello superiore ma l'utente potrebbe non pensare allo stesso livello. Quando lo sviluppatore sta testando il suo pezzo e deve inserire del testo in una casella di testo, potrebbe sempre inserire un utente che utilizza la stringa completa. Può essere che l'utente lo faccia anche tu, ma casualmente quando inserisce un carattere speciale come% & $ ^ nel testo e ciò interrompe l'applicazione non sembra buono all'utente finale. Uno sviluppatore non può e non pensa a tutte le possibilità che potrebbero accadere perché non è addestrato a pensare in quel modo. Quando si tratta di un QA (tester) pensano sempre a cosa l'utente potrebbe fare per rompere questa applicazione e provare ogni cosa stupida nel libro, non gli utenti sono stupidi ma non dovremmo lasciare nulla al caso.
Ora dobbiamo anche capire che in genere più di un pezzo viene fatto nello stesso momento e entrambi andranno in produzione. Lo sviluppatore potrebbe testare solo il suo pezzo e pensa che funzioni bene, ma il test di regressione generale deve essere fatto per tutti i pezzi che vengono spinti, oltre a scoprire che la combinazione di due pezzi diversi potrebbe rompere l'applicazione e lo fa non sembra buono neanche Dobbiamo anche considerare gli scenari di test del carico e altre cose di cui i tester sono più a conoscenza.
Infine dobbiamo passare attraverso UAT (User Acceptance Test) per vedere se il pezzo che abbiamo fatto è quello che ci si aspetta. Generalmente, anche se i requisiti arrivano tramite BA, l'utente finale potrebbe non sapere esattamente come sembra e potrebbe pensare che non è quello che si aspettavano o potrebbe voler aggiungere qualcos'altro per farlo sembrare migliore o per qualche ragione che potrebbero scartare pezzo intero come pensano che il pezzo non sarebbe andato con la già disponibile funzionalità.
Come spiegato sopra, questi sono molto importanti e non possono essere eseguiti dallo sviluppatore da soli e sono assolutamente necessari affinché l'applicazione funzioni correttamente. Il management può dire che questo è un approccio conservativo ma è l'approccio migliore. Possiamo apportare alcune modifiche a quanto sopra detto, ma non possiamo evitare come del tutto.