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
4.7k
BDD(Cucumber)コミュニティが無料提供しているコンテンツの紹介と現在起きている危機
Nextbeat Tech Bar:第一回ソフトウェアテストについて考える会
での発表資料です。
nihonbuson
March 22, 2024
Tweet
Share
More Decks by nihonbuson
See All by nihonbuson
品質管理の歴史学 / Quality Management History
nihonbuson
1
38
境界値分析
nihonbuson
1
56
振る舞い駆動開発(BDD)における、テスト自動化の前に大切にしていること #stac2024 / BDD formulation
nihonbuson
5
1.7k
品質管理チームのEMとして大事にしていること / QA EM
nihonbuson
0
1k
忠実度という概念と開発手法 / Fidelity
nihonbuson
1
88
WACATE流 勉強会会場の選び方 / WACATE venue
nihonbuson
1
640
継続的テストモデルを実現するためにスリーアミーゴスを用いた10Xでのシフトレフトの事例
nihonbuson
3
1.6k
JSTQB FL 幻のテスト技法「ユースケーステスト」を学ぶ / Use_case_testing
nihonbuson
5
2.6k
テストコードを書き始める前に考えるべきテストの話(2023年版) #cedec2023
nihonbuson
1
3k
Other Decks in Technology
See All in Technology
ガバメントクラウドのセキュリティ対策事例について
fujisawaryohei
0
530
KubeCon NA 2024 Recap / Running WebAssembly (Wasm) Workloads Side-by-Side with Container Workloads
z63d
1
240
Amazon VPC Lattice 最新アップデート紹介 - PrivateLink も似たようなアップデートあったけど違いとは
bigmuramura
0
190
10個のフィルタをAXI4-Streamでつなげてみた
marsee101
0
170
Qiita埋め込み用スライド
naoki_0531
0
4.7k
コンテナセキュリティのためのLandlock入門
nullpo_head
2
320
5分でわかるDuckDB
chanyou0311
10
3.2k
開発生産性向上! 育成を「改善」と捉えるエンジニア育成戦略
shoota
2
330
re:Invent をおうちで楽しんでみた ~CloudWatch のオブザーバビリティ機能がスゴい!/ Enjoyed AWS re:Invent from Home and CloudWatch Observability Feature is Amazing!
yuj1osm
0
120
サーバレスアプリ開発者向けアップデートをキャッチアップしてきた #AWSreInvent #regrowth_fuk
drumnistnakano
0
190
Wantedly での Datadog 活用事例
bgpat
1
440
ずっと昔に Star をつけたはずの思い出せない GitHub リポジトリを見つけたい!
rokuosan
0
150
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
460
33k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
520
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
BBQ
matthewcrist
85
9.4k
The Cost Of JavaScript in 2023
addyosmani
45
7k
Bash Introduction
62gerente
608
210k
Docker and Python
trallard
42
3.1k
How GitHub (no longer) Works
holman
311
140k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
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
おしまい