7.1. Giriş ve Yaşamdan Metafor

Hayalindeki o kırmızı spor arabayı satın aldığını düşün. Galeriden çıkıyorsun: Gaza basıyorsun, araba hızlanıyor; direksiyonu kırıyorsun, dönüyor; frene basıyorsun, zınk diye duruyor. Yani sistem fonksiyonel olarak vaat ettiği tüm işlevleri yerine getiriyor: Git, dön, dur.

Peki bu araba gerçekten “kaliteli” bir araç mıdır?

Ertesi gün otobana çıkıyorsun. Hız ibresi 90 km/s hıza ulaştığında motor aşırı ısınıp hararet yapıyor, araba zangır zangır titriyor ve 100 km/s hıza asla çıkamıyor. (Bu bir Performans Kusurudur).

Yol üstünde bir kahve almak için duruyorsun. Sokaktan geçen herhangi biri, cebindeki paslı bir ev anahtarıyla bagajını ve kapılarını tek hamlede açıveriyor; içindeki tüm değerli eşyalarını çalıyor. (Bu bir Güvenlik Açığıdır).

Akşam karanlığında tekrar yola çıkıyorsun; gösterge panelindeki yazı tipleri o kadar silik ve renk kombinasyonu o kadar zıtlıktan uzak ki, hafif görme kusuru olan bir sürücü farların yanıp yanmadığını veya hızını seçemiyor. (Bu bir Erişilebilirlik Kusurudur).

Şimdi dürüstçe cevap ver: Gaza basınca gidiyor, frene basınca duruyor diye böyle bir arabaya biner misin? Canını veya paranı ona emanet eder misin? Asla.

“Ne Yapıyor?” ile “Nasıl Yapıyor?” Arasındaki Dev Fark

Yazılım dünyasında da hikâye tıpatıp böyledir.

Şimdiye kadar öğrendiğimiz ECP, BVA, Karar Tabloları veya Jira süreçleri çoğunlukla tek bir sorunun peşindeydi:

👉 “Sistem NE yapıyor?” (Butona basınca sipariş oluşuyor mu? Şifre yanlış girilince hata veriyor mu?)

İşte buna Fonksiyonel Test (Functional Testing) deriz.

Fakat yazılımın sadece çalışması yetmez. Uluslararası kalite standardı ISO/IEC 25010 bize çok daha kritik bir ikinci soruyu sordurur:

👉 “Sistem bu işi NASIL yapıyor?”

  • Ne kadar Hızlı ve Dirençli yapıyor? (Performans): Tek bir kişi alışveriş yaparken 1 saniyede açılan o ödeme sayfası, “Efsane Cuma” indiriminde aynı anda 50.000 kişi yüklendiğinde ayakta kalabilecek mi, yoksa sunucu kilitlenip çökecek mi?

  • Ne kadar Güvenli yapıyor? (Güvenlik): Kullanıcının kredi kartı bilgilerini sunucuya taşırken araya giren kötü niyetli biri o veriyi çalabiliyor mu?

  • Kime ne kadar Erişilebilir yapıyor? (Erişilebilirlik): Görme engelli bir birey ekran okuyucu programıyla (Screen Reader) sitenden tek başına bilet alabiliyor mu? Yoksa fare kullanamayan bir bedensel engelli sitede hiçbir butona tıklayamayıp dışlanıyor mu?

İşte bu operasyonel dayanıklılık, hız, emniyet ve kapsayıcılık niteliklerini denetlediğimiz test evrenine Fonksiyonel Olmayan Testler (Non-Functional Testing) diyoruz.

Bir sistemin fonksiyonel olması onu yalnızca “çalışır” kılar; fonksiyonel olmayan testlerden geçmesi ise onu “güvenilir, hızlı ve yaşanabilir bir ürün” yapar.

4. “Bir de Şöyle Düşün” (Kutu İçeriği)

💡 Bir de Şöyle Düşün: Restorandaki Yemek ve Garsonun Hızı

Lüks bir restorana gidip biftek siparişi verdin:

  • Fonksiyonel Başarı: Masana 1 tabak lezzetli biftek geldi mi? Evet, geldi. Şartname yerine getirildi (Fonksiyonel test GEÇTİ).

  • Fonksiyonel Olmayan Felaket:

    • Garson yemeği tam 3 saat sonra getirdi (Performans Çöküşü – Yavaşlık).

    • Yemeğin yapıldığı mutfağın kapısı sokağa açık, içine toz ve fare giriyor (Güvenlik / Hijyen Zafiyeti).

    • Restoranın kapısında tekerlekli sandalye rampası veya menüde kabartmalı Braille alfabesi yok (Erişilebilirlik Kusuru).

Yemek masaya gelmiş olsa bile o restoran iflas eder. Yazılım da böyledir: Ekranda sipariş oluşsa bile 40 saniye bekleten bir siteyi hiçbir müşteri kullanmaz.

5. Mini Alıştırma

Senaryo: Bir online bankacılık mobil uygulamasında yapılan son test koşumunda şu iki arıza raporlanmıştır:

  1. Hata A: Kullanıcı “Para Transferi” butonuna bastığında sistem 0.5 saniye içinde parayı gönderiyor; ancak alıcı hesap ekstresinde transfer edilen 500 TL yerine sehven 0 TL görünüyor.

  2. Hata B: Kullanıcı “Para Transferi” butonuna bastığında para doğru hesaba eksiksiz aktarılıyor; ancak ekrandaki işlem onay animasyonu tam 48 saniye boyunca donup bekletiyor.

Soru: Bu iki hatadan hangisi Fonksiyonel Test, hangisi Fonksiyonel Olmayan Test (Performans) kapsamına girer? Gerekçesini birer cümleyle açıkla.

  • Hata A bir Fonksiyonel Kusurdur; çünkü sistem vaat ettiği temel işlevi (hesaba doğru parayı aktarma fonksiyonunu) yanlış icra etmiş, iş kuralını yerine getirememiştir (“Sistem NE yapıyor?” sorusu başarısızdır).

  • Hata B bir Fonksiyonel Olmayan Kusurdur (Performans/Yanıt Süresi); çünkü sistem parayı doğru aktarmış (işlev çalışmış) fakat bunu kabul edilemez bir yavaşlıkta ve gecikmeyle icra etmiştir (“Sistem NASIL yapıyor?” sorusu başarısızdır).