Gauge-Cucumber-SpecFlow Framework Nedir?
Merhaba,
Bu yazıda Gauge,Cucumber ve SpecFlow frameworklerin karşılaştırılmasından bahsedeceğim. Öncelikle Frameworklerimizi teker teker tanıyalım, özelliklerinden bahsedelim ve ardından birbirine göre karşılaştırılmasına bakalım. Peki hagisini kullanmalıyım? sorusuna yanıtını karşılaştırmadan sonra siz verin isterseniz çünkü hepsinin birbirine göre üstünlükleri ve eksiklikleri var. Burada bence hangisini daha iyi sorusu yerine hangisi bana daha uygun sorusunu soralım.
Gauge Framework Nedir?
Gauge ThoughtWorks üreticileri tarafından açık kaynak kodlu ve ücretsiz bir üründür. Gauge frameworkü bir çok dil ile entegre olarak çalışır ve testlerinizin sürdürülebilir olarak çalışmasına olanak sağlar. Gauge bize testlerin yazılmasında ve otomotize edilmesi aşamasında step,spec ve konsept gibi terimlerin kullanılmasını sağlar bu terimler yazılımın geliştirilmesi, anlaşılması ve hızlı geliştirilmesi aşamasında çok fazla yarar sağlar. Asıl amacı kodumuza programlama bilgisi olmayan birinin (Örn:Analist) kodumuzu çağırdığımız fonksiyonları kolayca yazabilmesi ve anlayabilmesidir.
Gauge Özellikleri
— BDD destekler.
— CI-CD araçlarıyla entegrasyonu kolaylaştıran komut satırı desteği sağlar.
— Java , C # ,C # , Ruby , Javascript , (.Net Core) , Golang ve Python gibi büyük diller ile desteklidir.
— Visual Studio Code, IntelliJ ve Visual Studio ide ortamlarını destekler.
— HTML Raporu, XML Raporu, JSON Raporu, Spectacle ve Flash raporları elde etmemize olanak sağlar.
— Build management: Maven ve Gradle açık kaynak Gauge API’larını kullanarak kendi eklentinizi bile oluşturabilirsiniz.
— Cucumberın sağlamadığığı özelliklerden bir tanesi raporlama ekranı gauge html-reports adlı dosyanın altında bir rapor sunar.
.Spec dosyası altında örnek bir kod,
Cucumber Framework Nedir?
Java dünyası içinde bulunan “* Düz metin olarak tanımlanmış kullanım senaryolarını otomatize edilmiş testlere dönüştüren bir araçtır.“. Cucumber Gauge gibi testlerin otomotize edilmesi için kullanılan, BDD(Behaviour Driven Development) yaklaşımının göre kod yazmamızı sağlayan bir frameworktür. Temelde Gauge ile aynı prensiplere sahip yazılım yaşam döngüsünün daha anlaşılır ve hızlı bir şekilde işletilmesi amacı ile konuşma dili ile hiç kod bilgisi olmayan birisinin bile yazabileceği test fonksiyonlarının yazılmasını sağlar. Günümüzde şirketlerde yaygınlaşan Agile prensiplerine uyum sağlamak için test ortamında developer ekiplerde kullanılan teknolojilerden birisidir.
Cucumber Özellikleri
— BDD destekler.
— Dil ve ide desteği gauge ile aynıdır.
— .feature isimli bir Gherkin dosyası altında Given anahtar kelimesi ile ön koşul yani başlangıç durumu tanımlanır, When anahtar kelimesi ile olayı Then anahtar kelimesi ile de sonuç tanımlanır. Bu yapı Gauge yazım formatına göre biraz daha karışıklıklara sebep olabilmektedir.
Örnek bir .feature uzantılı Gherkin dosyası.
Specflow Framework Nedir?
Cucumber for .net adından da anlaşılacağı gibi cucumber prensiplerine sahip .net geliştiricileri için geliştirilmiş bir cucumber/specflow kütüphanesidir. Temel amacı diğer frameworkler gibi derdimizi türkçe veya ingilizce anlatıp bir yazım kuralına bağlı kalarak test üretmeyi sağlamak.
Specflow Özellikleri
— .NET platformu için geliştirilmiş bir kütüphanedir.
— ide desteği : .net destekleyen tüm ortamlarla uyumludur.
Specflow tanımlamaları genellikle cucumber ile aynı çünkü cucumber tarafından .net platformuna yönelik geliştirilen bir frameworktür özellikle .Net geliştirmesi için testlerinizi koşmayı hedefliyorsanız seçiminizi bu yönde yapabilirsiniz.
Bu şekilde elimden geldiğince Gauge-Cucumber-Specflow test frameworklerini karşılaştırmaya çalıştım. Umarım faydalı bir yazı olmuştur başka bir yazıda görüşmek üzere..