Recentemente ho chiesto a questa domanda e questo commento e mi ha fatto riflettere tutto il processo di rilascio di un aggiornamento ai clienti. Il prossimo aggiornamento per il nostro software è pianificato e la volta precedente è andato terribilmente storto a causa di regressione, test errati, ecc ...
Questa volta vogliamo impedire lo scenario che testiamo tramite il nostro cliente e fatto alcuni test unitari e altri piccoli miglioramenti. Tuttavia, non c'è abbastanza tempo per fare test unitari per tutte le funzionalità che mancano test unitari o le caratteristiche che devono ancora essere costruite. Quindi la risposta a questa domanda "Fai più test di unità" non è adatta a causa della mancanza di tempo, infrastruttura ecc ...
Tutti i bug e le funzionalità saranno testati / revisionati da uno sviluppatore diverso, ma ciò non sarà fatto perfettamente, naturalmente (siamo ancora umani:)).
La mia domanda è: una volta rilasciato l'aggiornamento, come impedire il circolo vizioso dei test tramite i clienti senza poter aggiungere ulteriori test unitari?
La volta precedente abbiamo fatto del nostro meglio per testare il software prima e dopo il rilascio. Dopo la scadenza stavamo ancora cercando e risolvendo bug, ma il cliente avrebbe trovato anche alcuni di questi. Quindi pubblichiamo un aggiornamento non appena eravamo sicuri che la patch stava aumentando la qualità. Siamo stati così occupati a trovare bug e a correggerli che non stavamo spendendo un po 'di tempo per creare test unitari.
Questa volta non abbiamo ancora un piano solido, quindi la domanda. Come detto prima abbiamo aggiunto alcuni test unitari, ma sicuramente non abbastanza. Stiamo anche cercando nuovi colleghi, ma non sono facili da trovare e la direzione ha standard piuttosto elevati. Abbiamo un bel po 'di candidati e sembra che avremo almeno un nuovo collega molto presto, ma ci vuole ancora del tempo per farlo funzionare. La prima cosa su cui metteremo il nuovo collega sarà la creazione di test unitari. Quindi le dipendenze ci sono esperienza, abilità e il tempo in cui lui / lei può unirsi al tempo.
Un altro problema che viene alla luce con la mancanza di sviluppatori è che siamo così concentrati su come correggere bug e funzionalità che non abbiamo molto tempo da dedicare a pensare a "come possiamo migliorare il processo di aggiornamento". (Chiedo queste domande nel mio tempo libero).
Riepilogo dei passaggi che proverò a fare:
- Cerca di ottenere un tester prima che il rilascio sia completato
- Aggiungi test unit durante la creazione delle funzioni, se non c'è abbastanza tempo, pianificale per dopo il rilascio.
- Dopo il rilascio, se c'è una regressione, crea dei test unitari quando correggi i bug.
- Rilasciare più spesso in blocchi più piccoli dopo il rilascio, rendendo più semplice rilasciare funzionalità e riparare bug con una priorità minore.