Balıkta Beklemek ile Bug Aramak Arasındaki O İnce Çizgi: Sabır
Seri 3: Testçinin Zihni – Bölüm 1
Sabahın çok erken saatlerinde, henüz gün ağarmadan bir kıyıda ya da kayalıkların üstünde durduysanız bilirsiniz; deniz size hemen cevap vermez.
Takımı hazırlarsınız, sahteyi iğneye takarsınız, mesafeyi ayarlayıp atışı yaparsınız. Sonra sararsınız. Bir kez daha, bir kez daha... Dakikalar geçer, rüzgâr yön değiştirir, suyun akıntısı sertleşir. Dışarıdan bakan biri için yapılan iş son derece tekdüze ve sıkıcı görünebilir: Saatlerce aynı hareketi tekrarlayan, suya bir parça silikon fırlatıp geri çeken bir adam.
Oysa suyun başında bekleyen insanın zihni asla tekdüze değildir. Parmak uçlarınız misinadaki en ufak bir titreşimi, kurşunun dibe vurduğu anı, yosuna takılma hissiyle bir balığın dokunuşu arasındaki o mikro farkı okumaya çalışır.
Yazılım testinde de durum bundan farksızdır.
Yüzeyin Sakinliği, Derinin Akıntısı
Bir ekranda her şey yolunda görünebilir. Butonlar yerindedir, formlar post ediliyordur, sayfalar hızlı yükleniyordur. Dışarıdan bakan bir göz için ortada test edilecek pek bir şey kalmamış gibidir.
Ama tecrübeli bir testçinin zihni yüzeyle yetinmez.
O, sistemin görünmeyen derinliklerindeki akıntıyı kollar:
- Bu işlem tam veritabanının yavaşladığı bir anda tetiklenirse ne olur?
- Ağ bağlantısı bir saniyeliğine kopup geri geldiğinde o session ayakta kalır mı?
- Kullanıcı işlemi tamamlamadan tarayıcıyı kapatırsa arkadaki kuyrukta ne birikir?
Tıpkı denizin dibindeki ilişkileri tahmin etmeye çalışan bir balıkçı gibi, test mühendisi de kodun arkasında sessizce dönen çarkların yarattığı dip akıntılarını hissetmeye çalışır. Yüzeydeki sükunet, derindeki fırtınanın olmadığını göstermez.
Sabır: Beklemek Değil, Dikkatle İzlemektir
İnsanlar sabrı genelde pasif bir eylem sanır; oturup zamanın geçmesini beklemek gibi.
Oysa sahada sabır son derece aktif, tetikte bir zihin durumudur.
Kıyı balıkçılığında rastgele at-çek yaparak günün sonunda bir şey yakalayamazsınız. Suya baktığınızda dibin yapısını, suyun ısısını, yemin yüzüş açısını sürekli hesaplarsınız. Vuruş alamadığınız her atış, aslında bir sonraki atış için elinizdeki veriyi günceller: "Burada dip taşlık değil, akıntı sağa çekiyor, yemi biraz daha derine indirmeliyim."
Yazılımda bir edge-case ararken de aynı sabır devrededir. Karmaşık bir entegrasyonu sınarken ilk beş denemenizde sistem beklendiği gibi çalışabilir. Kolay yoldan "Tamam, çalışıyor" deyip geçmek sabırsızlığın en büyük tuzağıdır.
İyi bir testçi orada durmaz; parametreleri azar azar değiştirir, zamanlamaları kaydırır, asenkron süreçlerin arasına girer. Her başarısız deneme, hatanın saklandığı alanı biraz daha daraltan bir gözleme dönüşür. O açık bir gün ortaya çıkacaksa, şans eseri değil; sabırla örülmüş bu sistematik arayışın sonunda yakalanır.
O Tek An: Vuruşu Kaçırmamak
Saatlerce süren sakinliğin ardından o an gelir. Misinada çok hafif, neredeyse fark edilmeyecek bir boşalma ya da sert bir kafa atışı hissedersiniz. O saniyenin onda birinde doğru tasmalamayı yapmazsanız, balık iğneden kurtulur ve derinliğe geri döner.
Test yaparken de öyledir.
Konsol loglarında bir anlığına beliren ve sayfayı yenileyince kaybolan bir uyarı... Yüz işlemden sadece birinde saniyelik bir gecikmeyle dönen 500 hatası...
Dikkati dağınık ya da sabırsız bir göz onu görmezden gelir, "Anlık bir ağ glitch’idir" der ve geçer. Ama avının peşindeki zihin o anı yakalar. Ekran görüntüsünü alır, o ana ait network trafiğini kilitler ve sorunun peşine düşer. Çünkü bilir ki prod ortamında sistemi çökertecek olan şey, her gün görünen bariz hatalar değil; işte o saatlerce saklanıp bir anlığına kafasını uzatan anomalilerdir.
Sahilden Masaya Kalan
Günün sonunda oltayı toplayıp eve dönerken çantanızın dolu olup olmaması bazen önemli değildir. Önemli olan, o birkaç saat boyunca zihninizi ne kadar berrak, dikkatinizi ne kadar diri tutabildiğinizdir.
Mühendislik dünyası sürekli bir hız, acelecilik ve "hemen canlıya çıkalım" baskısıyla dolup taşıyor. Herkesin koştuğu bir yerde durup bakabilmek, bekleyebilmek ve ayrıntının hakkını verebilmek giderek kaybolan bir erdeme dönüşüyor.
İster kıyıda bir kayanın üstünde elinizde olta olsun, ister gece yarısı karmaşık bir mikroservis mimarisinin başında ekrana bakın; gerçeği yakalayan şey telaş değil, sabrın arkasına saklanmış o sakin ve ısrarcı dikkat oluyor.
Serinin ikinci bölümünde, doğa ile yazılım arasındaki bir diğer sert kesişmeye geçeceğiz: Doğada Eksik Malzeme, Yazılımda Eksik Test: Hazırlıksız Yakalanmanın Bedeli.