🥒 Cucumber — BDD & Gherkin ile Test Otomasyonu

Cucumber — BDD & Gherkin ile Test: Cucumber, doğal dilde yazılmış Gherkin senaryolarını (`Given/When/Then`) adım tanımlarıyla (step definitions) gerçek Java koduna bağlayan bir k

Cucumber, doğal dilde yazılmış Gherkin senaryolarını (`Given/When/Then`) adım tanımlarıyla (step definitions) gerçek Java koduna bağlayan bir köprüdür — tıpkı iki dilli bir sözleşme gibi: bir sütunda herkesin anladığı düz cümle, diğer sütunda o cümleyi çalıştıran teknik madde vardır ve ikisi satır satır eşleşir. Peki testi doğrudan JUnit5 ile Java'da yazabiliyorken neden araya Gherkin katmanı ekleyip fazladan iş yaratmak gerekiyor? Çünkü saf JUnit5 kodunu yalnızca geliştiriciler okuyabilir; Gherkin sayesinde iş analisti, ürün sahibi ve QA aynı senaryoyu tek bir "doğruluk kaynağı" olarak paylaşır ve yanlış anlaşılma azalır. Java tarafında Cucumber hem JUnit5 hem TestNG runner ile çalışır; bu, Python'daki `behave` veya JS'deki `cucumber-js`'in Java karşılığıdır. QA mühendisi için asıl kazanç iletişimdir: bir kabul kriteri Gherkin ile yazıldığında hem yaşayan dokümantasyon olur hem test olur, böylece "gereksinim buydu ama test başka şeyi kontrol ediyor" tarzı sessiz kapsam boşlukları önlenir.

Gherkin Sözdizimi — Feature Dosyası

login.feature — Gherkin örneği

Micro Lab: Kod yazma

TODO satirini beklenen cozumdeki kritik satirla degistir. Bu gercek runtime degil; amac dogru yapinin yazilmasini kontrollu olarak pekistirmek.

Bir .feature Dosyası Java Kodu OLMADAN Nasıl Bir Test Tanımlar?

`Feature: User Login` başlığı, dosyanın HANGİ iş yeteneğini test ettiğini insan diliyle özetler — teknik olmayan bir okuyucu (PO, analist) bile anlar.

`Background: Given browser is open on the login page` HER senaryodan önce OTOMATİK çalışır — aynı "önce tarayıcıyı aç" adımını her Scenario'da tekrar YAZMANA gerek kalmaz.

@smoke @critical gibi etiketler…

`@smoke @critical` gibi etiketler senaryoları GRUPLAR — CI'da `--tags "@smoke"` ile sadece kritik senaryoları çalıştırmak mümkün olur, tüm suite'i beklemeden.

Scenario Outline + Examples tablosu…

`Scenario Outline` + `Examples` tablosu, AYNI adımları 3 farklı veri satırıyla (admin/user1/wrong) TEKRAR TEKRAR çalıştırır — kod tekrarı olmadan veri-odaklı test elde edilir.

Step Definitions — Gherkin → Java

LoginSteps.java — Step Definitions