Ex ante: sembra esserci molta confusione su ciò che è considerato come testare ciò che non lo è. Certo, ogni sviluppatore ha bisogno di testare il suo codice mentre lo crea, lui / lei ha bisogno di verificare che funzioni. Lui / lei non può consegnarlo a un tester prima che lui / lei pensi che sia fatto e abbastanza buono. Ma gli sviluppatori non vedono tutto. Potrebbero non riconoscere gli errori. Questi bug possono essere trovati solo più tardi nel ciclo di sviluppo quando vengono condotti test approfonditi. La domanda è se gli sviluppatori debbano condurre questo tipo di test o meno, e a mio modesto parere questo deve essere considerato dal punto di vista del project manager:
Gli sviluppatori possono essere dei tester, ma non dovrebbero essere dei tester . Gli sviluppatori tendono a evitare involontariamente / inconsciamente di usare l'applicazione in un modo che potrebbe romperla. Questo perché l'hanno scritto e per lo più lo testano nel modo in cui dovrebbe essere usato.
Un buon tester d'altra parte, cerca di torturare l'applicazione. La sua intenzione principale è quella di romperlo. Spesso usano l'applicazione in modi che gli sviluppatori non avrebbero immaginato. Sono più vicini agli utenti che agli sviluppatori e spesso hanno un approccio diverso per testare un flusso di lavoro.
Inoltre, l'uso di sviluppatori come tester aumenta i costi di sviluppo e non giova alla qualità del prodotto tanto quanto a un tester dedicato. Non permetterei agli sviluppatori di testare i loro lavori quando posso farlo funzionare meglio da un tester economico. Solo se il ciclo di feedback tra sviluppatori e tester è diventato troppo costoso, vorrei che gli sviluppatori si incrociassero reciprocamente il codice, ma nella mia esperienza è raro che avvenga e dipende molto dal processo.
Ciò non significa che uno sviluppatore debba essere sciatto e lasciare tutto al tester. Il software dovrebbe essere supportato da test unitari e gli errori tecnici dovrebbero essere ridotti al minimo prima di consegnare il software al tester. Tuttavia, a volte hai risolvi qui, rompi i problemi o altro bug che nessuno sviluppatore potrebbe prevedere, va bene. Inoltre, i test di integrazione dovrebbero essere eseguiti principalmente dagli sviluppatori. L'obiettivo principale del tester è verificare che i requisiti siano soddisfatti.
In un team così piccolo (e anche in base alle dimensioni dell'applicazione), posso anche vedere il tester in un ruolo ibrido, scrivendo unit test e test dell'interfaccia utente. Dovresti assumerne uno .
Ma più importanti del tester sono i freeze / rami regolari. Non presentare nulla che non sia stato testato correttamente. Quando hai aggiunto una funzione o cambiato qualcosa, tutto ciò che lo circonda deve essere nuovamente verificato. Riceverai solo una brutta reputazione se la tua azienda non lo fa. Non rilasciare qualcosa di instabile. Quando il cliente desidera avere il software entro una certa data, quindi smettere di sviluppare abbastanza presto e testarlo correttamente, in modo da avere abbastanza tempo per le correzioni di bug. Spesso è meglio rifiutare le richieste di funzionalità dell'ultimo minuto piuttosto che implementarle male o rilasciare senza test adeguati.