Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
BDD(Cucumber)コミュニティが無料提供しているコンテンツの紹介と現在起きている危機
Search
nihonbuson
March 22, 2024
Technology
4
5.5k
BDD(Cucumber)コミュニティが無料提供しているコンテンツの紹介と現在起きている危機
Nextbeat Tech Bar:第一回ソフトウェアテストについて考える会
での発表資料です。
nihonbuson
March 22, 2024
Tweet
Share
More Decks by nihonbuson
See All by nihonbuson
リーダブルテストコード 〜メンテナンスしやすい テストコードを作成する方法を考える〜 #DevSumi #DevSumiB / Readable test code
nihonbuson
12
8.2k
開発スピードは上がっている…品質はどうする? スピードと品質を両立させるためのプロダクト開発の進め方とは #DevSumi #DevSumiB / Agile And Quality
nihonbuson
3
4.5k
シフトライトなテスト活動を適切に行うことで、無理な開発をせず、過剰にテストせず、顧客をビックリさせないプロダクトを作り上げているお話 #RSGT2025 / Shift Right
nihonbuson
3
2.9k
品質管理の歴史学 / Quality Management History
nihonbuson
3
360
境界値分析
nihonbuson
4
260
振る舞い駆動開発(BDD)における、テスト自動化の前に大切にしていること #stac2024 / BDD formulation
nihonbuson
7
2.8k
品質管理チームのEMとして大事にしていること / QA EM
nihonbuson
0
2k
忠実度という概念と開発手法 / Fidelity
nihonbuson
1
120
WACATE流 勉強会会場の選び方 / WACATE venue
nihonbuson
1
670
Other Decks in Technology
See All in Technology
コンテナサプライチェーンセキュリティ
kyohmizu
1
130
生成 AI プロダクトを育てる技術 〜データ品質向上による継続的な価値創出の実践〜
icoxfog417
PRO
5
1.9k
わたしがEMとして入社した「最初の100日」の過ごし方 / EMConfJp2025
daiksy
13
4.4k
Exadata Database Service on Cloud@Customer セキュリティ、ネットワーク、および管理について
oracle4engineer
PRO
2
1.5k
OPENLOGI Company Profile
hr01
0
60k
遷移の高速化 ヤフートップの試行錯誤
narirou
6
1k
Visualize, Visualize, Visualize and rclone
tomoaki0705
9
79k
ソフトウェアエンジニアと仕事するときに知っておいたほうが良いこと / Key points for working with software engineers
pinkumohikan
1
140
【内製開発Summit 2025】イオンスマートテクノロジーの内製化組織の作り方/In-house-development-summit-AST
aeonpeople
2
540
PHPカンファレンス名古屋-テックリードの経験から学んだ設計の教訓
hayatokudou
2
540
偏光画像処理ライブラリを作った話
elerac
1
160
あなたが人生で成功するための5つの普遍的法則 #jawsug #jawsdays2025 / 20250301 HEROZ
yoshidashingo
2
230
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
100
18k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
1k
The Cost Of JavaScript in 2023
addyosmani
47
7.4k
How to Think Like a Performance Engineer
csswizardry
22
1.4k
How to Ace a Technical Interview
jacobian
276
23k
Bash Introduction
62gerente
611
210k
Visualization
eitanlees
146
15k
Designing for Performance
lara
604
68k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
Rebuilding a faster, lazier Slack
samanthasiow
80
8.9k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
27
1.9k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
430
Transcript
BDD(Cucumber)コミュニティ が無料提供している コンテンツの紹介と 現在起きている危機 ブロッコリー (@nihonbuson)
自己紹介 • 風間裕也(ブロッコリー) • 所属 ◦ 株式会社10X 品質管理部 ◦ 株式会社iCARE
フェロー(QAE技術顧問) ◦ B-Testing(個人事業主) • 社外活動 ◦ JaSST Review実行委員長 ▪ ソフトウェアレビューシンポジウム ◦ WACATE実行委員長 ▪ ソフトウェアテストの 合宿型ワークショップ形式勉強会 SNS上の アイコン
雑誌『Software Design』に寄稿しました 第1特集「テストの設計してますか?」 第1章「ソフトウェアテストとは何か」 を担当 1/18発売 https://gihyo.jp/magazine/SD/archive/2024/202402
連載記事 連載第1回:https://sqripts.com/2023/07/03/54058/
連載記事
翻訳書籍
翻訳書籍
アジェンダ • Cucumberとは何か、Cucumberコミュニティとは何か • Cucumberコミュニティが提供しているコンテンツ紹介 • Cucumberコミュニティの変遷
Cucumberとは何か Cucumberコミュニティ とは何か
Cucumberとは何か • 振る舞い駆動開発(Behaviour-Driven Development, BDD)をサポートするツール • Cucumberは、プレーンテキストで書かれた 実行可能仕様を読み取り、ソフトウェアが その仕様のとおりに動作することを検証します。 「Cucumber
- Introduction」のページを発表者が翻訳 • コミュニティで運営している • Gherkinのメンテナンス元のコミュニティでもある • メインメンテナはCucumberのみならず BDD全体について考えている人が多い
Gherkinとは何か Given/When/Thenなどのキーワードを用いて、 実行可能な仕様を自然言語で表現する手法 Feature: 自動販売機 Scenario: 飲み物を買うと、飲み物代を引いた金額のお釣りが出る Given 自動販売機がある When
550 円を入れる And 120 円の "コーラ" を選択する Then "コーラ" が出てくる And 430 円が出てくる
aslak hellesøyもメインメンテナの1人 テスト駆動開発の過去・現在・未来 より
コミュニティが提供しているコンテンツ • Cucumberの導入用ドキュメント ◦ 「BDDとは何か」 • 書籍『The BDD books』シリーズ(※有料) ◦
コミュニティメンバーの1人が執筆 ◦ 書籍『The BDD Books - Discovery』 • Cucumber School • Cucumber.io ブログ ◦ 「実例マッピング」 ◦ 「BRIEFの原則」
Cucumberの 導入用ドキュメント 「BDDとは何か」
BDDとは何か https://cucumber.io/docs/bdd/ に記載の図を発表者が日本語に翻訳
書籍 『The BDD Books - Discovery』
最初は「発見」から入る 多くの開発チームは、テスト自動化を改善したい という願望からBDDにやって来ます。 テスト自動化の改善は、BDDのアプローチに従うことの 重要な成果の1つですが、それは下流の成果です。 発見、定式化、自動化の順でプラクティスを 採用しない限り、期待されるメリットは得られません。 (中略) チームをまたいだ協調作業が得意になるまでは、 自動化ツールに焦点を合わせないほうが良いでしょう。
BDDで重要なのは「協調」 私はビジネスチームが参加しない形の「BDD」を 実施しているチームをたくさん見てきました。 私たちはそれらを「開発者専用」または「テスター専用」 のBDDとして寛大な形で説明しましたが、 個人としては基本的には それらはBDDにまったく従っていないと考えています。 (中略) BDDは協調に関するものです。BDDツールを使用したり、 Given/When/Thenを使用してテストを自動化しても、
開発アプローチは少しもBDDにはなりません。
Cucumber School
Cucumber Schoolとは何か • BDDに関するe-learningサイト ◦ BDD School ▪ https://cucumber.io/school/ (有料)
◦ Cucumber School ▪ https://school.cucumber.io/ (無料)
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
Cucumber Schoolのコース内容例(Java) • BDDの「発見」フェーズ • 最初のシナリオを考える • 自分自身でシナリオを表現する【★】 • シナリオを綺麗にする【★】
• BDDとTDDのループ • シナリオの詳細【★】 • 実例マッピング • コードをサポートする【★】 • 受け入れテストvsユニットテスト 【★】…Cucumberが直接関わる部分
Cucumber Schoolのコース内容例(Java) • BDDの「発見」フェーズ • 最初のシナリオを考える • 自分自身でシナリオを表現する【★】 • シナリオを綺麗にする【★】
• BDDとTDDのループ • シナリオの詳細【★】 • 実例マッピング • コードをサポートする【★】 • 受け入れテストvsユニットテスト 【★】…Cucumberが直接関わる部分
Cucumber Schoolの動画 • Cucumber Schoolの冒頭部分の動画は YouTube上に公開済み ◦ https://www.youtube.com/watch?v=PR7WIS8JYyY ◦ 動画時間は8分弱
◦ 英語の動画だが、 自動生成による日本語字幕を選択可能 ◦ 6年前の動画なので、 現在のCucumber Schoolとは内容が一部異なる
Cucumberコミュニティの素晴らしいところ 「もっと自動化ツールをどんどん使おうぜ!」 「Gherkin記法を使っていこうぜ!」 と言いがちな立場の人たちが、 「自動化ツールを使う以前に考えるべきことがあるだろ」 「Gherkin記法を使う以前に考えるべきことがあるだろ」 と言ってくれている。 (ツール/サービスの押し売りを目的としていない)
ちなみに Kent BeckもTDDにおいて大切にしている 【翻訳】テスト駆動開発の定義 - ステップ1. テストリスト
Cucumber.io ブログ 「実例マッピング」
実例マッピング • Matt Wynneが考案 • ユーザーストーリーが どのようなルールの元に 成り立つか炙り出す方法 ◦ Unknown
unknownsを Known unknownsにする • 詳しくはこちら ◦ 記事の日本語訳 ◦ 日本語の解説スライド ◦ 『The BDD Books - Discovery』
Cucumber.io ブログ 「BRIEFの原則」
BRIEFの原則 • Gherkin記法などで書かれたテストシナリオを 保守性の高い状態で記述するために役立つ原則 ◦ Business language(ビジネス言語) ◦ Real data(実際のデータ)
◦ Intention revealing(意図を明らかにする) ◦ Essential(必須) ◦ Focused(焦点を絞る) ◦ Brief(簡潔である) • 詳しくはこちら ◦ 記事の日本語訳 ◦ 『The BDD Books - Formulation』
Cucumberコミュニティの 変遷と起きている危機
Cucumberの歴史 • 2008年:Cucumberオープンソースプロジェクトが開始 • 2013年:Cucumber Limitedを設立 ◦ コンサルティングとトレーニングビジネスを実施 • 2019年:SmartBearに買収
◦ メインメンテナはフルタイムコミッターとして入社
Cucumberの歴史 • 2008年:Cucumberオープンソースプロジェクトが開始 • 2013年:Cucumber Limitedを設立 ◦ コンサルティングとトレーニングビジネスを実施 • 2019年:SmartBearに買収
◦ メインメンテナはフルタイムコミッターとして入社 • 2023年2月:メインメンテナが皆、解雇される
SpecFlowの歴史 • 2009年:「Cucumber for .NET」として誕生 • 2019年:Tricentis社が資金提供を実施 ◦ Tricentis社が「SpecFlow」の ドメインやロゴの権利を取得
• 2023年3月:SpecFlowに対して報酬が支払われなくなる • 2024年2月:「Reqnroll」へのリブランディングを発表
Mattのブログ記事より 実は私は休暇中で、インターネットもなく、このすべてが 先週起こったので、準備ができていませんでした。 メールアドレスにアクセスできなくなりました。 CucumberのコミュニティSlackに サインインできなくなりました。 GitHubの通知も確認できなくなりました。 https://mattwynne.net/new-beginning に記載の文章を発表者が日本語に翻訳
Mattのブログ記事より 実は私は休暇中で、インターネットもなく、このすべてが 先週起こったので、準備ができていませんでした。 メールアドレスにアクセスできなくなりました。 CucumberのコミュニティSlackに サインインできなくなりました。 GitHubの通知も確認できなくなりました。 おお。大丈夫ですかって? 感情的には大丈夫です。質問してくれてありがとう💖 https://mattwynne.net/new-beginning
に記載の文章を発表者が日本語に翻訳
Seb Roseとのメールのやり取りより Free at last :) ※意訳:ついに自由になったぞー
Cucumberコミュニティに起きている危機 • ドメインの管理者問題 ◦ https://cucumber.io/ ▪ SmartBear社が保有 ◦ https://school.cucumber.io/ ▪
Cucumberコミュニティが運営 ▪ いつ消えてもおかしくない • 財政難 ◦ Cucumber Slack上で、スポンサーを探している状態 ◦ 支援者を募集中! ▪ https://opencollective.com/cucumber#backer
おしまい