Kazanimlar:
- Bir gereksinimi ve kabul kriterlerini yapay zeka desteğiyle denklik sınıfları, sınır değer analizi ve karar tablosu gibi tekniklerle kapsamlı test vakalarına dönüştürebilme
- Pozitif, negatif ve kenar durum senaryolarını ayrı ayrı üretip yapay zekanın atladığı kenar durumları ürün bilgisiyle tamamlayabilme
- Test vakalarını kabul kriterlerine bağlayarak izlenebilirlik kurup kapsam boşluklarını ve gereksiz şişkinliği ayıklayabilme
Test uzmanının işi, çoğu zaman şu boş sayfayla başlar: elinde bir gereksinim vardır ("kullanıcı şifresini sıfırlayabilmeli") ve bu tek cümleyi, yazılımın gerçekten doğru çalıştığını kanıtlayacak onlarca somut kontrole dönüştürmesi gerekir. Bu dönüşüme test tasarımı denir. Test senaryosu (test scenario — neyin test edileceğini tarif eden üst düzey bir amaç, örneğin "geçersiz şifre reddedilmeli") ile test vakası (test case — o senaryoyu somut adımlar, girdi ve beklenen sonuçla ayrıntılandıran çalıştırılabilir birim) arasındaki farkı bilmek işin temelidir. Yapay zeka (YZ) tam da bu boş sayfa anını hızlandırır: bir gereksinimi saniyeler içinde onlarca senaryo taslağına çevirir. Ama unutmayın — YZ hangi durumları düşünebileceğinizi çoğaltır; hangi durumların gerçekten önemli olduğunu ürün bilginizle siz seçersiniz.
Bu ünitede bir gereksinimi, YZ desteğiyle nasıl kapsamlı ama gereksiz şişkinlikten uzak bir test setine dönüştüreceğinizi adım adım öğreneceksiniz.
Adım adım: gereksinimden test setine
1. Adım — Gereksinimi netleştir. YZ'ye gereksinimi ham hâliyle vermeden önce, kabul kriterlerini (bir işin "bitti" sayılması için karşılaması gereken koşullar) toplayın. "Şifre sıfırlanabilmeli" yetmez; "sıfırlama linki 30 dakika geçerli", "aynı şifre tekrar kullanılamaz" gibi kurallar gerçek testin kaynağıdır.
2. Adım — Test tekniklerini uygulat. YZ'den yalnızca "senaryo yaz" demeyin; klasik test tasarım tekniklerini adıyla isteyin:
- Denklik sınıfları (equivalence partitioning): Girdileri, aynı davranışı üretmesi beklenen gruplara bölmek. Örneğin yaş alanı için "geçerli aralık", "çok küçük", "çok büyük" birer sınıftır; her sınıftan bir örnek test etmek yeterlidir.
- Sınır değer analizi (boundary value analysis): Hataların en çok sınırlarda oluştuğu gerçeğinden yola çıkarak eşik değerlerini test etmek. 18 yaş sınırı için 17, 18, 19'u ayrı test etmek gibi.
- Karar tablosu (decision table): Birden çok koşulun kombinasyonlarını ve her kombinasyonun beklenen sonucunu tablolaştırmak.
- Durum geçişi (state transition): Sistemin durumdan duruma geçişlerini (örneğin sipariş: oluşturuldu → ödendi → kargolandı) ve geçersiz geçişleri test etmek.
3. Adım — Pozitif, negatif ve kenar durumları ayır. Pozitif test (doğru girdiyle beklenen sonuç), negatif test (geçersiz girdiyle düzgün hata) ve kenar durum (edge case — sınırdaki veya alışılmadık durumlar) üçünü birden isteyin. YZ genellikle pozitife ağırlık verir; negatif ve kenar durumları açıkça istemezseniz eksik kalır.
4. Adım — Önceliklendir ve buda. YZ 60 senaryo üretebilir; hepsi eşit değerde değildir. Risk yüksek olanları (para, güvenlik, veri kaybı) öne alın, birbirinin kopyası olanları birleştirin.
İpucu: YZ'ye "bu gereksinimden akla gelmeyecek 5 kenar durum üret" diye ayrı bir istek gönderin. YZ'nin en değerli katkısı çoğu zaman sizin atladığınız sıra dışı durumları hatırlatmasıdır.
Zayıf prompt / Güçlü prompt
Zayıf: "Şifre sıfırlama için test senaryoları yaz."
Güçlü: "Şu kabul kriterlerine sahip 'şifre sıfırlama' özelliği için test vakaları üret: link 30 dk geçerli, tek kullanımlık, son 3 şifre tekrar kullanılamaz, 5 hatalı denemede hesap 15 dk kilitlenir. Denklik sınıfları ve sınır değer analizi uygula. Pozitif, negatif ve kenar durumları ayrı başlıklarda ver. Her vaka için: ID, önkoşul, adımlar, test verisi, beklenen sonuç, ilişkili kabul kriteri. Güvenlik/kilitleme senaryolarını öne al."
Güçlü prompt; kuralları, teknikleri, çıktı formatını ve öncelik sırasını verir. Böylece YZ dekoratif değil, çalıştırılabilir ve izlenebilir test vakaları üretir.
Test vakası çıktı formatı
Ekibinizin test yönetim aracına (örneğin TestRail, Zephyr, Xray) doğrudan aktarılabilecek yapılandırılmış bir format isteyin. Aşağıdaki tablo iyi bir test vakasının bileşenlerini gösterir:
Alan
Açıklama
Örnek
ID
Benzersiz kimlik
TC-PWD-014
Başlık
Kısa amaç
Süresi dolmuş link reddedilir
Önkoşul
Testten önce gereken durum
Sıfırlama linki 31 dk önce üretilmiş
Adımlar
Sıralı eylemler
1. Linke tıkla 2. Yeni şifre gir
Test verisi
Kullanılan somut değerler
eski link, yeni şifre "Abc!2345"
Beklenen sonuç
Doğrulanacak davranış
"Link süresi doldu" hatası, şifre değişmez
Kabul kriteri
İzlenebilirlik bağı
AK-3: link 30 dk geçerli
Öncelik
Risk düzeyi
Yüksek
Dört kopyalanabilir şablon
1) Teknik bazlı senaryo üretimi:
Rolün: kıdemli test tasarımcısı.Şu özellik için test vakaları üret: [özellik ve kabul kriterleri].Uygula: denklik sınıfları, sınır değer analizi, karar tablosu.Çıktıyı 3 grupta ver: Pozitif / Negatif / Kenar durum.Her vaka: ID, önkoşul, adımlar, test verisi, beklenen sonuç,ilişkili kabul kriteri, öncelik (Yüksek/Orta/Düşük).
2) Kenar durum avcısı:
Şu özellik için normalde gözden kaçan 10 kenar durum listele:[özellik]. Her biri için neden riskli olduğunu tek cümleyle yaz.Boş/null, çok uzun girdi, eşzamanlılık, zaman aşımı, format hataları,Unicode/emoji, negatif/sıfır, ağ kesintisi gibi eksenleri düşün.
3) Karar tablosu üretimi:
Şu iş kuralı için karar tablosu oluştur: [kurallar].Sütunlar: koşul kombinasyonları; satırlar: her koşul ve beklenenaksiyon. Ulaşılamaz veya çelişen kombinasyonları işaretle.Sonra her kombinasyon için bir test vakası öner.
4) İzlenebilirlik kontrolü:
Şu kabul kriterleri listesi ve şu test vakaları verildi:[kriterler] / [vakalar].Hangi kabul kriterinin HİÇ test vakasıyla karşılanmadığını(kapsam boşluğu) ve hangi vakaların hiçbir kritere bağlanmadığını(gereksiz vaka) tablo hâlinde göster.
Üç mini vaka
Vaka 1 — Kenar durumların değeri. Bir fintek ekibinin uzmanı, para transferi özelliği için 18 senaryo yazmıştı. YZ'ye "kenar durum avcısı" şablonunu uyguladı; YZ "aynı anda iki cihazdan aynı bakiyeyi transfer" (eşzamanlılık) durumunu hatırlattı. Bu senaryo test edildiğinde çift harcama (double spend) açığı bulundu ve canlıya çıkmadan kapatıldı. Tek bir kenar durum, olası altı haneli bir kaybı önledi.
Vaka 2 — Şişkinliği budamak. Bir ekip, YZ'ye üyelik formu için senaryo ürettirdi ve 74 vaka geldi. İzlenebilirlik şablonunu çalıştırınca 74 vakanın yalnızca 9 kabul kriterini karşıladığı, birçoğunun aynı denklik sınıfını tekrar test ettiği görüldü. Set 74'ten 23 anlamlı vakaya indirildi; koşum süresi %68 azaldı, kapsam düşmedi.
Vaka 3 — Yanlış varsayım. YZ, bir tarih alanı için "31 Şubat" gibi geçersiz tarihleri test etmeyi önerdi ama ekibin kullandığı takvim bileşeninin bunu zaten engellediğini bilmiyordu. Uzman, YZ'nin ürettiği 6 tarih senaryosundan 4'ünün ürün bağlamında gereksiz olduğunu ayıkladı. YZ olasılıkları üretti; ürün bilgisi seçimi yaptı.
Sık yapılan hatalar
- Kabul kriteri vermeden senaryo istemek. YZ neyin doğru olduğunu bilmeden yüzeysel, çoğu zaman gerçek riski ıskalayan senaryolar üretir.
- Sadece pozitif testlerle yetinmek. Negatif ve kenar durumları açıkça istememek. Hatalar genellikle burada saklıdır.
- Üretileni olduğu gibi kabul etmek. YZ'nin ürün bağlamını bilmediğini unutup gereksiz veya imkânsız senaryoları sette bırakmak.
- İzlenebilirliği atlamak. Vakaları kabul kriterlerine bağlamamak; sonuçta hangi kriterin test edilmediği görülmez (kapsam boşluğu).
- Nicelik yanılgısı. "60 senaryo çıktı" diye sevinmek. Değer, sayıda değil, riski karşılayan kapsamdadır.
Özetle
Test tasarımı, tek cümlelik bir gereksinimi yazılımın doğruluğunu kanıtlayan somut, çalıştırılabilir vakalara çevirmektir. YZ bu dönüşümü büyük ölçüde hızlandırır: kabul kriterlerini, klasik test tekniklerini (denklik sınıfları, sınır değer, karar tablosu, durum geçişi) ve net bir çıktı formatını verdiğinizde kapsamlı taslaklar üretir. Ama YZ pozitife meyleder, ürün bağlamını bilmez ve gereksiz şişkinlik üretebilir. Sizin işiniz negatif ve kenar durumları açıkça istemek, izlenebilirliği kurmak, riske göre önceliklendirmek ve budamaktır.
Uygulama görevi
Kendi projenizden bir özellik seçin ve kabul kriterlerini yazın. YZ'ye "teknik bazlı senaryo üretimi" şablonuyla test vakaları ürettirin. Ardından "kenar durum avcısı" ve "izlenebilirlik kontrolü" şablonlarını uygulayın. Sonuçta: (1) YZ'nin atladığı en az 3 kenar durumu kendiniz ekleyin, (2) hiçbir kabul kriterine bağlanmayan vakaları budayın, (3) test edilmeyen kabul kriteri kaldıysa yeni vaka yazın. Final seti bir tabloya dökün.
Kontrol listesi
- [ ] Senaryo istemeden önce kabul kriterlerini netleştirdim.
- [ ] YZ'den denklik sınıfları ve sınır değer analizini adıyla istedim.
- [ ] Pozitif, negatif ve kenar durumları ayrı ayrı ürettim.
- [ ] Her test vakasını bir kabul kriterine bağladım (izlenebilirlik).
- [ ] Kapsam boşluğu ve gereksiz vakaları tabloyla denetledim.
- [ ] Riske göre önceliklendirip şişkin seti budadım.