Türkiye'nin en büyük inovasyon ve girişimcilik bültenine katılın
Kanallar İlham Uygulamalar SSS Sözlük Giriş Üye Ol

Yazılım Geliştirme

/yazilim · 8.YIL

Fikirden çalışan ürüne yazılımın her hali: web, backend, veritabanı, mimari kararlar, kod kalitesi ve araçlar. Dil ve framework fark etmez; yazan herkesin ortak kanalı.

25 içerik Katıl
#yazılım geliştirme akışına dön
@navigator · 6 gün önce

test yazmıyoruz ve bunu savunmak zorunda kaldım, sonuç ne oldu

Küçük bir ekipte hız için test yazmıyorduk. Yeni bir kıdemli geldi ve bu durumu sorguladı. Tartışmayı yazayım çünkü iki taraf da haklıydı.

Bizim argümanımız: ürün henüz oturmadı, her hafta yön değişiyor. Yazdığımız testin yarısı ertesi hafta siliniyor. Test yazmak bizi yavaşlatıyor.

Onun argümanı: hata oranınız yüksek, her yayında bir şey bozuluyor ve düzeltme süresi geliştirme süresinden fazla.

İkisi de doğruydu. Çözümü ortada bulduk.

Anlaştığımız kurallar:

Her şeyi test etmiyoruz. Kritik akışları test ediyoruz. Ödeme, kayıt, veri yazma. Bunlar bozulduğunda maliyeti yüksek.

Arayüz testlerini az tutuyoruz. Kırılgan oluyorlar ve bakımı pahalı.

Hata çıktığında önce o hatayı yakalayan test yazıyoruz, sonra düzeltiyoruz. Böylece test paketi gerçek sorunların üzerine birikiyor, hayali senaryolara değil.

Değişmesi muhtemel yerleri test etmiyoruz. Arayüz metinleri, deneme aşamasındaki özellikler.

Altı ay sonraki durum: test sayısı çok değil ama yayın sonrası hata sayısı belirgin şekilde düştü. Daha önemlisi, yayın yapmaktan korkmuyoruz.

En çok fark yaratan şey, hata çıkınca test yazma kuralı oldu. Aynı hatanın ikinci kez çıkması tamamen bitti.

Geriye dönüp bakınca, test yazmamak hız kazandırmıyordu. Sadece maliyeti sonraya erteliyordu.
0 3 yorum
Yorumlar (3)
@bberber · 3 gün önce 4
Hata çıkınca önce testini yazma kuralı en verimli yaklaşım, bunu herkes uygulamalı.

Sebebi şu: o test kesinlikle gerçek bir senaryoyu koruyor. Hayali senaryolar için yazılan testlerin çoğu hiçbir şey yakalamıyor ve bakım yükü getiriyor.

Bir ekleme: testi yazdıktan sonra düzeltmeden önce çalıştırın ve kırmızı olduğunu görün. Yeşil çıkıyorsa yanlış şeyi test ediyorsunuz demektir.

Bu adımı atlayan çok kişi var ve hiçbir şey test etmeyen testler yazılıyor.
@innoturk · 3 gün önce 4
Ürün oturmadan test yazmak yavaşlatır argümanına kısmen katılıyorum ama tamamen değil.

Arayüz ve akış testleri için doğru. Ama iş mantığı testleri için değil.

Hesaplama yapan, kural uygulayan, veri dönüştüren fonksiyonlar genelde değişmiyor. Onların testleri uzun ömürlü oluyor.

Bizde ayrım şu: dışarıya bakan yüzü test etmiyoruz, çekirdek mantığı test ediyoruz.

Bu ayrım hem hızı hem güveni koruyor.
@navigator · 3 gün önce 4
Test yazmamak maliyeti sonraya erteliyordu cümlesi çok doğru ve ben bunu acı şekilde öğrendim.

Bizde iki yıl testsiz gittik. Sonra ürün büyüdü ve her değişiklik korkutucu hale geldi. Kimse eski koda dokunmak istemiyordu.

Sonuçta yeni özellikleri eski kodun yanına yazmaya başladık ve kod tabanı iki katına çıktı.

O noktadan sonra test eklemek çok daha zor oldu çünkü kod test edilebilir yazılmamıştı.

Erken yazılan az sayıda test, geç yazılan çok sayıda testten değerli.