×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Agileな開発でも活用できる テストを実施する前に 考えるべきテストの話 (2025年版) ブロッコリー (@nihonbuson)
Slide 2
Slide 2 text
自己紹介 ● 風間裕也(ブロッコリー) ● 株式会社10X 品質管理チーム ● 副業:B-Testing(個人事業主)として ○ 株式会社MonotaRO (テストコンサルタント) ○ グロース・アーキテクチャ&チームス株式会社(共同研究) 他数社でお手伝い ● 社外活動 ○ JaSST Review(ソフトウェアレビューシンポジウム)実行委員長 ○ WACATE(テストの合宿型ワークショップ形式勉強会)実行委員長 ○ SReEE(ソフトウェアレビューをエンジニアリングっぽく 捉える会)リーダー SNS上の アイコン Whisk で作成
Slide 3
Slide 3 text
翻訳書籍 今日のメイン
Slide 4
Slide 4 text
アジェンダ ● はじめに ● テストの目的 ● 何をテストすべきか ● 早い段階で何をテストすべきか議論する ● 受け入れ基準作成の事例 ● テストの勉強方法 ● まとめ
Slide 5
Slide 5 text
はじめに https://www.pexels.com/photo/young-game-match-kids-2923/
Slide 6
Slide 6 text
注意事項 ● 話さない内容 ○ テストコードの書き方 ○ TDDのやり方 ○ 自動テストの設計方法 ● 話す内容 ○ テストの目的とは何か ○ テストファーストで行うことの本当の良さ ○ 何をテストすれば良いのか
Slide 7
Slide 7 text
今日話す内容は… テスターや QA(Quality Assurance=品質保証)チーム はどういう動きをするか
Slide 8
Slide 8 text
今日話す内容は… テスターや QA(Quality Assurance=品質保証)チーム はどういう動きをするか ↓ 開発者はどんなことをすべきか
Slide 9
Slide 9 text
こんな経験していませんか? 開発はできたけど、 テストをどうやれば良いのか 分からないよ…。 リリースしてから トラブルがいっぱい 起きるなぁ…
Slide 10
Slide 10 text
こんな経験していませんか? 開発はできたけど、 テストをどうやれば良いのか 分からないよ…。 リリースしてから トラブルがいっぱい 起きるなぁ… 品質やテストのことを学べば 解決できるかもしれない!
Slide 11
Slide 11 text
テストの目的 https://jp.freeimages.com/photo/on-target-1504936
Slide 12
Slide 12 text
質問です テストの目的って何でしょう?
Slide 13
Slide 13 text
テストの目的とは何か? ● 欠陥の検出 ● 対象ソフトウェアの品質レベルが十分なことの確認 ● 意思決定のための情報の提示 ● 欠陥の作り込みの防止 実装前に行うこともある テストの7原則①テストは「欠陥がある」ことしか示せない ISTQBテスト技術者資格制度 Foundation Level シラバス 日本語版 Version 2011.J02より
Slide 14
Slide 14 text
なぜ実装前にテスト・レビューをするのか 仕様誤りの修正コスト 要求仕様 設計 実装 テスト リリース後 1倍 5倍 10倍 20倍 200倍! 出典: Alan M. Davis. ソフトウェア開発 201の鉄則. 日経BP社
Slide 15
Slide 15 text
なぜ実装前にテスト・レビューをするのか 仕様誤りの修正コスト 要求仕様 設計 実装 テスト リリース後 1倍 5倍 10倍 20倍 200倍! 出典: Alan M. Davis. ソフトウェア開発 201の鉄則. 日経BP社 修正コストを下げるには…(1) 素早くリリースしてフィードバックをもらい、 すぐに修正できる体制にする
Slide 16
Slide 16 text
なぜ実装前にテスト・レビューをするのか 仕様誤りの修正コスト 要求仕様 設計 実装 テスト リリース後 1倍 5倍 10倍 20倍 200倍! 出典: Alan M. Davis. ソフトウェア開発 201の鉄則. 日経BP社 修正コストを下げるには…(2) 早い段階で不具合を発見する
Slide 17
Slide 17 text
何をテストすべきか https://jp.freeimages.com/photo/target-1306247
Slide 18
Slide 18 text
● パスワードは4文字以上12文字以下の 英数字のみを許容する。 ● パスワードを3分以内に4回以上 間違って入力すると、 アカウントを5分間ロックする。 https://www.pexels.com/photo/ man-in-brown-shirt-writing-on-notebook-3202028/ 引用:概説 テスト分析 例題(チャット禁止!)
Slide 19
Slide 19 text
例題(チャット禁止!) あなたが考えた ● テスト内容 ● 気になった内容 ● 起こりそうなバグ を、手元のメモ帳に 書いてください。 ※何個でもOK! ※チャットには まだ書かないで! (4分) ● パスワードは4文字以上12文字以下の 英数字のみを許容する。 ● パスワードを3分以内に4回以上 間違って入力すると、 アカウントを5分間ロックする。 https://www.pexels.com/photo/ man-in-brown-shirt-writing-on-notebook-3202028/ 引用:概説 テスト分析
Slide 20
Slide 20 text
● テキストに記入 ○ 何個でも可 https://www.pexels.com/photo/ man-working-on-laptop-while-woman-takes-notes-3153199/ 例題
Slide 21
Slide 21 text
回答例 パスワードは4文字以上12文字以下の 英数字のみを許容する。 パスワードを3分以内に4回以上間違って入力すると、 アカウントを5分間 ロックする。 文字列長 文字種 誤入力期間 誤入力回数 ロック保持期間 状態遷移
Slide 22
Slide 22 text
回答例 パスワードは4文字以上12文字以下の 英数字のみを許容する。 パスワードを3分以内に4回以上間違って入力すると、 アカウントを5分間 ロックする。 文字列長 文字種 誤入力期間 誤入力回数 ロック保持期間 状態遷移 許容しないとどうなる? (ボタン制御orエラー画面) 5回目の入力はどうなる?
Slide 23
Slide 23 text
設計・開発時点
Slide 24
Slide 24 text
テスト時点
Slide 25
Slide 25 text
テスト時点 追加コストが発生! ● チケット起票のコスト ● 開発内容を思い出すコスト ● 修正するコスト ● もう一度テストするコスト ● 関連しそうな部分にデグレードが無いか確認するコスト ● 起票したチケットを完了にするコスト
Slide 26
Slide 26 text
回答例 パスワードは4文字以上12文字以下の 英数字のみを許容する。 パスワードを3分以内に4回以上間違って入力すると、 アカウントを5分間 ロックする。 文字列長 文字種 誤入力期間 誤入力回数 ロック保持期間 状態遷移 許容しないとどうなる? (ボタン制御orエラー画面) 5回目の入力はどうなる?
Slide 27
Slide 27 text
伝えたいこと ● 隣の人はあなたが気づかなかったことを 知っていませんでしたか? ○ お互いにテスト内容についても議論しましょう! ●
Slide 28
Slide 28 text
伝えたいこと ● 隣の人はあなたが気づかなかったことを 知っていませんでしたか? ○ お互いにテスト内容についても議論しましょう! ● この例では1文字もプログラムを書いていません! ○ 実装前にテストすることができる例です。 ○ もしもこの時点で指摘できれば 総コストは削減できるでしょう。 ■ 今回の場合、「許容する」をこの時点で 話し合うと、ほぼ不具合が発生しません。
Slide 29
Slide 29 text
テストの目的とは何か?(再掲) ● 欠陥の検出 ● 対象ソフトウェアの品質レベルが十分なことの確認 ● 意思決定のための情報の提示 ● 欠陥の作り込みの防止 実装前に行うこともある テストの7原則①テストは「欠陥がある」ことしか示せない ISTQBテスト技術者資格制度 Foundation Level シラバス 日本語版 Version 2011.J02より
Slide 30
Slide 30 text
なぜ実装前にテスト・レビューをするのか(再掲) 仕様誤りの修正コスト 要求仕様 設計 実装 テスト リリース後 1倍 5倍 10倍 20倍 200倍! 出典: Alan M. Davis. ソフトウェア開発 201の鉄則. 日経BP社 修正コストを下げるには…(2) 早い段階で不具合を発見する
Slide 31
Slide 31 text
伝えたいこと ● 隣の人はあなたが気づかなかったことを 知っていませんでしたか? ○ お互いにテスト内容についても議論しましょう! ● この例では1文字もプログラムを書いていません! ○ 実装前にテストすることができる例です。 ○ もしもこの時点で指摘できれば 総コストは削減できるでしょう。 ■ 今回の場合、「許容する」をこの時点で 話し合うと、ほぼ不具合が発生しません。
Slide 32
Slide 32 text
機能を作る≠顧客へ価値を提供する https://www.ipa.go.jp/files/000045962.pdf#page=13
Slide 33
Slide 33 text
使用性の例 次の画像を見て判断してください。 化粧室に行くには、 左折、直進、右折の どの方向へ行けば良い? (画像が出たらすぐに投票してね)
Slide 34
Slide 34 text
使用性の例 化粧室に行くには、 左折、直進、右折の どの方向へ行けば良い?
Slide 35
Slide 35 text
使用性の例 面白いデザインだ! 採用! 看板作成者 どこに何があるのか 分からない! 利用者
Slide 36
Slide 36 text
使用性の例 並び変えるだけでも 分かりやすくなる https://note.openvista.jp/2011/redesigning-shinjuku-building-sign
Slide 37
Slide 37 text
「何をテストすべきか」で伝えたいこと ● 実装前に考えられるテストは存在する ○ 例えば設計レビューの場で 「こういうテストを考えています」 という話も聞けると良いな ● 「機能を作る」と「顧客へ価値を提供する」は 同義ではない ○ 機能を作ることに没頭せず、 顧客が本当に欲しい物が何かを考えましょう
Slide 38
Slide 38 text
早い段階で 何をテストすべきか 議論する
Slide 39
Slide 39 text
テスト実行するまでの過程 テスト実行より前に行う内容 (「テスト設計」「テスト準備」などの呼び方あり) テスト 実行 よくあるテストプロセス 参考:http://aster.or.jp/business/contest/doc/2020_U-30_V1.0.0.pdf#page=65
Slide 40
Slide 40 text
テストプロセス(JSTQBより) テスト 分析 テスト 設計 テスト 実装 テスト 実行 何をテスト するか を決定する テストスクリプト やテスト手順を 作成する テストスイート を実行する どのように テストするか を決定する ISTQBテスト技術者資格制度 Foundation Level シラバス 日本語版 Version 2023V4.0.J02 を参考に作成
Slide 41
Slide 41 text
テストプロセス(JSTQBより) テスト 分析 テスト 設計 テスト 実装 テスト 実行 何をテスト するか を決定する テストスクリプト やテスト手順を 作成する テストスイート を実行する どのように テストするか を決定する ISTQBテスト技術者資格制度 Foundation Level シラバス 日本語版 Version 2023V4.0.J02 を参考に作成
Slide 42
Slide 42 text
テスト分析・設計を実装前に行う 引用:レビュー体系化の経過報告:レビュー体系とレビューアーキテクチャー | JaSST Review’23
Slide 43
Slide 43 text
テスト分析をSprint前に行う 出典:品質保証活動をアジャイルプロセスに溶け込ませるためのテスト活動の再構築と、それを 支えるアジャイル・エンジニアリングの活用 | ソフトウェア品質シンポジウム2024
Slide 44
Slide 44 text
受け入れ基準作成の事例
Slide 45
Slide 45 text
テスト分析をSprint前に行う 出典:品質保証活動をアジャイルプロセスに溶け込ませるためのテスト活動の再構築と、それを 支えるアジャイル・エンジニアリングの活用 | ソフトウェア品質シンポジウム2024
Slide 46
Slide 46 text
今回の対象となる機能 ● とあるtoCのプロダクト ○ 会員登録をすることでサービスを利用できる ● 今回新たに「管理者による強制退会機能」を 開発することになった ● ユーザー本人による退会機能は既存機能として存在
Slide 47
Slide 47 text
リファインメント中の会話 PO 今回新たに 管理者による強制退会機能 を作ってほしい
Slide 48
Slide 48 text
リファインメント中の会話 「ユーザー本人の退会機能」の ロジックを流用する形で、 コストをかけずに実装できるのかな と想像してたんだけどどうだろ? PO 開発者 確かに開発コストは低いかも
Slide 49
Slide 49 text
リファインメント中の会話 QA ちょっと、今回の機能の背景を 知りたいです! どうして強制退会機能を作ろうと 思ったんでしたっけ?
Slide 50
Slide 50 text
リファインメント中の会話 QA ちょっと、今回の機能の背景を 知りたいです! どうして強制退会機能を作ろうと 思ったんでしたっけ? PO 他人に迷惑をかけるユーザーが いるので、そのユーザーはサービスを 利用できないようにしたいからです
Slide 51
Slide 51 text
リファインメント中の会話 QA そしたら、強制退会になったユーザーは 再度の会員登録はできないように しないと意味がないですかね? ああ、確かにそうですね。 PO
Slide 52
Slide 52 text
受け入れ基準の作成 【タイトル】 管理者による強制退会機能 【受け入れ基準】 ● 管理者がユーザーのアカウントを指定して 退会させることができること ● 退会させられたユーザーは同じメールアドレスで 会員登録できないこと
Slide 53
Slide 53 text
リファインメント中の会話 QA じゃあ、開発が終わってテストする時は 強制退会させられたユーザーが 会員登録できないかもテストしますね! 了解です! 開発者
Slide 54
Slide 54 text
受け入れ基準作成時に関わることの効果 ● 実装担当者が設計・実装を行う時に、 「リファインメントでこんな会話をしたな…」と 思いながら実装する ○ その部分でのバグの作り込みを防ぐことができる ● バグが発生しなければ色々な工数が削減できる ○ 実装内容を思い出すコスト ○ 修正をするコスト ○ もう一度テストするコスト ○ 影響範囲のある箇所をテストするコスト ○ バグチケットの操作をするコスト など
Slide 55
Slide 55 text
システムを飛び出して要求を考える どうして強制 退会機能を作 ろうと? 受入基準 新たに管理者 による強制退 会機能を作っ て欲しい ユーザー本人 の退会機能の ロジックを流 用する PO 開発コスト は低くでき そう! 開発者 QA 迷惑をかける ユーザーはサー ビス利用できな いように 強制退会ユー ザーは会員再 登録できない ように! QA PO PO
Slide 56
Slide 56 text
顧客が本当に必要だった物に近づく一歩 画像出典:http://ntd.way-nifty.com/blog/2005/05/post_80fd.html
Slide 57
Slide 57 text
テストの勉強方法 (時間があれば) https://jp.freeimages.com/photo/reading-1420126
Slide 58
Slide 58 text
こんな質問が多い どうやってテストの勉強を すれば良いの? テストの勉強ができる オススメの書籍が知りたい!
Slide 59
Slide 59 text
「何をテストすべきか」でオススメの書籍 https://www.amazon.co.jp/dp/4297105063/ https://leanpub.com/bddbooks-discovery-jp オススメポイント ● テストケースの 作成前に 考えるべき 話が書かれている
Slide 60
Slide 60 text
「どうやってテストケースを作るのか」でオススメの書籍 https://www.amazon.co.jp/dp/4817197668 https://www.amazon.co.jp/dp/429711061X/ オススメポイント ● テスト技法の 解説が詳しい (左の書籍) ● テスト技法に 関する問題を 豊富に掲載 (右の書籍)
Slide 61
Slide 61 text
テスターと開発者の協働に関するオススメの書籍 https://leanpub.com/agiletesting-condensed-japanese-edition オススメポイント ● アジャイルテストについて 100ページ弱で 簡潔に語っている ● 全世界のQAやテスターの 知見が書かれている
Slide 62
Slide 62 text
最新のテスト情報収集ならJaSSTがオススメ! ● 日本最大級のテストのイベント ○ コロナ禍前のJaSST Tokyoは2日間で1600名が参 加 ● 年に10回、各地で開催 ● 2018年から新たにJaSST Reviewも開催 ○ 実行委員長は私 http://www.jasst.jp/
Slide 63
Slide 63 text
テストを実践して学ぶならWACATEがオススメ! ● 1泊2日のワークショップ形式の宿泊型イベント ● 2007年から、半年に1度開催 ● 次回は6/28,29開催 ● 参加費:¥30,000(35歳以下は¥27,000) ○ 宿泊費、4食の食事費込み ● 新卒1年目の開発・QAも多く参加 https://wacate.jp/
Slide 64
Slide 64 text
WACATEの会場はセミナー+ホテル
Slide 65
Slide 65 text
おわりに https://jp.freeimages.com/photo/bright-sky-1393231
Slide 66
Slide 66 text
まとめ ● テストの目的は欠陥の検出以外に 欠陥の未然防止がある ● テストには実装開始前に行う活動もある ● 早期のテスト活動でコストを削減できる
Slide 67
Slide 67 text
何かご相談があればB-Testingまで https://www.b-testing.net/
Slide 68
Slide 68 text
おしまい https://jp.freeimages.com/photo/track-finish-1442273