Davranış Odaklı Geliştirme - Araçlar

Geliştirme ekipleri genellikle BDD'nin bir araç çerçevesi olduğu konusunda yanlış bir anlayışa sahiptir. Gerçekte BDD, bir araç çerçevesinden ziyade bir geliştirme yaklaşımıdır. Bununla birlikte, diğer geliştirme yaklaşımlarında olduğu gibi, BDD için de araçlar vardır.

Farklı platformlar ve programlama dilleri için çeşitli BDD Araçları kullanılmaktadır. Onlar -

  • Salatalık (Yakut çerçevesi)

  • SpecFlow (.NET çerçevesi)

  • Davranış (Python çerçevesi)

  • JBehave (Java çerçevesi)

  • JBehave Web (Selenium entegrasyonlu Java çerçevesi)

  • Marul (Python çerçevesi)

  • Concordion (Java çerçevesi)

  • Behat (PHP çerçevesi)

  • Kahlan (PHP çerçevesi)

  • DaSpec (JavaScript çerçevesi)

  • Jasmine (JavaScript çerçevesi)

  • Cucumber-js (JavaScript çerçevesi)

  • Squish GUI Test Cihazı (JavaScript, Python, Perl, Ruby ve Tcl için BDD GUI Test Aracı)

  • Spock (Groovy çerçevesi)

  • Yadda (Jasmine gibi çerçeveler için Gherkin dil desteği (JavaScript çerçevesi))

Salatalık

Salatalık, dünya çapında kullanılan çalıştırılabilir özellikler için ücretsiz bir araçtır. Cucumber, yazılım geliştirme ekiplerinin, yazılımın düz metin olarak nasıl davranması gerektiğini açıklamasına olanak tanır. Metin, iş tarafından okunabilir, alana özgü bir dilde yazılır ve dokümantasyon, otomatik testler ve geliştirme yardımı olarak hizmet eder ve hepsi tek bir formatta toplanır. Cucumber ile kırk farklı konuşma dilini (İngilizce, Çince vb.) Kullanabilirsiniz.

Salatalık - Temel Özellikler

Salatalığın temel özellikleri aşağıdaki gibidir -

  • Salatalık, Yürütülebilir Spesifikasyonlar, Test Otomasyonu ve Yaşayan Dokümantasyon için kullanılabilir.

  • Cucumber, herhangi bir dilde yazılmış Ruby, Java, NET, Flex veya web uygulamaları ile çalışır.

  • Hıyar, FIT'in yaptığına benzer şekilde Tablolarda daha kısa Testleri destekler.

  • Cucumber, gereksinimleri, otomatikleştirilmiş testleri ve dokümantasyonu uyumlu bir şekilde birleştirerek Yazılım Geliştirme Yaşam Döngüsünde devrim yarattı: yazılımı doğrulayan düz metin çalıştırılabilir özellikler.

SpecFlow

SpecFlow, .NET Platformu için bir BDD Aracıdır. SpecFlow, açık kaynaklı bir projedir. Kaynak kodu GitHub'da barındırılmaktadır.

SpecFlow, Özellikler için Gherkin Sözdizimini kullanır. Kornişon formatı, Salatalık tarafından tanıtıldı ve diğer araçlar tarafından da kullanılıyor. Kornişon dili, GitHub'da bir proje olarak korunur -https://github.com/cucumber/gherkin

Davranmak

Behave, Python çerçevesi için kullanılır.

  • Behave, "özellikler" adlı bir dizinde depolanan üç tür dosyayla çalışır -

    • davranış senaryolarınızı içeren özellik dosyaları.

    • Senaryolar için Python adım uygulamalarını içeren "steps" dizini.

    • İsteğe bağlı olarak, bazı çevresel kontroller (adımlar, senaryolar, özellikler veya tüm şut maçından önce ve sonra çalıştırılacak kod).

  • Davranış özellikleri Gherkin (bazı değişikliklerle) kullanılarak yazılır ve "ad.özellik" olarak adlandırılır.

  • Bir özelliğe ve senaryoya eklenen etiketler, kendilerine iletilen "özellik" veya "senaryo" nesnesi aracılığıyla ortam işlevlerinde bulunur. Bu nesnelerde, özellikler dosyasında bulunma sırasına göre eklenen etiket adlarının bir listesi olan "etiketler" adı verilen bir nitelik vardır.

  • Gherkin Standardında Değişiklikler -

    • Behave, standart Gherkin dosyalarını ayrıştırabilir ve Gherkin'i küçük harfli adım anahtar kelimelerine izin verecek şekilde genişletir çünkü bunlar bazen daha okunabilir özellik özelliklerine izin verebilir.

Marul

Marul, Salatalığa dayalı çok basit bir BDD aracıdır. Python projeleri için otomatik testler olarak düz metin işlevsel açıklamaları yürütebilir. Marul, BDD'deki en yaygın görevleri hedefler.

Konkordiyon

Concordion, Java Framework için Örneğe Göre Spesifikasyonu otomatikleştirmek için açık kaynaklı bir araçtır.

Temel özellikler basit olsa da, Güçlü uzantı çerçevesi API'si , özellik olarak Excel elektronik tablolarını kullanma, çıktıya ekran görüntüleri ekleme, günlük bilgilerini görüntüleme vb. Gibi işlevler eklemenize olanak tanır.

Concordion, paragrafları, tabloları ve uygun noktalama işaretlerini kullanarak spesifikasyonları normal dilde yazmanıza izin verir ve yapılandırılmış Dili Verilen / Ne Zaman / Sonra'yı kullanmak gerekli değildir.

Concordion, aşağıdakiler dahil diğer dillere taşındı:

  • C # (Concordion.NET)

  • Python (PyConcordion)

  • Yakut (Yakut-Concordion)