5.2. Sektördeki Gerçek Senaryo: “Benim Makinemde Çalışıyor!” Savaşları
Bir bankanın mobil yatırım uygulaması projesinde Cuma akşamı saat 18:30. İki haftalık çalışma döneminin (sprint) son saatleri yaşanıyor ve pazartesi sabahı yeni hisse senedi alım-satım ekranı yüz binlerce gerçek kullanıcı için yayına alınacak.
Ekibe yeni katılan Junior Test Mühendisi Can, testlerini yaparken aniden bir hatayla karşılaştı ve panikle Jira ekranını açarak önem derecesini “Blocker” (Sistemi Kilitleyen / En Kritik Hata) olarak işaretlediği şu bileti oluşturdu:
Özet (Title): Hisse senedi alamıyorum, sistem hata veriyor!
Açıklama (Description): Borsa ekranında hisse al butonuna bastım, işlem olmadı. Çok acil düzeltilsin, pazartesi canlıya çıkamayız!
Bildirim, sistemi yazan kıdemli geliştirici Mehmet’in ekranına düştü. Mehmet ofisten çıkmak üzereydi. Can’ın biletini okudu, hiçbir detay göremeyince kendi bilgisayarında yerel test ortamını açtı; rastgele bir Türk Hava Yolları (THYAO) hissesinden 10 adet satın aldı. İşlem saniyeler içinde başarıyla yeşil yandı.
Mehmet bilete şu tek satırlık soğuk yorumu yazdı ve biletin durumunu “Cannot Reproduce” (Hata Tekrarlanamadı / Bende Çalışıyor) diyerek kapattı:
“Kendi makinemde denedim, sorunsuz 10 lot THYAO aldım. Sistem tıkır tıkır çalışıyor. Muhtemelen senin internetin koptu veya yanlış bir şeye bastın.”
O andan itibaren şirket içi iletişim kanalları bir savaş alanına döndü:
-
Can: “Ben testi gözlerimle gördüm, buton çalışmıyor, işinizi düzgün yapmıyorsunuz!”
-
Mehmet: “Kodumda hata yok, ekran görüntüsü ektedir, çalıştığını kanıtladım; boş yere bilet açıp vaktimi alma!”
Yöneticiler araya girdi, acil toplantılar planlandı, tüm ekibin hafta sonu stresiyle heba oldu.
Pazartesi sabahı ekip lideri iki mühendisi de yanına alarak Can’ın masasına gitti: “Hadi Can, Cuma akşamı tam olarak ne yaptıysan adım adım aynısını şimdi benim önümde tekrar yap.”
Can adımları tek tek tekrarlamaya başladı ve gerçek tablo tam 2 dakika içinde gün yüzüne çıktı:
-
Zaman Faktörü: Can işlemi Cuma günü saat 18:12‘de yapmıştı. Yani Borsa İstanbul’un resmi seans kapanış saati olan 18:10’dan hemen sonraydı!
-
Kullanıcı ve Test Verisi: Mehmet sabah saatlerinde işlem denemişken; Can seans kapandıktan sonra, üstelik o gün şirket birleşmesi nedeniyle işlemlere geçici olarak kapatılmış özel bir hisse senedini seçmişti.
-
Kök Neden: Aslında hisse alım motorunda bir hata yoktu. Asıl kusur şuydu: Borsa kapalıyken veya hisse işlem görmüyorken kullanıcının karşısına “Borsa seans saatleri dışındasınız” uyarısı çıkması gerekirken; yazılım boş bir beyaz ekran verip donuyordu!
Eğer Can o bileti ilk açtığı anda;
-
Hangi test ortamında çalıştığını (Test Sunucusu v2.4),
-
Test kullanıcısının ID numarasını,
-
İşlemi yaptığı tam saati (18:12),
-
Seçtiği hisse kodunu,
-
Ekranın videosunu ve tarayıcı konsolundaki kırmızı hata kaydını (Log)
eklemiş olsaydı ne olurdu?
Mehmet, Can’ın seans saatinden sonra işlem yaptığını 30 saniye içinde anlayacak, “Haklısın Can, seans kapanınca kullanıcıya uyarı mesajı gösteren kutucuğu eklemeyi unutmuşuz” diyecek ve sorun Cuma akşamı 18:35’te sessizce çözülecekti.
Yazılım dünyasının en meşhur savaşı olan “Benim Makinemde Çalışıyor!” (It works on my machine!) tartışmasının arkasındaki asıl sebep geliştiricilerin kibri değil; testçilerin kanıtsız ve eksik raporlarıdır.
4. “Bir de Şöyle Düşün” (Kutu İçeriği)
💡 Bir de Şöyle Düşün: “Tadı Tuzu Yok” Diyen Gurme
Lüks bir restoranda baş aşçıya gidip tabağı fırlattığını düşün:
Özensiz Yaklaşım: “Yemek berbat olmuş, yenmiyor, aşçılığı bırakın!” (Mehmet’in biletine benzer). Aşçı kendi yaptığı tencereden bir kaşık alır; “Gayet lezzetli, sen ağzının tadını bilmiyorsun” der ve seni kovar.
Profesyonel Gurme (İyi Testçi): “Saat 20:30’da masama gelen Fırında Levrek siparişinde balık yeterince pişmişti; ancak sosundaki kaya tuzu hiç erimemişti ve karabiber oranı menüde belirtilen hafif acılıktan çok daha yoğundu. Tabağın fotoğrafı ektedir.”
Aşçı bu eleştiriyi aldığında fırıncıya dönüp: “Sosun çırpılma süresini 2 dakika uzatın” der. Kusursuz bir hata raporu; savunma kalkanlarını indirir, tartışmayı bitirir ve doğrudan çözüme odaklandırır.
5. Mini Alıştırma
Senaryo: Can’ın yaşadığı bu krizi engellemek için, onun yerine o gün Jira biletini senin açtığını varsayalım.
Soru: Mehmet’in “Benim makinemde çalışıyor” diyerek bileti reddetmesini (Cannot Reproduce) engellemek adına; bu biletin “Yeniden Üretim Adımları” (Steps to Reproduce) bölümüne yazman gereken en az 3 somut ön koşul veya veriyi maddeler halinde sırala.
Bilette mutlaka yer alması gereken 3 somut detay:
Zaman / Seans Bilgisi: İşlemin resmi borsa seans kapanışından sonra (Saat: 18:12) yapıldığı.
Spesifik Test Verisi: Seçilen hisse senedinin kodu (Tahtası kapalı/işlem görmeyen hisse seçimi) ve emir türü (Limit Emir).
Hata Anı Kanıtı: Ekranda donup kalan sayfanın ekran görüntüsü ve tarayıcının ağ (Network/Console) sekmesindeki hata kodu.