Ana içeriğe geç

Regresyon Testi

İngilizcesi
Regression Testing
Türkçe karşılığı
gerileme testi
Okunuşu
rigreşın testing

Günlük kullanımda iki ad da yaygın.

Güncellendi 1 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/regression-testing

Kısaca

Regresyon testi, daha önce çalışan özelliklerin bozulmadığından emin olmak için bir kod değişikliğinden sonra mevcut testleri yeniden çalıştırma pratiğidir.

Regresyon testi nedir?

Regresyon testi, yeni değişikliklerin eski davranışı bozmadığını kontrol eder. Regresyon, daha önce çalışan bir şeydeki hatadır; örneğin ödeme koduna yapılan ilgisiz bir güncellemeden sonra giriş sayfasının çalışmaması gibi. Regresyon testi, bu sorunları erken yakalamak için her değişiklikten sonra mevcut testleri yeniden çalıştırmak demektir.

Uygulamada regresyon takımı, otomatik birim, entegrasyon ve uçtan uca testlerinizin toplamından ibarettir ve bir CI/CD hattı tarafından her commit ya da pull request'te çalıştırılır. Bir hata bulunup düzeltildiğinde geliştiriciler onu yeniden üreten bir test ekler; böylece aynı hata sessizce geri gelemez. Büyük projeler bazen her commit'te hızlı bir alt kümeyi, tüm takımı ise geceleri çalıştırır.

Bir pilotun uçuş öncesi kontrol listesine benzer: uçağın yalnızca bir parçası onarılmış olsa bile bir yerdeki düzeltme başka bir yeri etkileyebileceği için kontrol listesinin tamamı yeniden uygulanır. Regresyon testi en çok büyük ve uzun ömürlü kod tabanlarında, yeniden düzenleme (refactoring) sırasında ve bağımlılıklar yükseltilirken önem kazanır.

Regresyon testi, birim testi gibi ayrı bir test türü değildir; bir amacı tanımlar. Mevcut davranışı korumak için yeniden çalıştırdığınızda herhangi bir test regresyon testine dönüşür. Ayrıca daha önce var olmayan davranışı kontrol eden yeni bir özelliğin testinden de farklıdır.

Önemli noktalar

  • Regresyon, eskiden çalışan bir şeydeki hatadır.
  • Regresyon testi, her değişiklikten sonra mevcut testleri yeniden çalıştırır.
  • CI/CD'deki otomatik test takımları regresyon testini ucuz ve sürekli kılar.
  • Düzeltilen her hata için, geri dönmesini önleyen bir test eklenmelidir.

Örnek

Bir hatayı düzelttikten sonra regresyon testi eklemekpython
# Bug report: parse_price("1,299.00") crashed because of the comma.
def parse_price(text):
    return float(text.replace(",", ""))

# Regression test: reproduces the old bug so it can never quietly return.
def test_parse_price_with_thousands_separator():
    assert parse_price("1,299.00") == 1299.0

Sık sorulan sorular

Regresyon testi ile yeniden test (retesting) arasındaki fark nedir?

Yeniden test, belirli bir hata düzeltmesinin gerçekten işe yaradığını kontrol eder. Regresyon testi ise düzeltmenin ya da başka herhangi bir değişikliğin, zaten çalışan diğer özellikleri bozmadığını kontrol eder.

Regresyon testi otomatikleştirilmeli mi?

Mümkün olan her yerde evet. Aynı kontrolleri her değişiklikten sonra elle tekrarlamak yavaştır ve hataya açıktır; CI/CD hattındaki otomatik bir takım ise her commit'te dakikalar içinde çalışabilir.

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar