Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TODOリストの整理を通じて実行すべきテストを考える #tddbc / TDDBC 2020 ...

nihonbuson
August 01, 2020

TODOリストの整理を通じて実行すべきテストを考える #tddbc / TDDBC 2020 Online LT

以下のイベントの投影資料です。
https://tddbc.connpass.com/event/181973/

【発表資料中のURL】
P2 Agile Testing Condensed Japanese Edition
https://leanpub.com/agiletesting-condensed-japanese-edition

P4 プログラミングのお題: 自動販売機 (設計進化重視バージョン)
https://gist.github.com/yattom/884741ecbd3c660fb393b2d7b116b4b2

P25 見てわかるテスト駆動開発 / TDD Live and Workshop 2019 Spring
https://speakerdeck.com/twada/tdd-live-and-workshop-2019-spring?slide=12

P27 動作するきれいなコード / Clean code that works - SeleniumConf Tokyo 2019
https://speakerdeck.com/twada/clean-code-that-works-seleniumconf-tokyo-2019?slide=45

P31 書籍『エクストリームプログラミング』
https://www.ohmsha.co.jp/book/9784274217623/

P34 テストエンジニアがTDDブートキャンプに参加してきました #TDDBC
https://nihonbuson.hatenadiary.jp/entry/2018/10/05/090000

P34 「テスト駆動開発の『駆動』は誤訳なんじゃないか」と言われて改めて考えた話
https://nihonbuson.hatenadiary.jp/entry/2020/07/07/183000

P34 Agile Testingのエッセンス #scrumosaka / Agile Testing Essence
https://speakerdeck.com/nihonbuson/agile-testing-essence

nihonbuson

August 01, 2020
Tweet

More Decks by nihonbuson

Other Decks in Technology

Transcript

  1. 自己紹介 • ブロッコリー • 職業 ◦ テストエンジニア • 社外活動 ◦

    JaSST Review実行委員長 ◦ WACATE実行委員 ◦ 書籍『Agile Testing Condensed』 翻訳
  2. 題材 • 自動販売機 (設計進化重視バージョン) • お題は事前に与えられていた ◦ お題1. ボタンを押すとコーラが出る ▪

    ボタンを押すとコーラが出ます。 ◦ お題2. お金を払う ▪ 100円硬貨を投入してから ボタンを押すとコーラが出ます。 ▪ 100円硬貨以外は投入できません。 • どのような会話をして取り組んだか紹介します。
  3. お題1. ボタンを押すとコーラが出る public String buy() { return "コーラを購入しました"; } 「購入する」って

    なんですかね? お金を入れて商品を 手に入れたあと、 お釣りを もらうことかな 相手 私
  4. お題1. ボタンを押すとコーラが出る public String buy() { return "コーラを購入しました"; } このコード内の

    「購入する」は 今回のお題に比べて 色々なことを 含んでそう 私 ああ、確かに そうですねー。 それなら… 相手
  5. お題1. ボタンを押すとコーラが出る public String pushButton() { return "コーラ"; } 私

    ああ、確かに そうですねー。 それなら… 相手 このコード内の 「購入する」は 今回のお題に比べて 色々なことを 含んでそう
  6. お題2. お金を払う • 100円硬貨を 入れるとボタンが有効 どんなテストが ありますかね? 私 まず、100円硬貨を 投入するとボタンが

    有効になるかですかね 相手 100円硬貨を投入してからボタンを押すとコーラが出ます。 100円硬貨以外は投入できません。
  7. お題2. お金を払う • 100円硬貨を 入れるとボタンが有効 • 100円以外の硬貨を 入れるとボタンが無効 なるほど。 他にはどんなテスト

    がありますか? 私 えっと、100円以外の 硬貨を投入したら、 ボタンが有効に ならない場合ですかね 相手 100円硬貨を投入してからボタンを押すとコーラが出ます。 100円硬貨以外は投入できません。
  8. お題2. お金を払う • 100円硬貨を 入れるとボタンが有効 • 100円以外の硬貨を 入れるとボタンが無効 ◦ 10円硬貨

    なるほど。 『100円以外』とは具 体的にはどんな値が 考えられますか? 私 例えば、 10円硬貨ですかね。 相手 100円硬貨を投入してからボタンを押すとコーラが出ます。 100円硬貨以外は投入できません。
  9. お題2. お金を払う • 100円硬貨を 入れるとボタンが有効 • 100円以外の硬貨を 入れるとボタンが無効 ◦ 10円硬貨

    なるほどー。 ちなみに、これらは ボタンが有効になる 条件を考えてますね 私 100円硬貨を投入してからボタンを押すとコーラが出ます。 100円硬貨以外は投入できません。 そうですねー 相手
  10. お題2. お金を払う • ボタンが有効になる条件 ◦ 100円硬貨を 入れるとボタンが有効 ◦ 100円以外の硬貨を 入れるとボタンが無効

    ▪ 10円硬貨 なるほどー。 ちなみに、これらは ボタンが有効になる 条件を考えてますね 私 100円硬貨を投入してからボタンを押すとコーラが出ます。 100円硬貨以外は投入できません。 そうですねー 相手
  11. お題2. お金を払う • ボタンが有効になる条件 ◦ 100円硬貨を 入れるとボタンが有効 ◦ 100円以外の硬貨を 入れるとボタンが無効

    ▪ 10円硬貨 他にはどんなテスト をしたいですかね? 私 ボタンを押した結果の テストをしたいです 相手 100円硬貨を投入してからボタンを押すとコーラが出ます。 100円硬貨以外は投入できません。
  12. お題2. お金を払う • ボタンが有効になる条件 ◦ 100円硬貨を 入れるとボタンが有効 ◦ 100円以外の硬貨を 入れるとボタンが無効

    ▪ 10円硬貨 • ボタンを押した結果 他にはどんなテスト をしたいですかね? 私 ボタンを押した結果の テストをしたいです 相手 100円硬貨を投入してからボタンを押すとコーラが出ます。 100円硬貨以外は投入できません。
  13. お題2. お金を払う • ボタンが有効になる条件 ◦ 100円硬貨を 入れるとボタンが有効 ◦ 100円以外の硬貨を 入れるとボタンが無効

    ▪ 10円硬貨 • ボタンを押した結果 ◦ ボタンが有効ならボタンを 押すとコーラが出る ボタンを押した結果 のテストって、 具体的にはどんなこ とを考えてますか? 私 ボタンが有効な場合に 限り、ボタンを押すと コーラが出るとか… 相手 100円硬貨を投入してからボタンを押すとコーラが出ます。 100円硬貨以外は投入できません。
  14. お題2. お金を払う • ボタンが有効になる条件 ◦ 100円硬貨を 入れるとボタンが有効 ◦ 100円以外の硬貨を 入れるとボタンが無効

    ▪ 10円硬貨 • ボタンを押した結果 ◦ ボタンが有効ならボタンを 押すとコーラが出る ◦ ボタンが無効ならボタンを 押しても何も出ない 確かにそうですね。 それ以外だと どうですか? 私 ボタンが無効な場合、 ボタンを押すと 何も出ないことを テストしたいですね。 相手 100円硬貨を投入してからボタンを押すとコーラが出ます。 100円硬貨以外は投入できません。
  15. お題2. お金を払う • ボタンが有効になる条件 ◦ 100円硬貨を 入れるとボタンが有効 ◦ 100円以外の硬貨を 入れるとボタンが無効

    ▪ 10円硬貨 • ボタンを押した結果 ◦ ボタンが有効ならボタンを 押すとコーラが出る ◦ ボタンが無効ならボタンを 押しても何も出ない 100円硬貨を投入してからボタンを押すとコーラが出ます。 100円硬貨以外は投入できません。 会話を進めていくことで、 お題を分解した形で TODOを作成できた!
  16. お題2. お金を払う • ボタンが有効になる条件 ◦ 100円硬貨を 入れるとボタンが有効 ◦ 100円以外の硬貨を 入れるとボタンが無効

    ▪ 10円硬貨 • ボタンを押した結果 ◦ ボタンが有効ならボタンを 押すとコーラが出る ◦ ボタンが無効ならボタンを 押しても何も出ない 100円硬貨を投入してからボタンを押すとコーラが出ます。 100円硬貨以外は投入できません。 会話を進めていくことで、 お題を分解した形で TODOを作成できた! 必要なスキル • 抽象化/具体化能力 • チームで納得して 進める力
  17. 参考文献 • テストエンジニアがTDDブートキャンプに参加してきました #TDDBC ◦ https://nihonbuson.hatenadiary.jp/entry/2018/10/05/090000 • 見てわかるテスト駆動開発 / TDD

    Live and Workshop 2019 Spring ◦ https://speakerdeck.com/twada/tdd-live-and-workshop-2019-spring • 動作するきれいなコード / Clean code that works - SeleniumConf Tokyo 2019 ◦ https://speakerdeck.com/twada/clean-code-that-works-seleniumconf-tokyo-2019 • 「テスト駆動開発の『駆動』は誤訳なんじゃないか」と言われて改めて 考えた話 ◦ https://nihonbuson.hatenadiary.jp/entry/2020/07/07/183000 • Agile Testingのエッセンス #scrumosaka / Agile Testing Essence ◦ https://speakerdeck.com/nihonbuson/agile-testing-essence