Slide 1

Slide 1 text

日本の開発者・経営者に 特に伝えるべき Agile Testingの エッセンス ブロッコリー (@nihonbuson)

Slide 2

Slide 2 text

自己紹介 ● 風間裕也(ブロッコリー) ● 所属 ○ 株式会社ビズリーチ ○ QA基盤推進室 QA Evangelist ● 社外活動 ○ JaSST Review実行委員長 ○ WACATE実行委員 ○ 書籍『Agile Testing Condensed』 翻訳

Slide 3

Slide 3 text

JanetとLisaによる Agile Testingの歴史

Slide 4

Slide 4 text

2008年…書籍『Agile Testing』を刊行 ● 日本語翻訳版『実践アジャイルテスト』も翌年に刊行 https://www.amazon.co.jp/dp/B001QL5N4K/ https://www.amazon.co.jp/dp/4798119970/

Slide 5

Slide 5 text

2011年…Agile Testing Daysにて講演 https://www.youtube.com/watch?v=FIJQPHNS5Jc

Slide 6

Slide 6 text

2014年…『More Agile Testing』を刊行 ● 日本語翻訳版はまだ刊行されていない https://www.amazon.co.jp/dp/B00O27V8DA

Slide 7

Slide 7 text

2019年…『Agile Testing Condensed』を刊行 ● 日本語翻訳版は2020年4月に電子版のみ刊行 https://leanpub.com/agiletesting-condensed https://leanpub.com/agiletesting-condensed-japanese-edition

Slide 8

Slide 8 text

各書籍のページ数 ● Agile Testing …576ページ ● More Agile Testing …544ページ ● Agile Testing Condensed …113ページ 最新作『Agile Testing Condensed』が圧倒的に ページ数が少ない!

Slide 9

Slide 9 text

なぜ最新作はページ数が少ない? ● 今までの本は分厚すぎて経営者が読んでくれなかった ● もっと手軽に読んでもらいたくてこの量になった Condensed=濃縮された Agile Testing Days 2019        での一コマ

Slide 10

Slide 10 text

なぜ私が翻訳したのか ● Agile Testing Days 2019 で著者の2人に直接会う ● 日本から持ってきた 『テスターちゃん』と 物々交換 ○ 日本語書籍版 ○ 英語同人誌版 ● 後日、川口さんが 翻訳の許可を貰っている ことを知り、翻訳作業開始 https://twitter.com/nihonbuson/status/1191722675162537984

Slide 11

Slide 11 text

今回の発表内容 ● 『Agile Testing Condensed』に載っている アジャイルテストに関する考え方を紹介する ● 実際に行なった事例や日本での考え方を紹介する

Slide 12

Slide 12 text

改めて アジャイルテストを 考える

Slide 13

Slide 13 text

アジャイルテストの定義 ● 始まりからデリバリーまで、そしてそれ以降も 継続的に実施される協調的なテストの実践により、 お客様への価値の頻繁な提供をサポートします。 ● テスト活動は、高速なフィードバックループを用いて 理解を検証しながら、 プロダクトの品質を築くことに重点を置いています。 ● プラクティスは、品質に対するチーム全体の責任とい う考え方を強化し、サポートします。 第1章 P5より

Slide 14

Slide 14 text

継続的テストモデル 第1章 P3より

Slide 15

Slide 15 text

アジャイルテストの10の原則 ● 継続的なフィードバックを提供します ● 顧客に価値を提供します ● 対面でのコミュニケーションを可能にします ● 勇気を持って ● シンプルさを保ちます ● 継続的な改善を実践します ● 変更に対応します ● 自己組織化します ● 人に焦点を当てます ● 楽しんで! 第1章 P4より

Slide 16

Slide 16 text

テストマニフェスト 第1章 P5より

Slide 17

Slide 17 text

テストのアプローチ ● 例を用いる ● 探索的テスト ● 品質特性のテスト ● DevOpsでのテスト

Slide 18

Slide 18 text

例を用いる

Slide 19

Slide 19 text

例を用いる ● 例を用いることで… ○ 各ストーリーの共有理解を構築するのに役立つ ○ 矛盾点に気付きやすくなる ○ ストーリーの受け入れ拒否が減る ○ 本番デプロイまでの時間短縮が期待できる ● 例を用いるプラクティス ○ 振る舞い駆動開発(BDD) ○ 受け入れ駆動開発(ATDD) ○ インパクトマッピング ○ 実例マッピング 第4章 P16より

Slide 20

Slide 20 text

実例マッピング ルールの理解を明確にする ● 赤い付箋(疑問点)だらけ ○ 学ぶ内容がまだ沢山ある ● 青い付箋(ルール)だらけ ○ ストーリーが大きく複雑 ○ ストーリーを分割すべき ● 1つのルールに対して、 多くの緑の付箋(例)がある ○ ルールが複雑すぎる ○ 複数の青い付箋(ルール)に分割すべき 第5章 P23より

Slide 21

Slide 21 text

実例マッピングの事例

Slide 22

Slide 22 text

事例を通じて伝えたいこと ● 実例マッピングというプラクティスを使うことが 大切なのではない! ● ストーリーとルールと例と疑問点を分けて会話し、 分かれた状態で記録するという思考が大切! ● 今回は、実例マッピングが作られていく過程となる 会話も併せて紹介する

Slide 23

Slide 23 text

今回の題材・登場人物 人数のグラフを 良い感じに表示する 開発者 QA

Slide 24

Slide 24 text

スケールのルール追加 人数のグラフを 良い感じに表示したい 「良い感じ」が分からない ので色々質問しますね 縦軸の目盛りは最大値を 基準に良い感じで スケールが変わる 最大値を 基準に スケール 変更 人数のグラフを 良い感じに表示する

Slide 25

Slide 25 text

1000人の場合 目盛りが4本出るので、 目盛りは250, 500, 750, 1000ですかね 例えば1000人の場合って どうなります? 人数のグラフを 良い感じに表示する

Slide 26

Slide 26 text

目盛りのルール追加 目盛りが4本出るので、 目盛りは250, 500, 750, 1000ですかね 例えば1000人の場合って どうなります? 人数のグラフを 良い感じに表示する 目盛りが 4本出る 1000人なら 250,500 750,1000 最大値を 基準に スケール 変更

Slide 27

Slide 27 text

800人の場合 その場合も目盛りは 同じです じゃあ800人だったら? 人数のグラフを 良い感じに表示する

Slide 28

Slide 28 text

例の追加 その場合も目盛りは 同じです じゃあ800人だったら? 人数のグラフを 良い感じに表示する 目盛りが 4本出る 1000人なら 250,500 750,1000 800人なら 250,500 750,1000 最大値を 基準に スケール 変更

Slide 29

Slide 29 text

1500人の場合 上の目盛りが1000だと グラフが突き抜ける ので、その場合は 400,800,1200,1600に 調整されますね じゃあ1500人でも 同じ? 人数のグラフを 良い感じに表示する

Slide 30

Slide 30 text

目盛りを超えないルールの追加 上の目盛りが1000だと グラフが突き抜ける ので、その場合は 400,800,1200,1600に 調整されますね じゃあ1500人でも 同じ? 目盛りが 4本出る 1000人なら 250,500 750,1000 800人なら 250,500 750,1000 人数のグラフを 良い感じに表示する 最大値を 基準に スケール 変更 一番上の 目盛りを 超えない 1500人なら 400,800 1200,1600

Slide 31

Slide 31 text

1050人の場合 そしたら1050人は? 1000人は超えるけど… 人数のグラフを 良い感じに表示する その場合はグラフが 外まではみ出ないので 目盛りは1000のまま ですね。

Slide 32

Slide 32 text

1050人の場合 そしたら1050人は? 1000人は超えるけど… 人数のグラフを 良い感じに表示する その場合はグラフが 外まではみ出ないので 目盛りは1000のまま ですね。 あくまでも、グラフが エリア外に出ないこと が重要なんですね。

Slide 33

Slide 33 text

1050人の場合 そしたら1050人は? 1000人は超えるけど… 目盛りが 4本出る 1000人なら 250,500 750,1000 800人なら 250,500 750,1000 人数のグラフを 良い感じに表示する 最大値を 基準に スケール 変更 1500人なら 400,800 1200,1600 1050人なら 250,500 750,1000 その場合はグラフが 外まではみ出ないので 目盛りは1000のまま ですね。 あくまでも、グラフが エリア外に出ないこと が重要なんですね。 一番上の 目盛りを 超えない

Slide 34

Slide 34 text

ルールの変更 そしたら1050人は? 1000人は超えるけど… 目盛りが 4本出る 1000人なら 250,500 750,1000 800人なら 250,500 750,1000 人数のグラフを 良い感じに表示する 最大値を 基準に スケール 変更 データが エリア外 に出ない 1500人なら 400,800 1200,1600 1050人なら 250,500 750,1000 その場合はグラフが 外まではみ出ないので 目盛りは1000のまま ですね。 あくまでも、グラフが エリア外に出ないこと が重要なんですね。

Slide 35

Slide 35 text

600人の場合 250,500,750,1000だと グラフが小さく表示さ れるので、200,400, 600,800ですかね。 今度は小さい値を 考えてみます。 600人はどうなります? 人数のグラフを 良い感じに表示する

Slide 36

Slide 36 text

150人の場合 そしたら40,80,120, 160ですかね。 ちょうど良いのは。 じゃあもっと小さい値 で150人とかだったら? 人数のグラフを 良い感じに表示する

Slide 37

Slide 37 text

例の追加 そしたら40,80,120, 160ですかね。 ちょうど良いのは。 じゃあもっと小さい値 で150人とかだったら? 人数のグラフを 良い感じに表示する 600人なら 200,400 600,800 150人なら 40,80 120,160 最大値を基準に スケール変更

Slide 38

Slide 38 text

ルールの発見 あー、 確かにそうですね なるほどー。 ここまでの話を聞くと 最大値は目盛りの 上から2番目よりは 大きいように調整 される感じですかね? 人数のグラフを 良い感じに表示する

Slide 39

Slide 39 text

ルールの発見 あー、 確かにそうですね なるほどー。 ここまでの話を聞くと 最大値は目盛りの 上から2番目よりは 大きいように調整 される感じですかね? 人数のグラフを 良い感じに表示する 600人なら 200,400 600,800 150人なら 40,80 120,160 最大値を基準に スケール変更

Slide 40

Slide 40 text

ルールの発見 あー、 確かにそうですね なるほどー。 ここまでの話を聞くと 最大値は目盛りの 上から2番目よりは 大きいように調整 される感じですかね? 人数のグラフを 良い感じに表示する 600人なら 200,400 600,800 150人なら 40,80 120,160 最大値が目盛りの 上から2番目よりは 大きくなるように調整

Slide 41

Slide 41 text

2人の場合 4分割で考えると0.5, 1, 1.5, 2ですかね。 さらに小さい値を 考えてみます。 2人だと どうなります? 人数のグラフを 良い感じに表示する

Slide 42

Slide 42 text

2人の場合 4分割で考えると0.5, 1, 1.5, 2ですかね。 さらに小さい値を 考えてみます。 2人だと どうなります? 人数のグラフを 良い感じに表示する 600人なら 200,400 600,800 150人なら 40,80 120,160 最大値が目盛りの 上から2番目よりは 大きくなるように調整 2人なら 0.5, 1 1.5, 2

Slide 43

Slide 43 text

疑問点の追加 あー、それは調整する 必要があるかも。 人数なのに小数点以下 の目盛りがあるのは 違和感がありますね 人数のグラフを 良い感じに表示する 600人なら 200,400 600,800 150人なら 40,80 120,160 最大値が目盛りの 上から2番目よりは 大きくなるように調整 小数点の 目盛りは 表示される? 2人なら 0.5, 1 1.5, 2

Slide 44

Slide 44 text

0人の場合 それは自分も どうするか明確に してないですね… あとは、0人だったら どうなります? 目盛りがどのように 調節されるのか 分からないのですが… 人数のグラフを 良い感じに表示する

Slide 45

Slide 45 text

ルールの追加 それは自分も どうするか明確に してないですね… あとは、0人だったら どうなります? 目盛りがどのように 調節されるのか 分からないのですが… 人数のグラフを 良い感じに表示する 600人なら 200,400 600,800 150人なら 40,80 120,160 最大値が目盛りの 上から2番目よりは 大きくなるように調整 小数点の 目盛りは 表示される? 最大値が0人 の時に目盛り はどうする? 2人なら 0.5, 1 1.5, 2

Slide 46

Slide 46 text

今回の実例マッピングのまとめ 人数のグラフを 良い感じに表示する 600人なら 200,400 600,800 150人なら 40,80 120,160 最大値が目盛りの 上から2番目よりは 大きくなるように調整 2人なら 0.5, 1 1.5, 2 小数点の 目盛りは 表示される? 最大値が0人 の時に目盛り はどうする? 目盛りが 4本出る 1000人なら 250,500 750,1000 800人なら 250,500 750,1000 データが エリア外 に出ない 1500人なら 400,800 1200,1600 1050人なら 250,500 750,1000

Slide 47

Slide 47 text

今回の実例マッピングのまとめ 人数のグラフを 良い感じに表示する 600人なら 200,400 600,800 150人なら 40,80 120,160 最大値が目盛りの 上から2番目よりは 大きくなるように調整 2人なら 0.5, 1 1.5, 2 小数点の 目盛りは 表示される? 最大値が0人 の時に目盛り はどうする? 目盛りが 4本出る 1000人なら 250,500 750,1000 800人なら 250,500 750,1000 データが エリア外 に出ない 1500人なら 400,800 1200,1600 1050人なら 250,500 750,1000 ここがSpikeになる場合も…

Slide 48

Slide 48 text

今回の実例マッピングのまとめ 人数のグラフを 良い感じに表示する 600人なら 200,400 600,800 150人なら 40,80 120,160 最大値が目盛りの 上から2番目よりは 大きくなるように調整 2人なら 0.5, 1 1.5, 2 小数点の 目盛りは 表示される? 最大値が0人 の時に目盛り はどうする? 目盛りが 4本出る 1000人なら 250,500 750,1000 800人なら 250,500 750,1000 データが エリア外 に出ない 1500人なら 400,800 1200,1600 1050人なら 250,500 750,1000 受け入れ条件に使える

Slide 49

Slide 49 text

今回の実例マッピングのまとめ 人数のグラフを 良い感じに表示する 600人なら 200,400 600,800 150人なら 40,80 120,160 最大値が目盛りの 上から2番目よりは 大きくなるように調整 2人なら 0.5, 1 1.5, 2 小数点の 目盛りは 表示される? 最大値が0人 の時に目盛り はどうする? 目盛りが 4本出る 1000人なら 250,500 750,1000 800人なら 250,500 750,1000 データが エリア外 に出ない 1500人なら 400,800 1200,1600 1050人なら 250,500 750,1000 テストケースに使える

Slide 50

Slide 50 text

今回の実例マッピングのまとめ ● ストーリーに対して、ルール・例・疑問点を 区別して表現することができた ● 実例マッピングの成果物をインプットとして、 Spike Taskの抽出、受け入れ条件の作成、 テストケースの作成に役立てることができる ● 開発者とQAが協力して、 開発の実装前からテストのことを考え、 チームが目指す製品について認識することができた

Slide 51

Slide 51 text

テストマニフェスト(再掲) 第1章 P5より

Slide 52

Slide 52 text

今回の実例マッピングで必要なスキル ● 具体例で考えられる ○ 実際に起こりうる例で考えられる ● 抽象化と具体化の行き来ができる ○ 具体例からルールを導き出す時に必要 ○ テストのスキルも必要 ■ 同値分割法 ■ ハイレベルテストケースと ローレベルテストケース

Slide 53

Slide 53 text

探索的テスト

Slide 54

Slide 54 text

探索的テスト 探索的テストとは 「システムについて 学ぶためのテスト設計 と実行を同時に行い、 最後の実験から得た 洞察を次に伝える」 探索的テストはじめの一歩 #wacateより Explore It!より

Slide 55

Slide 55 text

探索的テスト 以下のテストは探索的テストではない ● 計画や文書なしで行うテスト(アドホックテスト) ● ランダムな入力やランダムなアクションを入力して 確認するテスト(モンキーテスト) 「ランダムにさまようこと」と 「思慮深く探索すること」は違う 第6章 P26より

Slide 56

Slide 56 text

アジャイルテストで よく使われる図を 再考する

Slide 57

Slide 57 text

アジャイルテストでよく使われる図 ● アジャイルテストの四象限 ● テスト自動化戦略の視覚化

Slide 58

Slide 58 text

アジャイルテストの四象限 第9章 P44より

Slide 59

Slide 59 text

アジャイルテストの四象限 第9章 P42より

Slide 60

Slide 60 text

アジャイルテストの四象限 ● この図のポイント ○ 各象限に入っているものが重要ではない ○ どの象限が何を示しているのか理解することが重要 ■ Q1…開発を導く技術面のテスト ■ Q2…開発を導くビジネス面のテスト ■ Q3…プロダクトを批評するビジネス面のテスト ■ Q4…プロダクトを批評する技術面のテスト ● 状況に合わせてモデルを当てはめる 第9章 P43より

Slide 61

Slide 61 text

テスト自動化戦略の視覚化 ● 視覚化モデルの例 ○ テスト自動化ピラミッド ○ テスト自動化の氷山

Slide 62

Slide 62 text

テスト自動化ピラミッド 第10章 P43より

Slide 63

Slide 63 text

テスト自動化の氷山 第10章 P51より

Slide 64

Slide 64 text

今日のアジャイルテスト

Slide 65

Slide 65 text

今日のアジャイルテスト ● テスターの新たな役割 ● 成功の材料

Slide 66

Slide 66 text

テスターの新たな役割

Slide 67

Slide 67 text

テスターの新たな役割 ● 世界中のテスターが新たな役割を提案している ○ 世界ではQAエンジニアやテストエンジニアと言わず 「テスター」と呼ぶことが多い ● 世界中のテスターの考えを次ページ以降に共有する ● 先ほどの実例マッピングで当てはめたものを 吹き出しで示す

Slide 68

Slide 68 text

世界中のテスターが考えていること ● テスターはチームにとって品質の接着剤である ● アジャイルテスターのプロフェッショナルな旅 ○ ランダムなテストから、 モデル、テクニック、専門的なスキルや知識を 使った思慮深いテストの設計に移行する 同値分割を活用 第11章 P54-56より

Slide 69

Slide 69 text

世界中のテスターが考えていること ● テスターとして進化する魅力的な道 ○ 品質のゲートキーパーから、 下記のコアスキルを持つ人材へ進化する ■ 新しい実験を学び、試す ■ 優れた質問者になる ■ モデリングスキルを持つ ■ テスト容易性などを定義するための知識を持つ ■ 共有と共同の姿勢を持つ 質問しまくり 第11章 P57より

Slide 70

Slide 70 text

世界中のテスターが考えていること ● できる限りのことをする ● 会話から始める ● 世界にはこれ以上のチェッカーは必要ない どんなプロダクト? から考える 第11章 P58-60より

Slide 71

Slide 71 text

JanetとLisaが考えていること ● テスターがチームのテストコンサルタントとして 行動する必要性が高まっている ○ 協調スキル ○ ファシリテーションスキル ○ 教育スキル ○ コーチングスキル ○ コミュニケーションスキル 開発者が テストを学ぶ 第11章 P61-62より

Slide 72

Slide 72 text

テストも含めて アジャイルを 成功させるためには

Slide 73

Slide 73 text

成功の材料 ● チーム全体のアプローチを意識する ● アジャイルテストの考え方を持つ ● 回帰テストを自動化する ● フィードバックを提供および取得する ● コアプラクティスの基盤を構築する ● 顧客との協調をする ● 全体像を見る 第12章より

Slide 74

Slide 74 text

信頼関係構築のプラクティス ● 実例を使う ● 探索的テストをする ● フィーチャーをテストする ● 継続的に学習する ● 状況に敏感になる ● 常に現実的でいる 第12章より

Slide 75

Slide 75 text

成功への道 ● テストの問題をデリバリーチーム全体が対処する問題 に変えることは、プロダクトに品質を組み込み、 持続可能な成功を達成する方法を学ぶために不可欠。 ● 品質の望ましいレベルを達成するには何年もかかる ○ 忍耐が必要 ○ 頻繁なチームのふりかえりはとても重要 ■ 品質関連の最大の問題を特定するため ■ 小さな実験を計画するため 第12章より

Slide 76

Slide 76 text

まとめ

Slide 77

Slide 77 text

まとめ ● アジャイルテストのことを開発者や経営者にも 気軽に知ってもらうために 『Agile Testing Condensed』は刊行された ● テストマニフェストなどで示されているように チーム全体でプロダクトの品質に責任を持つ ● 例を用いることで、 より協力して開発を進めることができる ● モデル化されたものも状況に応じてカスタマイズする ● 思慮深いテスト設計も必要

Slide 78

Slide 78 text

おしまい