10 Sertifikası Olan Ama Bir Hata Bile Bulamayan Test Uzmanı

Her türlü sertifikaya sahipsiniz. ISTQB, ScrumMaster, Cloud ve Security. Özgeçmişiniz kısaltmalarla dolu bir duvar gibi.

Ancak gerçek bir hata (bug) bulan tek bir test bile yazamıyorsunuz.

Geçen çeyrekte bir adayla mülakat yaptım. Sadece teoriden bahsetti. V-modelinden ve shift-left yaklaşımından söz etti. Kendisinden bir hata yakalayan yazdığı tek bir testi göstermesini istediğimde sessiz kaldı.

Hiçbir şeyi bozan bir test yazmamıştı. Sadece başarılı olan testler yazıyordu.

Sertifikalar hafızanızı test eder. Hatalar ise düşünme biçiminizi.

Sertifikalar size terminoloji ve yapı kazandırır. İşe alım uzmanlarının ön eleme süreçlerinden geçmenize yardımcı olur. Ancak size kusurları nasıl bulacağınızı öğretmezler.

Sınav soruları bir müfredatı takip eder. Gerçek uygulamalar ise etmez. Bir giriş formu (login form) bir müfredata sahip değildir. Bunun yerine, sunucu saatlerinin dört dakika geri olması veya belirli zamanlama sorunları gibi tuhaf uç durumlar (edge cases) vardır.

Sertifikalı test uzmanı bir kontrol listesini takip eder. Gereksinimlere göre testler yazar ve bunları "geçti" veya "kaldı" olarak işaretler.

Hata avcısı (bug hunter) ise testi bir soruşturma gibi ele alır. Bir hipotezle başlar. Uygulamanın hatalı olduğunu kanıtlamaya çalışır.

Zihniyet farkına bir bakın.

Standart bir test, "mutlu yolu" (happy path) kontrol eder:

  • Ürünlere git.
  • Sepete ekle.
  • Geçerli kart bilgilerini gir.
  • Sipariş onayını bekle.

Bu test, her şey mükemmel olduğunda özelliğin çalıştığını kanıtlar. Asla bir hata bulamaz.

Bir hata avcısı testi ise şüphecidir:

  • Yazım hatası olan bir kart numarası gir.
  • Bir hata mesajı bekle.
  • Sipariş onayının yine de görünmediğini kontrol et.

İkinci test, uygulamanın hata vereceğini varsayar. Şunu sorar: "Burası nerede kırılıyor?"

Birçok test uzmanının özgeçmişinde değil, deneyiminde boşluklar var. Testlerin hatalı veriler veya çökmüş ortamlar nedeniyle başarısız olduğunu görmüşsünüzdür. Ancak testlerin, mantıktaki bir kusuru bulduğunuz için başarısız olduğunu görmemişsinizdir.

Yeni sınavlara çalışmayı bırakın. Başarısız olması için tasarlanmış testler yazarak bu boşluğu kapatın.

Şu egzersizi deneyin: Bir özellik seçin. Onu bozmaya çalışarak bir saat harcayın.

Bir arama özelliği için:

  • Anlamsız (gibberish) sorguları test edin.
  • SQL injection karakterlerini test edin.
  • Boş dizeleri (empty strings) test edin.

Bir dosya yükleme işlemi için:

  • Uzantısı olmayan dosyaları test edin.
  • Devasa dosya boyutlarını test edin.
  • Kötü niyetli dosya adlarını test edin.

Bir keresinde %95 kapsama oranına sahip bir ödeme sistemi üzerinde çalışmıştım. Tüm testler geçiyordu. Sonra, bir yuvarlama hatası nedeniyle sistem canlı ortamda para kaybetti. Testlerimiz ideal senaryoları kapsıyordu ancak kimse matematiksel mantığı test etmeyi düşünmemişti.

Artık her teste tek bir soruyla başlıyorum: "Bu özelliğin sessizce hata vermesi için neyin doğru olması gerekir?"

Bir portfolyo sitesi kurmayın. LinkedIn profilinizi güncellemeyin.

Hata vermesi için tasarlanmış tek bir test yazın. Eğer geçerse, bir güvenlik garantiniz var demektir. Eğer kalırsa, bir hata buldunuz demektir.

Neyi test ettiğinizi, nasıl test ettiğinizi ve ne bulduğunuzu not edin. Bu, düşünebildiğinizin gerçek kanıtıdır.

Hata bulabildiğinizi kanıtlamak için bu hafta yazacağınız tek bir test nedir?

Kaynak: https://dev.to/qawalah/the-tester-who-had-10-certifications-but-couldnt-write-a-single-test-that-caught-a-bug-1c05

İsteğe bağlı öğrenme topluluğu: https://t.me/GyaanSetuAi