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.3k
BDD(Cucumber)コミュニティが無料提供しているコンテンツの紹介と現在起きている危機
Nextbeat Tech Bar:第一回ソフトウェアテストについて考える会
での発表資料です。
nihonbuson
March 22, 2024
Tweet
Share
More Decks by nihonbuson
See All by nihonbuson
忠実度という概念と開発手法 / Fidelity
nihonbuson
1
82
WACATE流 勉強会会場の選び方 / WACATE venue
nihonbuson
1
620
継続的テストモデルを実現するためにスリーアミーゴスを用いた10Xでのシフトレフトの事例
nihonbuson
3
1.5k
JSTQB FL 幻のテスト技法「ユースケーステスト」を学ぶ / Use_case_testing
nihonbuson
4
2.5k
テストコードを書き始める前に考えるべきテストの話(2023年版) #cedec2023
nihonbuson
1
3k
テスト対象の内容を忘れるためのテスト対象分析 #qa_test_talk / QA Test Talk Vol.3
nihonbuson
3
5.1k
AI(ChatGPT-4)によるテスト設計作成の現状を評価する #Ques20 / Ques20th
nihonbuson
10
6.8k
テストプロセスを用いて、テストケース作成の思考を整理しよう / test process
nihonbuson
7
4k
JaSST Review 22 Introduction / JaSST Review'22 内容紹介
nihonbuson
0
5.3k
Other Decks in Technology
See All in Technology
TanStack Routerに移行するのかい しないのかい、どっちなんだい! / Are you going to migrate to TanStack Router or not? Which one is it?
kaminashi
0
580
Security-JAWS【第35回】勉強会クラウドにおけるマルウェアやコンテンツ改ざんへの対策
4su_para
0
170
ハイパーパラメータチューニングって何をしているの
toridori_dev
0
140
エンジニア人生の拡張性を高める 「探索型キャリア設計」の提案
tenshoku_draft
1
120
Taming you application's environments
salaboy
0
180
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
3.8k
Terraform CI/CD パイプラインにおける AWS CodeCommit の代替手段
hiyanger
1
240
Why does continuous profiling matter to developers? #appdevelopercon
salaboy
0
180
iOSチームとAndroidチームでブランチ運用が違ったので整理してます
sansantech
PRO
0
130
EventHub Startup CTO of the year 2024 ピッチ資料
eventhub
0
110
iOS/Androidで同じUI体験をネ イティブで作成する際に気をつ けたい落とし穴
fumiyasac0921
1
110
OCI Network Firewall 概要
oracle4engineer
PRO
0
4.1k
Featured
See All Featured
BBQ
matthewcrist
85
9.3k
Scaling GitHub
holman
458
140k
Intergalactic Javascript Robots from Outer Space
tanoku
269
27k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
410
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
How to Think Like a Performance Engineer
csswizardry
20
1.1k
Docker and Python
trallard
40
3.1k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
It's Worth the Effort
3n
183
27k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
Writing Fast Ruby
sferik
627
61k
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
おしまい