Tamam, bu yüzden birçok kod incelemesi oldukça rutin. Ancak, zaman zaman mevcut karmaşık, kırılgan kodu geniş ölçüde etkileyen değişiklikler vardır. Bu durumda, değişikliklerin güvenliğini, gerilemenin yokluğunu vb. Doğrulamak için harcayacağınız zaman çok fazladır. Belki de geliştirmenin kendisi için geçen süreyi aştı.
Bu durumda ne yapmalı? Birleştirme ve hiçbir şeyin kaymadığını umalım mı? (Bunu savunmuyorsun!) En iyisi yapabilecek ve sadece herhangi bir açık noktayı tespit etmeye çalışacak mı (belki de en fazla kod incelemesi bu olabilir mi?) Kod incelemesinden daha iyi bir alternatif olarak daha ayrıntılı bir şekilde birleştirme ve test etme?
Bu, testin bir kod incelemesinin parçası olarak yapılması gerekip gerekmediği özel bir soru değildir. Bu, en iyi seçeneklerin açıklandığı gibi ne durumda olduğunu soran bir sorudur, özellikle son başvuru tarihi ile, kapsamlı bir birim test paketi mevcut değil veya değiştirilmiş parçalanmış kod için uygun olmayan birim testler.
EDIT: Şimdiye kadarki cevapların / yorumların bir kısmının "geniş ölçüde etkiledi" ifademden aldıkları ve muhtemelen değişimin çok sayıda kod satırı içerdiği anlamına geldiği izlenimini edindim. Bunun yorumlama olduğunu anlayabiliyorum, ama bu gerçekten benim niyetim değildi. "Genel olarak etki" derken, örneğin, kod tabanının birbirine bağlı olmasından ya da değişimin kendisinin büyük olmasından ziyade, çarpma etkilerinin kapsamı nedeniyle, regresyon potansiyelinin yüksek olduğunu kastediyorum. Örneğin, bir geliştirici, daha düşük seviyeli rutinlere yapılan çağrıları basamaklayan mevcut bir üst düzey yordamı çağırarak tek bir satırda bir hatayı düzeltmenin bir yolunu bulabilir. Hata düzeltmesinin çalıştığını test etmek ve doğrulamak kolaydır. Manuel olarak doğrulama (kod incelemesi yoluyla) tüm çalma etkilerinin etkisinin çok daha zordur.
what if there is no pre-existing test suite?
- Bir tane yazmaya ne dersin?
Merge and hope nothing slips through?
Bu çok kötü bir fikir.