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
テスト活動の 納得感を持って テストケース数を 激減させた話 ブロッコリー
Slide 2
Slide 2 text
自己紹介 ● 風間裕也(ブロッコリー) ● 2018年10月入社 ● QA基盤推進室 QA Evangelist ● 社外活動 ○ JaSST Review実行委員長 ○ WACATE実行委員 ○ 書籍『Agile Testing Condensed』 翻訳 書籍『Agile Testing Condensed』表紙
Slide 3
Slide 3 text
はじめに
Slide 4
Slide 4 text
4 Visionalとは 新規事業も既存事業も、 それぞれの成長フェーズに合わせて スピード感をもって柔軟に推進できる体制となりました。 株式会社ビズリーチが、 グループ経営体制へ移行し誕生しました。
Slide 5
Slide 5 text
5 組織体制・事業一覧
Slide 6
Slide 6 text
どの言葉に興味を持っている? テスト活動の納得感を持って テストケース数を激減させた話
Slide 7
Slide 7 text
どの言葉に興味を持っている? テスト活動の納得感を持って テストケース数を激減させた話 ここ?
Slide 8
Slide 8 text
スライドを読む際の注意点 ● テストケース数の激減は結果でしかなく、 テストケース数の削減数などは目標としていません ● 本スライドは、「こういうことをすればうまくいく」 というプラクティスや理想の押し付けではありません ● 現場でその時点での問題点を元に改善をした話です
Slide 9
Slide 9 text
本日の内容 ● 社内のプロダクトに半年間関わった中で行なった 以下の4つの改善活動を紹介します ○ テスト技術面の改善 ■ テスト設計フェーズの強化 ■ テスト設計レビューの強化 ○ テストマネジメント面の改善 ■ 進捗状況の可視化 ■ 負担の分散
Slide 10
Slide 10 text
当時の状況
Slide 11
Slide 11 text
開発とQAのスケジュール状況 Sprint 1 開発 QA Sprint 1 Sprint 2 Sprint 2 Sprint 3 Sprint 4 Sprint 3 時間 ● QAは1スプリントずれてテストを実施
Slide 12
Slide 12 text
開発とQAのスケジュール状況 Sprint 1 開発 QA Sprint 1 Sprint 2 Sprint 2 Sprint 3 Sprint 4 Sprint 3 時間 ● QAは1スプリントずれてテストを実施 ● これしか決まってない!
Slide 13
Slide 13 text
以前のQAメンバーの意見 人数が足りない みんなが何やってるのかを 把握できない 実施、設計に専念できない 開発とQAが分断されてて やりづらい
Slide 14
Slide 14 text
課題の深掘り
Slide 15
Slide 15 text
実施に時間がかかる 人数が足りない 実施、設計に専念できない ● テスト実施に時間がかかっていた ○ テスト設計に1割、テスト実施に9割(感覚値) Sprint 1 開発 QA Sprint 2 Sprint 3 Sprint 4 時間 実施 実施 設計 設計 実施 設計
Slide 16
Slide 16 text
実施に時間がかかる 人数が足りない 実施、設計に専念できない ● 出来上がった画面を元にテスト設計していた。 ○ テスト設計は実装完了しないと着手できない状態。 Sprint 1 開発 QA Sprint 2 Sprint 3 Sprint 4 時間 実施 実施 設計 設計 実施 設計
Slide 17
Slide 17 text
設計内容 どんなパターンなのか パッと見て分からない テストケースを 減らす働きが発生しない テスト設計とテスト実装が 混ざった状態
Slide 18
Slide 18 text
開発とQAでタイミングが異なる ● QAが質問したりフィードバックをする時は 開発者は次のSprintの作業をしていた Sprint 1 開発 QA Sprint 2 Sprint 3 Sprint 4 時間 実施 実施 設計 設計 実施 設計 開発とQAが分断されてて やりづらい
Slide 19
Slide 19 text
各自の設計および実施作業が完全に分断 ● 設計および実施は各自で行っていた(共有はほぼ無し) ● 実施完了の見込みを把握するのが難しい状況だった みんなが何やってるのかを 把握できない チケット A(担当X) B(担当Y) C(担当Z) 観 点 出 し 設 計 設 計 設 計 実施 実施 実施
Slide 20
Slide 20 text
テスト技術面の改善① テスト設計フェーズ の強化
Slide 21
Slide 21 text
設計を手厚く Sprint 1 開発 QA Sprint 2 Sprint 3 Sprint 4 時間 実施 実施 設計 設計 実施 設計
Slide 22
Slide 22 text
設計を手厚く Sprint 1 開発 QA Sprint 2 Sprint 3 Sprint 4 時間 実施 実施 設計 設計 実施 設計 Sprint 1 開発 QA Sprint 2 Sprint 3 Sprint 4 時間 実施 設計 設計 実施 設計 実施 設計
Slide 23
Slide 23 text
設計を手厚く Sprint 1 開発 QA Sprint 2 Sprint 3 Sprint 4 時間 実施 実施 設計 設計 実施 設計 Sprint 1 開発 QA Sprint 2 Sprint 3 Sprint 4 時間 実施 設計 設計 実施 設計 実施 設計 ● 設計:実施=1:9 から 設計:実施=5:5 へ ● テスト設計は開発のSprint完了前から着手 ○ 開発の成果物が完成しなくても設計はできるはず!
Slide 24
Slide 24 text
フィードバックも素早く Sprint 1 開発 QA Sprint 2 Sprint 3 Sprint 4 時間 実施 実施 設計 設計 実施 設計 Sprint 1 開発 QA Sprint 2 Sprint 3 Sprint 4 時間 実施 設計 設計 実施 設計 実施 設計 ● 開発への質問も、当該Sprint中にできるようになった
Slide 25
Slide 25 text
テスト技術面の改善② テスト設計レビュー の強化
Slide 26
Slide 26 text
QAチーム内のレビューも手厚く チケット A(担当X) B(担当Y) C(担当Z) 観 点 出 し 設 計 設 計 設 計 実施 実施 実施 ● 観点出しはチーム全員でやっていたが、 テスト設計以降は個々人の作業になっていた ○ テスト設計のレビューもほとんどできていない状態
Slide 27
Slide 27 text
QAチーム内のレビューも手厚く チケット A(担当X) B(担当Y) C(担当Z) 観 点 出 し 設計 実施 実施 実施 設計 設計 設計 レビ ュー ● テスト設計したものに対してレビューを行う ○ QAメンバー全員が参加 ● 作成完了したものをレビューするのではなく小出しに行う ○ 設計の方針ぐらいの粒度もレビュー ● テスト設計とテスト実装で考え方を分けた 実装 実装 実装
Slide 28
Slide 28 text
テストプロセス(JSTQBより) テスト 分析 テスト 設計 テスト 実装 テスト 実行 何をテスト するか それをどう テストするか テストの実行に 必要なものすべて を準備したか テストスイートを 実行する 参考:ISTQBテスト技術者資格制度 Foundation Level シラバス 日本語版 Version 2018V3.1.J02
Slide 29
Slide 29 text
テストプロセス テスト 観点出し テスト設計 テスト 実行 テスト 分析 テスト 設計 テスト 実装 テスト 実行 具体的なテスト活動(改善前)
Slide 30
Slide 30 text
テストプロセス テスト 観点出し テスト パターン 作成 テスト 手順作成 テスト 実行 テスト 分析 テスト 設計 テスト 実装 テスト 実行 具体的なテスト活動(改善後)
Slide 31
Slide 31 text
設計物の変化(設計を手厚くする前) どんなパターンなのか パッと見て分からない テストケースを 減らす働きが発生しない テスト設計とテスト実装が 混ざった状態
Slide 32
Slide 32 text
設計物の変化(設計を手厚くした後) パターンの列挙を重視 (実装ではなく設計)
Slide 33
Slide 33 text
設計物の変化(設計を手厚くした後) パターンの列挙を重視 (実装ではなく設計) ● パターンを洗い出した上で、優先度が低いパターンを 考えるようになった ○ チケット、観点、画面単位で実施しないものを 選んでいた状態だったのが、 組み合わせパターン内で 実施しないものを選ぶように ● テストケースが増えていくレビューから、 テストケースを減らしていくレビューへ
Slide 34
Slide 34 text
テストプロセス内でのレビュー指摘内容 テスト 観点出し テスト パターン 作成 テスト 手順作成 テスト 実行 テスト 分析 テスト 設計 テスト 実装 テスト 実行 具体的なテスト活動(改善後) 足りない観点を追加 パターンに対する 整理・削除
Slide 35
Slide 35 text
余談 テストの振り子
Slide 36
Slide 36 text
テストの振り子 ● 「このテストを やれば良い」 という、絶対的な 方法はない ● 行うべきテスト数 は振り子のように 動く A Practical Guide to Testing in DevOpsより
Slide 37
Slide 37 text
テストの振り子 テスト やりすぎ! テスト しなさすぎ! A Practical Guide to Testing in DevOpsより
Slide 38
Slide 38 text
テストの振り子 テストやりすぎ! テストしなさすぎ! バグの報告 多く報告しますが、 ほとんどは修正されない バグがあまり見つからない 本番環境でのバグ ゼロ 多い レビュー時の行動 テスト範囲を頻繁に削除 テスト範囲を頻繁に追加 テストにかける時間 「時間かけすぎでは?」 「十分やったの?」 仲間はテストを 自分では行わない あなたが不必要だと思う テストまで行う マネージャーから テストが多すぎると言われる テストの詳細を聞かれる A Practical Guide to Testing in DevOpsより
Slide 39
Slide 39 text
テストの振り子 テストやりすぎ! テストしなさすぎ! バグの報告 多く報告しますが、 ほとんどは修正されない バグがあまり見つからない 本番環境でのバグ ゼロ 多い レビュー時の行動 テスト範囲を頻繁に削除 テスト範囲を頻繁に追加 テストにかける時間 「時間かけすぎでは?」 「十分やったの?」 仲間はテストを 自分では行わない あなたが不必要だと思う テストまで行う マネージャーから テストが多すぎると言われる テストの詳細を聞かれる A Practical Guide to Testing in DevOpsより
Slide 40
Slide 40 text
テストの振り子 テスト やりすぎ! テスト しなさすぎ! A Practical Guide to Testing in DevOpsより 改善前は左の状態だった
Slide 41
Slide 41 text
テストマネジメント面の 改善① 状況の可視化
Slide 42
Slide 42 text
テスト実施がいつ終わるのか分からない チケット A(担当X) B(担当Y) C(担当Z) 観 点 出 し 設計 実施 実施 実施 設計 設計 設計 レビ ュー 実装 実装 実装 ● テスト設計はレビューの中で進捗を把握 ● テスト実施は個々人に任せているので いつ終わるか分からない ● テスト実施期間最終日に「間に合わない」とアラートが いつ 終了?
Slide 43
Slide 43 text
実施進捗表の作成 実施完了の数から 進捗率を算出
Slide 44
Slide 44 text
実施進捗表の作成 毎日のケース数を記録 →記録する手間がかかる
Slide 45
Slide 45 text
実施進捗表の作成 毎日のケース数を記録 →記録する手間がかかる →記入を自動化
Slide 46
Slide 46 text
実施進捗表の可視化による新たな課題 進捗が100%にならない →開発者の修正が終わってない
Slide 47
Slide 47 text
テスト実施も2段階に! 消化と改修確認で フェーズを分けた
Slide 48
Slide 48 text
テスト実施も2段階に! 消化実績:OK/NG関わらずテスト実施したもの
Slide 49
Slide 49 text
テスト実施も2段階に! 完了実績:開発が修正してテストOKになったり 次回リリースと判断にしたもの
Slide 50
Slide 50 text
テスト実施も2段階に! Sprint 1 開発 QA Sprint 2 Sprint 3 Sprint 4 時間 実施 設計 設計 実施 設計 実施 設計
Slide 51
Slide 51 text
テスト実施も2段階に! Sprint 1 開発 QA Sprint 2 Sprint 3 Sprint 4 時間 消化 設計 設計 消化 設計 消化 設計 確認 確認 確認 ● バグ改修の確認は、開発者による改修まで空き時間がある →次のSprintのテスト設計を行う
Slide 52
Slide 52 text
テストマネジメント面の 改善② 負担の分散
Slide 53
Slide 53 text
担当者によって負担が異なる チケット A(担当X) B(担当Y) C(担当Z) 観 点 出 し 設計 消化 消化 消化 設計 設計 設計 レビ ュー 実装 実装 実装 ● 担当1人あたりのチケット数を同じにしていた ○ チケットによって重さが異なっているので、 消化完了日にばらつきが発生 ○ 担当が割り当てられており、ヘルプしづらい
Slide 54
Slide 54 text
チケットを読んだらプランニングポーカー
Slide 55
Slide 55 text
プランニングポーカーとは ● 最初から工数(絶対値)を算出することは難しいが、 比較してポイント(相対値)を付けることは可能 プランニングポーカーかんたんガイド より
Slide 56
Slide 56 text
プランニングポーカーとは ● ポイントはフィボナッチ数列の数を利用 ○ 1, 2, 3, 5, 8, 13, ∞ ○ それぞれの数は別の数の2倍より大きいor小さい ■ 5 < 3の2倍 ■ 8 > 3の2倍 ● メンバー全員でポイントを一斉に出して、 出てきたポイントが違ったら自分の考えを表明 ○ 目的は計画を立てることだけではなく 議論をして認識の違いをすり合わせるためである
Slide 57
Slide 57 text
ポイント数を基に割り振り
Slide 58
Slide 58 text
改善結果
Slide 59
Slide 59 text
発見不具合数はそのままテスト項目数削減 本格的な改善実施
Slide 60
Slide 60 text
設計工数の減少 チケット A(担当X) B(担当Y) C(担当Z) 観 点 出 し 設計 消化 消化 消化 設計 設計 設計 レビ ュー 実装 実装 実装
Slide 61
Slide 61 text
設計工数の減少 チケット A(担当X) B(担当Y) C(担当Z) 観 点 出 し 設計 消化 消化 消化 設計 設計 設 計 レ ビ ュ ー 実装 実装 実装 ● コツが分かるとテスト設計は工数が減ってくる ○ テスト設計工数 ○ テスト設計レビュー工数 ● 1件あたりのテスト実施工数はほとんど変わらない
Slide 62
Slide 62 text
ヘルプがしやすい状況に ● チームで行う活動が以前よりも増加 ○ プランニングポーカー ○ 観点出し会 ○ テスト設計レビュー ○ テスト消化進捗の把握 ● 誰かの進捗が遅れていても、他の人がヘルプしやすい ○ どんなチケットをやっているか把握している
Slide 63
Slide 63 text
QAメンバーの声 ● 以前は「これは仕様です」「はい」という 会話だったが、最近では「仕様です」と言われても、 自分で考えて「これが仕様で良いのか」と、 開発チームと議論できるようになった ● 効率的に最小限のテストケースを考えるようになった ● 優先度の議論ができるようになった ● 以前は個々で設計・実施していた状態だったが、 「テストはチームでやるもの」という認識になった
Slide 64
Slide 64 text
開発チームとの さらなる協働
Slide 65
Slide 65 text
開発 ScrumイベントにQAも参加 Sprint 1 開発 QA Sprint 2 時間 消化 設計 設計 確認 プ ラ ン ニ ン グ 開発 ス プ リ ン ト レ ビ ュ ー リ フ ァ イ ン メ ン ト ス プ リ ン ト レ ビ ュ ー プ ラ ン ニ ン グ リ フ ァ イ ン メ ン ト
Slide 66
Slide 66 text
開発 ScrumイベントにQAも参加 Sprint 1 開発 QA Sprint 2 時間 消化 設計 設計 確認 プ ラ ン ニ ン グ 開発 ス プ リ ン ト レ ビ ュ ー リ フ ァ イ ン メ ン ト ス プ リ ン ト レ ビ ュ ー プ ラ ン ニ ン グ リ フ ァ イ ン メ ン ト 開発実装完了前から テストパターン、 ユースケース、 モデルなどを共有
Slide 67
Slide 67 text
開発実装完了する前にこんなやり取りも… Sprint 1 開発 QA Sprint 2 時間 消化 設計 設計 確認 P l a n n i n g 開発 R e v i e w R e f i n e m e n t R e v i e w P l a n n i n g R e f i n e m e n t 開発実装前から テストパターン、 ユースケース、 モデルなどを共有 ←状態遷移図らしきもの
Slide 68
Slide 68 text
開発と協働して動く場面が増加 ● 大きなFeatureを取り掛かる時には事前に議論 ○ 気になる部分、テストする場所を事前に共有 ○ テスト観点出しやテストパターン作成を きっかけに仕様漏れを検知 ○ 「このFeatureはテスト工数がかかりそうだから、 開発の見積もりポイントが大きくなりそう」 ● 開発が考えたテストケースのレビューに参加し、 QAがレビュアーとして伝える活動も出てくる ○ この観点は必要/不要 ○ この部分はこのように考えればパターンが削れる
Slide 69
Slide 69 text
開発とテストエンジニアが協働した事例 ● 発表済 ○ Scrum Fest Osaka 2020の発表(実例マッピング) ■ Agile Testingのエッセンス #scrumosaka ● 発表予定 ○ 開発側の視点はブログ記事を近日公開予定 ○ Regional Scrum Gathering Tokyo 2021で プロポーザル提出中 ■ Scrumチームに「テストは活動だ」という 意識を浸透させるまでの物語
Slide 70
Slide 70 text
まとめ
Slide 71
Slide 71 text
まとめ ● テスト設計を早めに着手することで、早い段階で 開発者にフィードバックできるようになった ● テスト設計とテスト設計レビューを手厚くすることで 全体の工数を削減する流れになっていった ● 進捗算出を自動化した ● テスト実施フェーズをテスト消化と改修確認の 2つに分けることで、改修確認フェーズには 次のSprintのテスト設計に着手できるようになった ● ポイントを基にチケットの大きさを把握することで、 適切に割り振れるようになった
Slide 72
Slide 72 text
おわりに ● 本日の発表のように、テストの考え方を用いて 開発と協働することができるQAを募集しています! ○ これからテストの考え方を持ちたい人も大歓迎! ● 興味のある方は、下記ページなどの募集ページからの ご応募をお待ちしております! ○ https://hrmos.co/pages/hrmos/jobs/160009310122