OK, quindi molta revisione del codice è abbastanza ordinaria. Ma a volte ci sono cambiamenti che incidono ampiamente sul codice complesso e fragile esistente. In questa situazione, il tempo necessario per verificare la sicurezza delle modifiche, l'assenza di regressione, ecc. È eccessivo. Forse anche superare il tempo necessario per lo sviluppo stesso.
Cosa fare in questa situazione? Unisci e speri che non ti sfugga nulla? (Non propugnarlo!) Fai il meglio che puoi e cerca solo di individuare eventuali difetti evidenti (forse questa è la maggior parte della revisione del codice che dovrebbe mirare comunque?) Unire e testare in modo molto approfondito come un'alternativa migliore della revisione del codice?
Questo non è specificamente una domanda se il test dovrebbe essere fatto come parte di una revisione del codice. Questa è una domanda che pone quali sono le migliori opzioni nella situazione descritta, in particolare con una scadenza pressante, nessuna suite completa di test unitari disponibili o test unitari non praticabili per il codice frammentato che è cambiato.
EDIT: ho l'impressione che alcune delle risposte / dei commenti finora abbiano raccolto la mia frase "ampiamente impatto", e forse ho preso questo per significare che il cambiamento ha coinvolto un gran numero di righe di codice. Posso capire che questa è l'interpretazione, ma non era proprio mia intenzione. Per "impatto generale", intendo ad esempio che il potenziale di regressione è elevato a causa dell'interconnessione della base di codice o della portata degli effetti knock-on, non necessariamente che il cambiamento stesso sia grande. Ad esempio, uno sviluppatore potrebbe trovare un modo per correggere un bug con una singola linea chiamando una routine di alto livello esistente che collega in cascata le chiamate a molte routine di livello inferiore. Testare e verificare che la correzione dei bug ha funzionato è facile. Convalidare manualmente (tramite revisione del codice) l'impatto di tutti gli effetti knock-on è molto più difficile.
what if there is no pre-existing test suite?
- Che ne dici di scriverne uno?
Merge and hope nothing slips through?
È notoriamente una cattiva idea.