InfoQ

News

Cucumberを使用したストーリー駆動開発レシピ

作者 Sebastien Auvray, 翻訳者 編集部 投稿日 2009年3月4日 午前2時33分

コミュニティ
Ruby,
Java,
Agile
トピック
ソフトウェアテスト,
アジャイル技術,
コラボレーション
タグ
RSpec

Behavior Driven Development(BDD)の人気は否定できない。それは、Test Driven Development (TDD)に対する反応であり、2003年にDan North氏によって紹介された。BDDは、ソフトウェアプロジェクトに関わるさまざまな人びと、たとえばデベロパやQAと、技術者ではない人やビジネス アナリスト間の協調を促進する。

RubyにおいてDSLが簡単に作成できたり、使用できたりすることで、RSpec(リンク)のような多くのBDDフレームワークが誕生することとなった。たとえば Aslak Hellesoy氏(リンク)によって記述されたCucumber(リンク)は、Java, .NETおよびFlexコードのテストにも使用することができる。自動化機能テストとして、プレーンテキスト文書を実行することができる。

以下は典型的なシナリオの例である(Wikiのプロジェクト(リンク)より):

Feature: Search courses
  In order to ensure better utilization of courses
  Potential students should be able to search for courses

  Scenario: Search by topic
    Given there are 240 courses where neither has the topic "biology" 
    And there are 3 courses A,B,C that each have "biology" as one of the topics
    When I search for "biology" 
    Then I should see a the following courses:
      | title |
      | A     |
      | B     |
      | C     |

それから、このレシピが記述する実際のコードを実装し、成功するまでテストの失敗を繰り返す。Cucumberは、シナリオの失敗または成功した箇所をハイライトする(CucumberのWebサイトより)(リンク)

Tests failure

Cucumberのレシピを記述するために使用されるフォーマットは、Gherkin言語(リンク)であり、さまざまな自然言語のためにスキンされる。すなわち、 「Given」、「And」などのキーワードもフランス語やドイツ語などの言語(リンク)で記述することができる。キーワードの正しさに対する自然言語のテキスト は、プログラムによる過程定義によって解釈される。すなわち過程を実行するために、コードを実行する。

sysadmins向けのWebアプリケーション統合テスト(リンク)や、分散システムとテストメッセージングの統合(リンク)、またはPDF記述テスト(リンク)など、Cucumberを使用するためのさまざまな手段がある。

Cucumber 0.1.16バージョンは、Ruby Gemとして利用可能であり、0.1.99.10はGitHub(リンク)で利用可能である。

ブックマーク
digg+,
reddit+,
del.icio.us+,
dzone+,
Hatena

特集コンテンツ一覧

SharePointで列レベルのアクセス権限コントロールをおこなう方法

Grzegorz Gogolowicz and Matthew Dressel demonstrate how to extend Windows SharePoint Services 3.0 to support column level permissions.

正式なパフォーマンスチューニング方法論: 待機ベースのチューニング

Steven Haines氏は、待機ベースのチューニングと呼ばれる方法論を提示することで、Webアプリケーションパフォーマンスチューニングへの取り組みについて述べている。

FlexでXMLやJSONを扱う

プラットフォームは、相互運用性が必要である。この記事では、チャートやグリッドコンポーネントへの直接マッピングを含む、Flexと、JSONやXMLとの相互運用性を検討する。

RailsKitsを理解して、冗長なコードを書くのを止めよう

近年Ruby on Railsは、ウェブアプリケーションを作成するのにとても人気のあるRubyのフレームワークとなった。ウェブアプリケーションの作成の特徴としては、繰り返し同じベースの機能を何年も作成する必要があるが、RailsKitsは、この苦痛を和らげるために現れた。

地球最大の科学計測器のためにデータの記憶と分析を担うLHCグリッド

higgs-event

大型ハドロン衝突型加速器(LHC)は、宇宙の認識に革命をもたらすことを目的とした粒子加速器です。世界規模のLHCコンピューティンググリッド(LCG)プロジェクトは、LHCを使う予定の高エネルギー物理学コミュニティ全体を対象として、データの記憶と分析のインフラを提供します。

Atomサーバー ~ データ分散のためのパブリッシングの力 ~ パート2

本稿では、Bryon JacobとChris BerryによるAtomサーバーの説明の続編です。Atomサーバーは、Apache Abderaをベースとした成熟したAtomストアの実装です。

パラダイムに基づいた多言語プログラミング

「正しい言語を正しいプロジェクトに使う」という事について議論したことはありますか?Sadek Drobi氏がシステム内で多言語を採用することについて説明しています。

JSF, Ajax, そしてSeamによるポートレット開発(パート3/3)

シリーズ最終回となる今回の記事ではSeamポートレットの開発と合わせてJBoss Portlet Bridgeの最新版ベータ4でカバーされる全ての機能とその利点に焦点を当てています。