Slide 1

Slide 1 text

BDD(Cucumber)コミュニティ が無料提供している コンテンツの紹介と 現在起きている危機 ブロッコリー (@nihonbuson)

Slide 2

Slide 2 text

自己紹介 ● 風間裕也(ブロッコリー) ● 所属 ○ 株式会社10X 品質管理部 ○ 株式会社iCARE フェロー(QAE技術顧問) ○ B-Testing(個人事業主) ● 社外活動 ○ JaSST Review実行委員長 ■ ソフトウェアレビューシンポジウム ○ WACATE実行委員長 ■ ソフトウェアテストの 合宿型ワークショップ形式勉強会 SNS上の アイコン

Slide 3

Slide 3 text

雑誌『Software Design』に寄稿しました 第1特集「テストの設計してますか?」 第1章「ソフトウェアテストとは何か」 を担当 1/18発売 https://gihyo.jp/magazine/SD/archive/2024/202402

Slide 4

Slide 4 text

連載記事 連載第1回:https://sqripts.com/2023/07/03/54058/

Slide 5

Slide 5 text

連載記事

Slide 6

Slide 6 text

翻訳書籍

Slide 7

Slide 7 text

翻訳書籍

Slide 8

Slide 8 text

アジェンダ ● Cucumberとは何か、Cucumberコミュニティとは何か ● Cucumberコミュニティが提供しているコンテンツ紹介 ● Cucumberコミュニティの変遷

Slide 9

Slide 9 text

Cucumberとは何か Cucumberコミュニティ とは何か

Slide 10

Slide 10 text

Cucumberとは何か ● 振る舞い駆動開発(Behaviour-Driven Development, BDD)をサポートするツール ● Cucumberは、プレーンテキストで書かれた 実行可能仕様を読み取り、ソフトウェアが その仕様のとおりに動作することを検証します。 「Cucumber - Introduction」のページを発表者が翻訳 ● コミュニティで運営している ● Gherkinのメンテナンス元のコミュニティでもある ● メインメンテナはCucumberのみならず BDD全体について考えている人が多い

Slide 11

Slide 11 text

Gherkinとは何か Given/When/Thenなどのキーワードを用いて、 実行可能な仕様を自然言語で表現する手法 Feature: 自動販売機 Scenario: 飲み物を買うと、飲み物代を引いた金額のお釣りが出る Given 自動販売機がある When 550 円を入れる And 120 円の "コーラ" を選択する Then "コーラ" が出てくる And 430 円が出てくる

Slide 12

Slide 12 text

aslak hellesøyもメインメンテナの1人 テスト駆動開発の過去・現在・未来 より

Slide 13

Slide 13 text

コミュニティが提供しているコンテンツ ● Cucumberの導入用ドキュメント ○ 「BDDとは何か」 ● 書籍『The BDD books』シリーズ(※有料) ○ コミュニティメンバーの1人が執筆 ○ 書籍『The BDD Books - Discovery』 ● Cucumber School ● Cucumber.io ブログ ○ 「実例マッピング」 ○ 「BRIEFの原則」

Slide 14

Slide 14 text

Cucumberの 導入用ドキュメント 「BDDとは何か」

Slide 15

Slide 15 text

BDDとは何か https://cucumber.io/docs/bdd/ に記載の図を発表者が日本語に翻訳

Slide 16

Slide 16 text

書籍 『The BDD Books - Discovery』

Slide 17

Slide 17 text

最初は「発見」から入る 多くの開発チームは、テスト自動化を改善したい という願望からBDDにやって来ます。 テスト自動化の改善は、BDDのアプローチに従うことの 重要な成果の1つですが、それは下流の成果です。 発見、定式化、自動化の順でプラクティスを 採用しない限り、期待されるメリットは得られません。 (中略) チームをまたいだ協調作業が得意になるまでは、 自動化ツールに焦点を合わせないほうが良いでしょう。

Slide 18

Slide 18 text

BDDで重要なのは「協調」 私はビジネスチームが参加しない形の「BDD」を 実施しているチームをたくさん見てきました。 私たちはそれらを「開発者専用」または「テスター専用」 のBDDとして寛大な形で説明しましたが、 個人としては基本的には それらはBDDにまったく従っていないと考えています。 (中略) BDDは協調に関するものです。BDDツールを使用したり、 Given/When/Thenを使用してテストを自動化しても、 開発アプローチは少しもBDDにはなりません。

Slide 19

Slide 19 text

Cucumber School

Slide 20

Slide 20 text

Cucumber Schoolとは何か ● BDDに関するe-learningサイト ○ BDD School ■ https://cucumber.io/school/ (有料) ○ Cucumber School ■ https://school.cucumber.io/ (無料)

Slide 21

Slide 21 text

Cucumber Schoolで提供しているコース ● 現在、全5コースを提供中 ○ BDD with Cucumber(Java) ○ BDD with Cucumber(JavaScript) ○ BDD with Cucumber(Ruby) ○ BDD with SpecFlow(C#/.NET) ○ BDD overview for Business Analysts and Product Owners

Slide 22

Slide 22 text

Cucumber Schoolのコース内容例(Java) ● BDDの「発見」フェーズ ● 最初のシナリオを考える ● 自分自身でシナリオを表現する【★】 ● シナリオを綺麗にする【★】 ● BDDとTDDのループ ● シナリオの詳細【★】 ● 実例マッピング ● コードをサポートする【★】 ● 受け入れテストvsユニットテスト 【★】…Cucumberが直接関わる部分

Slide 23

Slide 23 text

Cucumber Schoolのコース内容例(Java) ● BDDの「発見」フェーズ ● 最初のシナリオを考える ● 自分自身でシナリオを表現する【★】 ● シナリオを綺麗にする【★】 ● BDDとTDDのループ ● シナリオの詳細【★】 ● 実例マッピング ● コードをサポートする【★】 ● 受け入れテストvsユニットテスト 【★】…Cucumberが直接関わる部分

Slide 24

Slide 24 text

Cucumber Schoolの動画 ● Cucumber Schoolの冒頭部分の動画は YouTube上に公開済み ○ https://www.youtube.com/watch?v=PR7WIS8JYyY ○ 動画時間は8分弱 ○ 英語の動画だが、 自動生成による日本語字幕を選択可能 ○ 6年前の動画なので、 現在のCucumber Schoolとは内容が一部異なる

Slide 25

Slide 25 text

Cucumberコミュニティの素晴らしいところ 「もっと自動化ツールをどんどん使おうぜ!」 「Gherkin記法を使っていこうぜ!」 と言いがちな立場の人たちが、 「自動化ツールを使う以前に考えるべきことがあるだろ」 「Gherkin記法を使う以前に考えるべきことがあるだろ」 と言ってくれている。 (ツール/サービスの押し売りを目的としていない)

Slide 26

Slide 26 text

ちなみに Kent BeckもTDDにおいて大切にしている 【翻訳】テスト駆動開発の定義 - ステップ1. テストリスト

Slide 27

Slide 27 text

Cucumber.io ブログ 「実例マッピング」

Slide 28

Slide 28 text

実例マッピング ● Matt Wynneが考案 ● ユーザーストーリーが どのようなルールの元に 成り立つか炙り出す方法 ○ Unknown unknownsを Known unknownsにする ● 詳しくはこちら ○ 記事の日本語訳 ○ 日本語の解説スライド ○ 『The BDD Books - Discovery』

Slide 29

Slide 29 text

Cucumber.io ブログ 「BRIEFの原則」

Slide 30

Slide 30 text

BRIEFの原則 ● Gherkin記法などで書かれたテストシナリオを 保守性の高い状態で記述するために役立つ原則 ○ Business language(ビジネス言語) ○ Real data(実際のデータ) ○ Intention revealing(意図を明らかにする) ○ Essential(必須) ○ Focused(焦点を絞る) ○ Brief(簡潔である) ● 詳しくはこちら ○ 記事の日本語訳 ○ 『The BDD Books - Formulation』

Slide 31

Slide 31 text

Cucumberコミュニティの 変遷と起きている危機

Slide 32

Slide 32 text

Cucumberの歴史 ● 2008年:Cucumberオープンソースプロジェクトが開始 ● 2013年:Cucumber Limitedを設立 ○ コンサルティングとトレーニングビジネスを実施 ● 2019年:SmartBearに買収 ○ メインメンテナはフルタイムコミッターとして入社

Slide 33

Slide 33 text

Cucumberの歴史 ● 2008年:Cucumberオープンソースプロジェクトが開始 ● 2013年:Cucumber Limitedを設立 ○ コンサルティングとトレーニングビジネスを実施 ● 2019年:SmartBearに買収 ○ メインメンテナはフルタイムコミッターとして入社 ● 2023年2月:メインメンテナが皆、解雇される

Slide 34

Slide 34 text

SpecFlowの歴史 ● 2009年:「Cucumber for .NET」として誕生 ● 2019年:Tricentis社が資金提供を実施 ○ Tricentis社が「SpecFlow」の ドメインやロゴの権利を取得 ● 2023年3月:SpecFlowに対して報酬が支払われなくなる ● 2024年2月:「Reqnroll」へのリブランディングを発表

Slide 35

Slide 35 text

Mattのブログ記事より 実は私は休暇中で、インターネットもなく、このすべてが 先週起こったので、準備ができていませんでした。 メールアドレスにアクセスできなくなりました。 CucumberのコミュニティSlackに サインインできなくなりました。 GitHubの通知も確認できなくなりました。 https://mattwynne.net/new-beginning に記載の文章を発表者が日本語に翻訳

Slide 36

Slide 36 text

Mattのブログ記事より 実は私は休暇中で、インターネットもなく、このすべてが 先週起こったので、準備ができていませんでした。 メールアドレスにアクセスできなくなりました。 CucumberのコミュニティSlackに サインインできなくなりました。 GitHubの通知も確認できなくなりました。 おお。大丈夫ですかって? 感情的には大丈夫です。質問してくれてありがとう💖 https://mattwynne.net/new-beginning に記載の文章を発表者が日本語に翻訳

Slide 37

Slide 37 text

Seb Roseとのメールのやり取りより Free at last :) ※意訳:ついに自由になったぞー

Slide 38

Slide 38 text

Cucumberコミュニティに起きている危機 ● ドメインの管理者問題 ○ https://cucumber.io/ ■ SmartBear社が保有 ○ https://school.cucumber.io/ ■ Cucumberコミュニティが運営 ■ いつ消えてもおかしくない ● 財政難 ○ Cucumber Slack上で、スポンサーを探している状態 ○ 支援者を募集中! ■ https://opencollective.com/cucumber#backer

Slide 39

Slide 39 text

おしまい