Katalon Studio ile Cucumber BDD Uygulanması

Katalon Studio ile Cucumber BDD Uygulanması

Test mühendisleri, geliştiricilerin yazdığı kodları test etmekle görevlidir. Bu testlerin amacı, ürünün doğru bir şekilde çalıştığından emin olmak ve kullanıcılara uygun bir deneyim sunmaktır. Test mühendisleri, test senaryolarını yazmak ve uygulamak için birçok farklı yaklaşım kullanırlar. Bu yazıda, BDD (Behavior Driven Development) yaklaşımını ve bu yaklaşımın kullanımı için yaygın olarak kullanılan Cucumber aracını ele alacağız.

BDD Yaklaşımı Nedir?

BDD yaklaşımı, iş analistleri, müşteriler ve diğer teknik olmayan kişilerin, ürünü test edebilmesine ve ürünün davranışlarını günlük konuşma diline yakın bir ifade ile tanımlayabilmesine olanak tanır. BDD yaklaşımı, ürünün nasıl davranması gerektiğine odaklanır ve yazılımın doğru şekilde çalıştığını doğrulamak için kullanılır. BDD, test senaryolarının kodlama becerileri olmayan kişiler tarafından bile anlaşılmasını ve düzenlenmesini kolaylaştırır.

BDD Yaklaşımı Kullanımı İçin Kullanılan Diğer Araçlar

BDD yaklaşımını uygulamak için birçok araç mevcuttur. Bunlar Cucumber, Specflow, EasyB, Jdave, Jbehave, FitNesse ve BeanSpec gibi araçlardır. Bu araçlar, test senaryolarının yazılmasını ve yönetilmesini kolaylaştırır. Bu araçlardan en yaygın olarak kullanılanı, Katalon Studio tarafından desteklenen Cucumber aracıdır. Cucumber, BDD yaklaşımını uygulamak için kullanılan en popüler araçtır. Bu durum, Cucumber'ın kullanımının kolaylığı ve topluluk desteğinin yaygınlığı ile açıklanabilir.

Cucumber ve Gherkin

Cucumber aracılığıyla yazılan test senaryolarının standart bir yazım kalıbında olması, test senaryolarının daha kolay okunmasını ve anlaşılmasını sağlar. Cucumber, Gherkin ile standart yapıyı sağlar. Gherkin ile Given/When/Then gibi ifadeler ile test senaryoları yazılır.

 

 

 

Katalon Studio ile BDD uygulaması

  1. Adım: Feature dosyası eklemek

Bu adımda öncelikle Katalon üzerinde feature dosyası nasıl oluşturulduğunu göreceğiz. Feature dosyaları Katalon standart yapısında `Include` dizini altında oluşturulur.

Bu dizinden `New Feature File` sekmesine tıkladığımızda feature dosyasının adını belirlememiz için bir ekran açılacaktır.


Açılan ekranda feature dosyamıza isim veriyoruz. `Genarate sample Feature template` alanını seçersek bize örnek bir feature dosyası şablonu verecektir.

Örnek Şablon:

Artık feature dosyamızı oluşturduk. Feature dosyasında test scriptlerinin tanımlı olmaması nedeniyle sarı renkli uyarı veren alanlar bulunmaktadır. Bu adımların test scriptlerinin yazılmasıyla uyarıların kalktığını göreceğiz. Feature dosyasında kullanılan ifadelere kısaca bakalım.

Feature: Bir dizi senaryodan oluşan yapıyı,

Scenario: Bir dizi adımdan oluşan yapıyı,

Scenario Outline: Birden çok test verisi ile çalışmak için kullanılan yapıyı,

Given: İşlemin gerçekleşmesi için gerekli başlangıç koşullarının adımını,

When: İşlemin gerçekleştiği adımı,

Then: İşlemin sonuçlarının değerlendirildiği adımı,

And, But: Adım değerlendirmelerin düzenlendiği adımları,

Background: Her senaryo öncesinde çalışacak adımları,

Examples: Kullanılacak test verileri,

Tags/ Labels: Senaryoları gruplamak için kullanılacaktır.

Örnek olarak Katalon demo sistemi üzerinden bir login senaryosu hazırlayalım.

Kullanacağımız Katalon sitesi ` https://katalon-demo-cura.herokuapp.com/`


Cucumber feature dosyası ile hazırlanmış, Gherkin diliyle yazılmış 3 adet senaryomuz var. Scenario Outline ile hazırlanmış senaryolarda 1 tane test verisi olduğu için tek bir senaryo olarak sayıyoruz. Birden fazla test verisini test edecek olursak, veri sayısı kadar senaryo çalışacağı için senaryo sayımız veri oranında artacaktır.

2. Adım: Feature dosyasını düzenlemek

Daha iyi bir yönetim ve bakım süreci sağlamak istiyorsanız feature dosyalarının hazırlanmasından düzenlenmesi kadar her adım oldukça önemli hale gelecektir. Test sayılarının düşük olduğu durumda düzenlemeler çok önemsenmese de senaryo sayılarının artmasıyla bakım ve senaryo düzenleme oldukça süre alacaktır. Senaryo yazımında temel alınacak husus, her özellik bir senaryo tarafından kontrol edilmelidir. Feature dosyasında sağ tıklayarak aşağıdaki Cucumber özelliklerini kullanacağız.

Pretty Format :Daha düzgün görünmesi için feature dosyasını otomatik düzenler.

Find Step :İlgili test scriptini eşlemek için kullanılacaktır.

Recalculate steps :Adımlar eşlendikten sonra eşleşmeyen olup olmadığı kontrolü sağlanır.

3. Adım: Adımları tanımlamak

Feature dosyamızı oluşturduk. Test Scriptlerini oluşturma işlemini yapacağız. Test Scriptleri oluşturulurken kullanacağım 6 tanımsız adım mevcuttur. Bu adımların Test Scriptlerini hazırlayacağız.

Given I navigate to Cura System homepage

When I click Make Appointment button

And I enter username <username> and password <password>

And I click Log in button

Then I should be able to login successfully

Then I should NOT be able to login successfully

Test Scriptlerini ekleyeceğimiz Step İmplementation dosyasını daha önce oluşturduğumuz paketin üstüne sağ tıklayarak oluşturuyoruz. Uygun bir isim verdikten sonra Test Scriptlerini oluşturmak için Spy Web yada Record Web menüsünü kullanacağız.

Spy Web yada Record Web ile Test Scriptleri aldıktan sonra oluşturduğumuz Step Implementation dosyasına kopyalayacağız.

Cucumber feature dosyasında tanımsız adımların snippetlerini almak için run tuşuna basıyoruz. Console sekmesinde aşağıdaki gibi implement edilecek stepleri verecektir. Bunların tamamın kopyalayıp kendi oluşturduğumuz Step Implementation dosyasına yapıştıracağız. Bu aşamadan sonra snippetlerin içeriğini Spy Web yada Record Web ile aldığımız Test Scriptleri ile değiştireceğiz.

Test Snippet’lerini kopyalayıp Test Scriptlerinin içeriğini tamamladıktan sonra Step Implementation dosyamız hazır hale gelecektir.

Test Scriptlerini oluşturduktan sonra Feature dosyasını bu adımları tanımlama işlemine geçeceğiz. Bu işlem için Feature dosyasında sağ tıklayıp recalculate steps demek yeterli olacaktır.

Step Definition için Default Paketi tanımlamak

Birden fazla paket üzerinde çalışıyorsanız Test Listener’ı tanımlaması yaparak test sürelerinizi ciddi oranda düşürebilirsiniz. Bu işlemi Step Implementation içinde ya da Test Listeners modülü aracılığı ile sağlayabilirsiniz.


ya da


Bu işlemi yazılan test adımlarınlarının scriptlerini sadece bu pakette ara olarak yorumlayabilirsiniz.

Eğer hiç tanımlama yapmazsanız yada ‘CucumberKW.GLUE = ['']’ boş bırakırsanız tüm paketlerin içinde test scriptlerini arayacaktır.

4. Adım: Feature dosyası üzerinden çalıştırmak

Feature dosyası üzerine geldiğinizde direk olarak Run butonu aktif olacaktır. Step Implementation dosyası üzerinden çalışmaya izin vermeyecektir.

5. Adım: Cucumber Hook’larını düzenlemek

Cucumber Hook’ları bize çıktı sürecinde katkı sağlamak için yada bazı özel işlemleri yapabilmemiz için kullanılabilen bir yapıyı sağlayacaktır.

Senaryo koşmadan önce ve koştuktan sonra senaryo adını Console’a dökecektir.

Bu makalede Katalon Studio ile Cucumber BDD yaklaşımı nasıl uygulanır basit olarak ifade etmeye çalıştık. Katalon Studio Web, API, Mobil ve Desktop uygulamaları ayrı ayrı olarak ya da tek bir proje içinde oluşturabilen Cucumber BDD ile tüm proje tiplerine kolaylıkla uygulanabilen bir otomasyon aracıdır. Sizde Katalon Studio otomasyon aracı ile tanışmak ve uygulamalarınıza sağladığımız test çözümlerini konuşmak için bizimle iletişime geçebilirsiniz.