$30 off During Our Annual Pro Sale. View Details »

我々はなぜテストをするのか?

 我々はなぜテストをするのか?

Scrum Fest Niigata 2022 発表資料です。
https://confengine.com/conferences/scrum-fest-niigata-2022/proposal/16449

Dan North: “BDD Is Not About Testing"
https://www.youtube.com/watch?v=6nSwRSbc27g

Yasunobu Kawaguchi
PRO

May 21, 2022
Tweet

More Decks by Yasunobu Kawaguchi

Other Decks in Technology

Transcript

  1. アジャイルリーダー視点で考える、 我々はなぜ、テストをするのか?

  2. 川口 恭伸 かわぐち やすのぶ Twitter: @kawaguti アギレルゴコンサルティング株式会社 シニアアジャイルコーチ 株式会社ホロラボ シニアアジャイルコーチ

    一般社団法人スクラムギャザリング東京実行委員会 代表理事 一般社団法人 DevOpsDays Tokyo 代表理事
  3. Dan North: “BDD Is Not About Testing"

  4. Dan North: “BDDはテスティングではない"

  5. 私がテスト駆動開発ではなく ビヘイビア駆動開発について 話し始めた理由の一つは、 テスティングが本当の目的ではない という考えがあったからです。

  6. BDDについて話し始めたのは 2003年のことです。 2006年には記事を書きました。

  7. よく耳にするのは、 テスターが アジャイルに 取り残されている ように感じる ということです。

  8. プロジェクトマネージャーは2日間の宿泊クラスに参加して、 スクラムマスターになって戻ってくることができますよね。 そうすべきでないことはわかっていますが、彼らはそうします。 また、ビジネスアナリストは別の2日間のクラスに参加し、 プロダクトオーナーとして戻ってきて、 全員が認定されるという素晴らしいものです。 開発者はクリーンコードやTDD、ブートキャンプなどに参加し、 テスト担当者はテスト担当者の声を聞くことになりますね。

  9. BDDとは何かというと、 自動化されたシナリオのことで、 それをBDDと呼んでいます。 そして、何百、いや何千もの BDDがありました。 そして、そのBDDが 隅っこの山で腐っているのは、 ちょっと残念でした。

  10. オートメーション・テスター とは何なのか、 私にはよくわかりませんが、 文字通り、 自動化されているかどうかを テストする人のことです。 (中略) この役割が何なのか わかりません。

  11. 1.プログラマーはテストを理解していない 2. アジャイルはテストを理解していない 3.テスターはBDDが好きだ 4.BDDはテスティングではない

  12. さて、「BDDはテスティングではない」 という建設的な話をするためには、 テストの話をする必要があります。 さて、なぜテストがあるのでしょうか?

  13. 私は人々に、なぜテストが必要なのかと 尋ねると、さまざまな理由が返ってきます。 しかし、一番多い理由は 「やらなければならないから」です。 SDLCやプロセスドキュメントなどに 「テストを行う」と書かれていると、 「よし、テストを行うぞ」となりますよね。

  14. 私はこれを「4本足の論理」と呼んでいます。 すべての牛には4本の脚がある、 だから4本脚の動物はすべて牛が好きだ。 これは間違った論理であり、 論理的誤謬を含んでいます。 プロジェクトマネージャーは テストをリスクの原因と考えています。

  15. 誰が気にするの? 投資して卓越せよ 差別化 ビジネスに決定的 パリティ パートナーに アウトソース

  16. None
  17. 私が見てきた組織では、3年ごとに 「何でも買います」「何でも外注します」と 振り子のように行動し、 その結果を見ていました。

  18. 私が研修で「テストの目的は何か」と聞くと、 25人の受講者から30通りの答えが 返ってくるんですよ。

  19. 数年前に、Stack Overflowで 「ユニットテストはどれくらい深く やっていますか」という素晴らしい 質問がありました。

  20. そしてケントが返信したのですが、 ケンは何と言ったと思いますか? 「私はテストではなく、 動くコードに対して報酬を得る」 と言っていました。

  21. 私はできる限り 最小限の作業、 最小限のテスト しかしません。

  22. 一部の人たちはメルトダウンしてしまったのです。 聖なるケント・ベックの回答の下にあった コメントですね。 「でも、TDDではそんなことは言えませんよね」 みたいな。 マスターができるだけ少ないテストを書こうと するので、人々は明らかに存在の危機に陥っています。 興味深いのは、 彼が「一定の信頼度に達するためには」と 言っていることです。

  23. テストの目的とは、 証拠によって ステークホルダーの 信頼を高めること だと思います。

  24. 私がソフトウェア製品を作っているとしたら、 私のステークホルダーは誰でしょう? 私のユーザー、ステークホルダーです。うん。 他には? プログラマー自身がステークホルダーです。 未来のあなたは、 現在のあなたが行っている作業の ステークホルダーです。

  25. 私の好きなUXの専門家の一人である Mark McNeillという人は、 ステークホルダーは 「あなたが触れる人の人生」 と言っています。 ステークホルダーとは、あなたが仕事をすることで 人生に触れる人たちのことです。 people whose

    lives you touch
  26. では、自信を高めるとは? どれくらい増加するのか、ということですね。 そう、増やすには何が必要なのか? そして、彼らは何に対して 自信を持つ必要があるのでしょうか? もし私がセキュリティ担当者なら、 何が私に自信を与えてくれますか?

  27. 信じてください、私が書いたんです。最高ですよ。 正直なところ、それは私の評判次第で うまくいくかもしれません。 Stack Overflowで100万以上の質問に答えていれば、 人々は私を信じてくれるかもしれませんが、 どうでしょう。 でも、実際には根拠があってわかるわけですよね。 他の種類の自信はいらないんです。 証拠が欲しいのです。

  28. よいテスターは 3つの超能力を 持っている と思います。

  29. None
  30. まず第一に、他人の頭の中に入り込むことが できなければなりません。 誰かが自信を持っていることを考えるには、 その人と同じように考えることができなければ、 その人の靴の中を歩くことができなければなりません。 なるほど、つまり私に必要なのはまず共感ですね。 その人がどんな人なのかを理解する必要があります。

  31. 次に必要なのは、証拠を得ることです。 その証拠を得るためには、データベースの中を スクロールする必要があります。 画面の隅にアイトラッキングカメラを設置して、 あなたや私がどうやって 証拠を手に入れるのかを 確認することもできるでしょう。

  32. そして3つ目に必要なことは、 現実的であることです。 私には無限の時間も、無限の資源も、 無限のお金もありません。 つまり、安心してこの製品を出荷するためには、 当社のポートフォリオや利害関係者の 世界全体で十分なレベルの信頼性 を得る必要があります。

  33. まず第一に、 プログラマーはテストを 理解していない ということです。

  34. そうですね。 私のデータによると、私のクラスでは 誰もそのような答えを出しませんでした。 彼らはテストが他人のためのもので あることを理解していません。 自信の問題だということも理解できない。 根拠を示すまで、それが証拠であることを 理解しないのです。

  35. これは2003年に書いた ものです。 この記事は10代の頃のも のですね。

  36. アジャイルは主にプログ ラマーが作ったものです。 Snowbirdで出会った17 人の中年の白人男性、そ して2001年には全員が プログラマーでした。

  37. 彼らがテストに関心がなかったわけではあり ません。つまり、テスターがテストについて 考えるような方法でテストについて考えてい なかったということです。つまり、暗黙の了 解ということですね。

  38. そして10年後、あるいは15年後くらいには、 明確なテストが行われるようになりました。 ジョージ・ディンウィディ、 ジャネット・グレゴリー、 リサ・クリスピンといった人たちが、 スリー・アミーゴズのような アイデアについて話しています。 そこではテスターを明確に参加させていますが、 彼らはとても大きな空間の中の小さな小さな声です。

  39. None
  40. ビヘイビア駆動開発は2003年に始まったのですが、 言ってみれば、TDDで開発者をコーチするための方法 として始まりました。 私はこれをメソッドやモノとして デザインしたわけではありません。 ただのコーチングツールだったのです。

  41. 私たちはプログラマーです。 だから、私たちはテストを書きません。 そのためにテスターがいるんです。 廊下の先にいる彼らの給料は安いんですよ。

  42. BDDは、ケントとウォードが TDDでやっていることを正確に説明しよう としたものです。 テストという言葉を使わずに、 exampleやspecification、behaviorなどの 言葉を使い始めました。 他には何も変わりませんでした。

  43. 今、私が見つけたものは、私にとっては 常にソフトウェアを書くための方法でしたが、 それだけではありません。 チームのメンバーが協力して、 人々のために役立つソフトウェアを 作るための方法なのです。

  44. 役に立つものを作っていなければ、 どれだけ優れたものを作っていても 意味がないということですね。 では、テスト担当者にとって 魅力的なのはなぜでしょう? まず第一に、複数のステークホルダーを 明示的に認めていることです。

  45. スクラムにはプロダクトオーナーがいます。 初期のアジャイル手法の多くには、 製品について何でも教えてくれる 全知全能の存在というものがありますが、 私はそうは思いません。(中略) 私はいつも、少なくとも15人以上の 利害関係者がいて、それぞれが異なることを 望んでいるようなプロジェクトで仕事を してきました。

  46. 私たちは、最初から明示的に受け入れ基準を 議論しています。 「7つの習慣」のように、 まずは「終わりを念頭に置いて始める」 ことから始めます。

  47. すべてはステークホルダーの視点から アプリケーションの動作を記述していますが、 テスターたちは、 「これはすごい。それが私たちの仕事です。」 と言います。 そして実際、私たちは証拠によって ステークホルダーの信頼を高めていること がわかります。

  48. BDDが言いたいのは、テストは単なる 管理上の制約ではなく、 差別化要因であるということです。

  49. チェッキングとは、 フィードバックを得るために 自動化された作業を行うことです。 テスティングは人間が行うもので、 洞察力と知識と方法を必要とするものです。

  50. 私が考える良い自動テストとは、 以下のようなものです。 まず必要なのは、名前を明らかにする意図です。 つまり、ここで検証しているのが何なのか を知る必要があります。 このテストが実行されたとき、 あるいはこのテストがパスしたとき、 私はどんな動作について より確信を持つことができるでしょうか?

  51. 失敗したとき、私はそれがどのように 失敗したのか知りたい。 なぜ失敗したのかを知りたい。 理想を言えば、それに対して 何をすべきかを知りたいのです。

  52. 良いシナリオは必ずしも 良いテストではありません。 つまり、BDDはテストのための ものではないのです。 しかし、しかし、 テストはBDDを補完するものです。

  53. None
  54. BDDは、価値あるものを強調するための 素晴らしい思考フレームワークです。 まず、ステークホルダーを強調し、 次に、彼らに自信を持たせる方法を 強調することができます。

  55. 品質管理が 日本の製造業で 重視されてきた のはなぜか?

  56. 戦後、日本製品の 品質を高めなければ 国際競争力が 得られないという 危機意識から 生まれた

  57. そして、品質管理の 目標も 産業の発展に あわせて 変化していく。

  58. 狩野モデル ないと話にならない。 あればあるほどよい。 なくても困らないけど、 好き。持っていたい。 当たり前品質 一元的品質 魅力的品質 業界の競争の基準が変わる

  59. 例えば自動車の歴史 走る。曲がる。 より速く。より遠く。 エアバッグやABSで 安全。安心。 当たり前品質 一元的品質 魅力的品質 30年の変遷

  60. https://hbr.org/1986/01/the-new- new-product-development-game 新製品開発におけるゲームのルールは 変わりつつあります。多くの企業が、 今日の競争市場で優位に立つためには、 高品質、低コスト、差別化という 基本的な要素だけでは不十分であることに 気づいています。また、スピードと 柔軟性も必要です。 (野中、竹内

    1986年) Scrumの源流も語る。
  61. また、物理的な世界に存在すると考 えられている産業のバリューチェー ンの多くをソフトウェアが担ってい ます。今日の自動車では、ソフト ウェアがエンジンを動かし、安全機 能を制御し、乗客を楽しませ、ドラ イバーを目的地に案内し、各車をモ バイル、衛星、GPSネットワークに 接続しています。車好きの人が自分 で車を修理できた時代ははるか昔の

    ことですが、それは主にソフトウェ アの内容が充実しているからです。 現代 - ソフトウェアが 世界を食べている https://www.wsj.com/articles/SB10001424053111903480904576512250915629460 2011年マーク・アンドリーセン