Gerileme testi
Her şey regresyon testi ile ilgili .
Bir sonraki geliştiricinin yönteminize baktığını ve sihirli sayılar kullandığınızı fark ettiğinizi hayal edin. Büyülü sayıların kötü olduğu söylendi, bu yüzden iki sabit yarattı, biri iki numara, diğeri üç numara için - bu değişikliği yaparken yanlış bir şey yok; Zaten doğru uygulamanızı değiştirdiği gibi değildi.
Dikkatin dağıldığından iki sabiti tersine çevirir.
Kodu onaylıyor ve her şey yolunda görünüyor, çünkü her işlemden sonra çalışan herhangi bir regresyon testi yok.
Bir gün (haftalar sonra olabilir), başka bir yerde bir şeyler kırılıyor. Ve başka bir yerde, kod tabanının tamamen zıt olduğu yerde, yani polynominal
işlevle ilgisi yok gibi görünüyor . Saatlerce acı veren hata ayıklama suçluya yol açıyor. Bu süre zarfında, uygulama üretimde başarısız olmaya devam eder ve müşterilerinize birçok soruna neden olur.
Yazdığınız orijinal testlerin tutulması böyle bir acıyı önleyebilir. Dikkat dağıtıcı geliştirici kodu kabul eder ve neredeyse anında bir şeyleri kırdığını görür; bu kod üretime bile ulaşmaz. Birim testleri ayrıca hatanın yeri hakkında da çok kesin olacaktır . Bunu çözmek zor olmazdı.
Yan etki...
Aslında, çoğu refactoring, büyük ölçüde regresyon testine dayanmaktadır. Küçük bir değişiklik yapın. Ölçek. Geçerse, her şey yolunda.
Yan etki, eğer testler yapmazsanız, pratik olarak herhangi bir yeniden düzenleme işleminin kodu çiğneme riski büyük olması. Bu birçok durum göz önüne alındığında, yeniden yapılanmanın yapılması gerektiğini yönetime anlatmak zaten zor , önceki yeniden yapılanma denemelerinizde birden fazla hata ortaya çıktıktan sonra bunu yapmak daha da zor olacaktır.
Eksiksiz bir test grubuyla, yeniden düzenlemeyi ve çok daha iyi, daha temiz kodları teşvik ediyorsunuz. Risksiz, düzenli olarak daha fazla refaktör için çok cazip hale gelir.
Gereksinimlerdeki değişiklikler
Diğer bir önemli özellik ise gereksinimlerin değişmesidir. Sizden karmaşık sayıları kullanmanız istenebilir ve aniden, önceki testleri bulmak, geri yüklemek ve yeni testler eklemeye başlamak için sürüm kontrol günlüğünüzü aramanız gerekir.
Neden bütün bu güçlük? Neden daha sonra eklemek için testleri kaldırmak? Onları ilk etapta tutabilirdin.