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.9k
BDD(Cucumber)コミュニティが無料提供しているコンテンツの紹介と現在起きている危機
Nextbeat Tech Bar:第一回ソフトウェアテストについて考える会
での発表資料です。
nihonbuson
March 22, 2024
Tweet
Share
More Decks by nihonbuson
See All by nihonbuson
リーダブルテストコード 〜メンテナンスしやすい テストコードを作成する方法を考える〜 #DevSumi #DevSumiB #JaSST #JaSSTTokyo / Readable test code
nihonbuson
12
10k
開発スピードは上がっている…品質はどうする? スピードと品質を両立させるためのプロダクト開発の進め方とは #DevSumi #DevSumiB / Agile And Quality
nihonbuson
3
6.2k
シフトライトなテスト活動を適切に行うことで、無理な開発をせず、過剰にテストせず、顧客をビックリさせないプロダクトを作り上げているお話 #RSGT2025 / Shift Right
nihonbuson
3
3.1k
品質管理の歴史学 / Quality Management History
nihonbuson
3
520
境界値分析
nihonbuson
4
330
振る舞い駆動開発(BDD)における、テスト自動化の前に大切にしていること #stac2024 / BDD formulation
nihonbuson
7
3.3k
品質管理チームのEMとして大事にしていること / QA EM
nihonbuson
0
2.4k
忠実度という概念と開発手法 / Fidelity
nihonbuson
1
130
WACATE流 勉強会会場の選び方 / WACATE venue
nihonbuson
1
690
Other Decks in Technology
See All in Technology
チームビルディング「脅威モデリング」ワークショップ
koheiyoshikawa
0
130
React Server Componentは 何を解決し何を解決しないのか / What do React Server Components solve, and what do they not solve?
kaminashi
6
1.2k
Dapr For Java Developers SouJava 25
salaboy
1
130
Restarting_SRE_Road_to_SRENext_.pdf
_awache
0
160
コンソールで学ぶ!AWS CodePipelineの機能とオプション
umekou
2
110
技術的負債を正しく理解し、正しく付き合う #phperkaigi / PHPerKaigi 2025
shogogg
7
1.8k
20250328_OpenAI製DeepResearchは既に一種のAGIだと思う話
doradora09
PRO
0
150
caching_sha2_passwordのはなし
boro1234
0
210
Multitenant 23ai の全貌 - 機能・設計・実装・運用からマイクロサービスまで
oracle4engineer
PRO
2
110
年末調整プロダクトの内部品質改善活動について
kaomi_wombat
0
200
一人QA時代が終わり、 QAチームが立ち上がった話
ma_cho29
0
290
パスキー導入の課題と ベストプラクティス、今後の展望
ritou
7
1.2k
Featured
See All Featured
Making Projects Easy
brettharned
116
6.1k
Docker and Python
trallard
44
3.3k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
11
610
Done Done
chrislema
183
16k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
22
2.6k
The Cost Of JavaScript in 2023
addyosmani
48
7.6k
Scaling GitHub
holman
459
140k
Designing for Performance
lara
606
69k
Git: the NoSQL Database
bkeepers
PRO
429
65k
Building Applications with DynamoDB
mza
94
6.3k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.2k
Designing Experiences People Love
moore
141
23k
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
おしまい