Ex ante: sembra esserci molta confusione su ciò che viene considerato testare ciò che non lo è. Certo, ogni sviluppatore deve testare il suo codice mentre lo crea, deve verificare che funzioni. Non può consegnarlo a un tester prima che pensi che sia fatto e abbastanza buono. Ma gli sviluppatori non vedono tutto. Potrebbero non riconoscere i bug. Questi bug possono essere trovati più avanti 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 tester, ma non dovrebbero essere tester . Gli sviluppatori tendono a evitare involontariamente / inconsciamente di utilizzare l'applicazione in un modo che potrebbe romperla. Questo perché l'hanno scritto e per lo più testato nel modo in cui dovrebbe essere usato.
Un buon tester, d'altra parte, cerca di torturare l'applicazione. La sua intenzione principale è di romperlo. Spesso usano l'applicazione in modi che gli sviluppatori non avrebbero immaginato. Sono più vicini agli utenti rispetto allo sviluppatore e spesso i tempi hanno un approccio diverso per testare un flusso di lavoro.
Inoltre, l'utilizzo di sviluppatori come tester aumenta i costi di sviluppo e non avvantaggia la qualità del prodotto tanto quanto avere un tester dedicato. Non permetterei agli sviluppatori di mettere alla prova i loro lavori quando posso farli fare meglio da un tester a buon mercato. Solo se il ciclo di feedback tra sviluppatori e tester diventasse troppo costoso, gli sviluppatori farebbero il test reciproco del codice, ma nella mia esperienza questo è raramente il caso e dipende fortemente dal processo.
Ciò non significa che uno sviluppatore dovrebbe essere sciatto e lasciare tutto al tester. È necessario eseguire il backup del software mediante test unitari e gli errori tecnici devono essere ridotti al minimo prima di consegnare il software al tester. Tuttavia, a volte hai risolto qui, rompi i problemi o altri 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 alla dimensione dell'applicazione), posso anche vedere il tester in un ruolo ibrido, scrivere test unitari e test UI. Dovresti assolutamente assumerne uno .
Ma più importanti del tester sono i blocchi / rami regolari. Non presentare nulla che non sia stato testato correttamente. Quando hai aggiunto una funzione o modificato qualcosa, tutto ciò che lo circonda deve essere verificato di nuovo. Avrai una cattiva reputazione solo se la tua azienda no. Non rilasciare qualcosa di instabile. Quando il cliente desidera avere il software entro una certa data, smettere di svilupparlo abbastanza presto e testarlo correttamente, in modo da avere abbastanza tempo per la correzione dei bug. Spesso è meglio rifiutare le richieste di funzionalità dell'ultimo minuto piuttosto che implementarle male o rilasciarle senza test adeguati.