Cucumberコミュニティの消滅の危機はGherkin(Given / When / Then)記法の消滅の危機でもある

はじめに

先日、Nextbeat Tech Bar:第一回ソフトウェアテストについて考える会にて、「BDD(Cucumber)コミュニティが無料提供しているコンテンツの紹介と現在起きている危機」というタイトルの発表をしました。

発表資料は以下です。

speakerdeck.com

本記事では、発表時にはうまく伝え切れなかった部分を補足として書くことを目的としています。特に、Cucumberコミュニティ消滅の危機は、Gherkin(Given / When / Then)記法の消滅の危機にも繋がっているので、Cucumberを使っていない人にも影響があるということを理解していただきたいです。

目次

本記事で言いたいことを3行で

  • Gherkin記法はCucumberコミュニティがメンテナンスしている
  • Cucumberコミュニティが資金難で消滅してしまうと、Gherkin記法もメンテナンスされなくなる
  • Gherkin記法の標準がなくなってしまう恐れがある

Gherkin記法とは何か

Gherkin記法とは、主にGiven / When / Thenで書かれた、シナリオ記述フォーマットの1つです。

例えば、以下のように記述します。

Feature: 自動販売機

    Scenario: 飲み物を買うと、飲み物代を引いた金額のお釣りが出る
        Given 自動販売機がある
        When 550 円を入れる
        And 120 円の "コーラ" を選択する
        Then "コーラ" が出てくる
        And 430 円が出てくる

Cucumberを使っていなかったとしても、Given / When / Thenが書いたシナリオを使っている人はいるのではないでしょうか?

Gherkin記法はCucumberコミュニティがメンテナンスしている

Gherkin記法は、Cucumberコミュニティの配下にある以下のリポジトリ上でメンテナンスしています。

github.com

このリポジトリ上では、記述ルールの定義や、各プログラミング言語の対応や、各自然言語の対応をしています。

プログラミング言語ごとにディレクトリを分けて管理している

gherkin-languages.json内で、各自然言語でも使えるようにしている

Cucumberコミュニティが資金難で消滅してしまうと、Gherkin記法もメンテナンスされなくなる

今回の発表でも示したとおり、現在Cucumberコミュニティは資金難に陥っています。

もしもコミュニティが消滅してしまうと、Cucumberというツールのメンテナンス以外にも、BDDの学習コンテンツ*1のメンテナンスや、Gherkin記法のメンテナンスがされなくなる恐れがあります。

Gherkin記法の標準がなくなってしまう恐れがある

実際に、Cucumberコミュニティが消滅する時には、きっと他コミュニテイがGherkinのリポジトリのメンテナンスを引き受けるでしょう。

しかしメンテナンスを引き受けることが叶わなくなった場合、Gherkin記法の標準が無くなってしまいます。

そうなると、以下のようなことが発生するでしょう。

  • 今までGherkin記法を用いていた各サービスが独自の使い方をするようになる
  • Gherkin記法に関する更新を入れたい場合には、Gherkin記法を用いたサービス全てに変更を入れる必要が出てくる
    • 例)Gherkin記法の用語の日本語訳を追加したい
  • とあるGherkin記法を用いたサービスから、別のGherkin記法を用いたサービスへ移行しようとすると、うまく動かなくなる部分が出てくる

このように、Cucumberコミュニティの存続の危機は、Gherkin記法の混乱にもつながる可能性があるのです。

おわりに

本記事では、Cucumberコミュニティの存続の危機が、Cucumberというツールのみならず、Gherkin記法にも影響するという話を書きました。

また、CucumberコミュニティはGherkin記法以外にも、BDDの発展や正しい理解にも一役買っています。なので、そういう面でもコミュニティ消滅を避けられると良いなと思い、今回の発表および本記事を書きました。

ここまでの内容を見て、少しでも貢献したいという方はぜひ寄付をお願いします。単発の寄付でもOKです。以下のページで寄付を募っていますのでよろしくお願いします!

opencollective.com

*1:Cucumberコミュニティは無料のBDDの教育コンテンツを本当に充実させています!例えばCucumber Schoolはその1つです。

school.cucumber.io