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

テスト活動の納得感を持ってテストケースを激減させた話 #D3QA / Improving co...

nihonbuson
September 16, 2020

テスト活動の納得感を持ってテストケースを激減させた話 #D3QA / Improving convinced testing activities

以下のイベントの投影資料です。
https://d-cube.connpass.com/event/187308/

お問い合わせは https://twitter.com/nihonbuson まで。

【発表資料内にあるURL】
▽P2:書籍『Agile Testing Condensed』
https://leanpub.com/agiletesting-condensed-japanese-edition

▽P36:書籍『A Practical Guide to Testing in DevOps』
https://leanpub.com/testingindevops

▽P55:プランニングポーカーかんたんガイド
https://www.slideshare.net/Ryuzee/ss-11644359/4

▽P69:Agile Testingのエッセンス #scrumosaka
https://speakerdeck.com/nihonbuson/agile-testing-essence?slide=21

▽P69:Scrumチームに「テストは活動だ」という意識を浸透させるまでの物語
https://confengine.com/regional-scrum-gathering-tokyo-2021/proposal/14747/scrum

▽P72:QA採用募集ページ
https://hrmos.co/pages/hrmos/jobs/160009310122

nihonbuson

September 16, 2020
Tweet

More Decks by nihonbuson

Other Decks in Technology

Transcript

  1. 自己紹介 • 風間裕也(ブロッコリー) • 2018年10月入社 • QA基盤推進室 QA Evangelist •

    社外活動 ◦ JaSST Review実行委員長 ◦ WACATE実行委員 ◦ 書籍『Agile Testing Condensed』 翻訳 書籍『Agile Testing Condensed』表紙
  2. 開発とQAのスケジュール状況 Sprint 1 開発 QA Sprint 1 Sprint 2 Sprint

    2 Sprint 3 Sprint 4 Sprint 3 時間 • QAは1スプリントずれてテストを実施
  3. 開発とQAのスケジュール状況 Sprint 1 開発 QA Sprint 1 Sprint 2 Sprint

    2 Sprint 3 Sprint 4 Sprint 3 時間 • QAは1スプリントずれてテストを実施 • これしか決まってない!
  4. 設計を手厚く Sprint 1 開発 QA Sprint 2 Sprint 3 Sprint

    4 時間 実施 実施 設計 設計 実施 設計
  5. 設計を手厚く Sprint 1 開発 QA Sprint 2 Sprint 3 Sprint

    4 時間 実施 実施 設計 設計 実施 設計 Sprint 1 開発 QA Sprint 2 Sprint 3 Sprint 4 時間 実施 設計 設計 実施 設計 実施 設計
  6. 設計を手厚く Sprint 1 開発 QA Sprint 2 Sprint 3 Sprint

    4 時間 実施 実施 設計 設計 実施 設計 Sprint 1 開発 QA Sprint 2 Sprint 3 Sprint 4 時間 実施 設計 設計 実施 設計 実施 設計 • 設計:実施=1:9 から 設計:実施=5:5 へ • テスト設計は開発のSprint完了前から着手 ◦ 開発の成果物が完成しなくても設計はできるはず!
  7. フィードバックも素早く Sprint 1 開発 QA Sprint 2 Sprint 3 Sprint

    4 時間 実施 実施 設計 設計 実施 設計 Sprint 1 開発 QA Sprint 2 Sprint 3 Sprint 4 時間 実施 設計 設計 実施 設計 実施 設計 • 開発への質問も、当該Sprint中にできるようになった
  8. QAチーム内のレビューも手厚く チケット A(担当X) B(担当Y) C(担当Z) 観 点 出 し 設

    計 設 計 設 計 実施 実施 実施 • 観点出しはチーム全員でやっていたが、 テスト設計以降は個々人の作業になっていた ◦ テスト設計のレビューもほとんどできていない状態
  9. QAチーム内のレビューも手厚く チケット A(担当X) B(担当Y) C(担当Z) 観 点 出 し 設計

    実施 実施 実施 設計 設計 設計 レビ ュー • テスト設計したものに対してレビューを行う ◦ QAメンバー全員が参加 • 作成完了したものをレビューするのではなく小出しに行う ◦ 設計の方針ぐらいの粒度もレビュー • テスト設計とテスト実装で考え方を分けた 実装 実装 実装
  10. テストプロセス(JSTQBより) テスト 分析 テスト 設計 テスト 実装 テスト 実行 何をテスト

    するか それをどう テストするか テストの実行に 必要なものすべて を準備したか テストスイートを 実行する 参考:ISTQBテスト技術者資格制度 Foundation Level シラバス 日本語版 Version 2018V3.1.J02
  11. テストプロセス テスト 観点出し テスト設計 テスト 実行 テスト 分析 テスト 設計

    テスト 実装 テスト 実行 具体的なテスト活動(改善前)
  12. テストプロセス テスト 観点出し テスト パターン 作成 テスト 手順作成 テスト 実行

    テスト 分析 テスト 設計 テスト 実装 テスト 実行 具体的なテスト活動(改善後)
  13. テストプロセス内でのレビュー指摘内容 テスト 観点出し テスト パターン 作成 テスト 手順作成 テスト 実行

    テスト 分析 テスト 設計 テスト 実装 テスト 実行 具体的なテスト活動(改善後) 足りない観点を追加 パターンに対する 整理・削除
  14. テストの振り子 テストやりすぎ! テストしなさすぎ! バグの報告 多く報告しますが、 ほとんどは修正されない バグがあまり見つからない 本番環境でのバグ ゼロ 多い

    レビュー時の行動 テスト範囲を頻繁に削除 テスト範囲を頻繁に追加 テストにかける時間 「時間かけすぎでは?」 「十分やったの?」 仲間はテストを 自分では行わない あなたが不必要だと思う テストまで行う マネージャーから テストが多すぎると言われる テストの詳細を聞かれる A Practical Guide to Testing in DevOpsより
  15. テストの振り子 テストやりすぎ! テストしなさすぎ! バグの報告 多く報告しますが、 ほとんどは修正されない バグがあまり見つからない 本番環境でのバグ ゼロ 多い

    レビュー時の行動 テスト範囲を頻繁に削除 テスト範囲を頻繁に追加 テストにかける時間 「時間かけすぎでは?」 「十分やったの?」 仲間はテストを 自分では行わない あなたが不必要だと思う テストまで行う マネージャーから テストが多すぎると言われる テストの詳細を聞かれる A Practical Guide to Testing in DevOpsより
  16. テスト実施がいつ終わるのか分からない チケット A(担当X) B(担当Y) C(担当Z) 観 点 出 し 設計

    実施 実施 実施 設計 設計 設計 レビ ュー 実装 実装 実装 • テスト設計はレビューの中で進捗を把握 • テスト実施は個々人に任せているので いつ終わるか分からない • テスト実施期間最終日に「間に合わない」とアラートが いつ 終了?
  17. テスト実施も2段階に! Sprint 1 開発 QA Sprint 2 Sprint 3 Sprint

    4 時間 実施 設計 設計 実施 設計 実施 設計
  18. テスト実施も2段階に! Sprint 1 開発 QA Sprint 2 Sprint 3 Sprint

    4 時間 消化 設計 設計 消化 設計 消化 設計 確認 確認 確認 • バグ改修の確認は、開発者による改修まで空き時間がある →次のSprintのテスト設計を行う
  19. 担当者によって負担が異なる チケット A(担当X) B(担当Y) C(担当Z) 観 点 出 し 設計

    消化 消化 消化 設計 設計 設計 レビ ュー 実装 実装 実装 • 担当1人あたりのチケット数を同じにしていた ◦ チケットによって重さが異なっているので、 消化完了日にばらつきが発生 ◦ 担当が割り当てられており、ヘルプしづらい
  20. プランニングポーカーとは • ポイントはフィボナッチ数列の数を利用 ◦ 1, 2, 3, 5, 8, 13,

    ∞ ◦ それぞれの数は別の数の2倍より大きいor小さい ▪ 5 < 3の2倍 ▪ 8 > 3の2倍 • メンバー全員でポイントを一斉に出して、 出てきたポイントが違ったら自分の考えを表明 ◦ 目的は計画を立てることだけではなく 議論をして認識の違いをすり合わせるためである
  21. 設計工数の減少 チケット A(担当X) B(担当Y) C(担当Z) 観 点 出 し 設計

    消化 消化 消化 設計 設計 設計 レビ ュー 実装 実装 実装
  22. 設計工数の減少 チケット A(担当X) B(担当Y) C(担当Z) 観 点 出 し 設計

    消化 消化 消化 設計 設計 設 計 レ ビ ュ ー 実装 実装 実装 • コツが分かるとテスト設計は工数が減ってくる ◦ テスト設計工数 ◦ テスト設計レビュー工数 • 1件あたりのテスト実施工数はほとんど変わらない
  23. ヘルプがしやすい状況に • チームで行う活動が以前よりも増加 ◦ プランニングポーカー ◦ 観点出し会 ◦ テスト設計レビュー ◦

    テスト消化進捗の把握 • 誰かの進捗が遅れていても、他の人がヘルプしやすい ◦ どんなチケットをやっているか把握している
  24. 開発 ScrumイベントにQAも参加 Sprint 1 開発 QA Sprint 2 時間 消化

    設計 設計 確認 プ ラ ン ニ ン グ 開発 ス プ リ ン ト レ ビ ュ ー リ フ ァ イ ン メ ン ト ス プ リ ン ト レ ビ ュ ー プ ラ ン ニ ン グ リ フ ァ イ ン メ ン ト
  25. 開発 ScrumイベントにQAも参加 Sprint 1 開発 QA Sprint 2 時間 消化

    設計 設計 確認 プ ラ ン ニ ン グ 開発 ス プ リ ン ト レ ビ ュ ー リ フ ァ イ ン メ ン ト ス プ リ ン ト レ ビ ュ ー プ ラ ン ニ ン グ リ フ ァ イ ン メ ン ト 開発実装完了前から テストパターン、 ユースケース、 モデルなどを共有
  26. 開発実装完了する前にこんなやり取りも… 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 開発実装前から テストパターン、 ユースケース、 モデルなどを共有 ←状態遷移図らしきもの
  27. 開発と協働して動く場面が増加 • 大きなFeatureを取り掛かる時には事前に議論 ◦ 気になる部分、テストする場所を事前に共有 ◦ テスト観点出しやテストパターン作成を きっかけに仕様漏れを検知 ◦ 「このFeatureはテスト工数がかかりそうだから、

    開発の見積もりポイントが大きくなりそう」 • 開発が考えたテストケースのレビューに参加し、 QAがレビュアーとして伝える活動も出てくる ◦ この観点は必要/不要 ◦ この部分はこのように考えればパターンが削れる
  28. 開発とテストエンジニアが協働した事例 • 発表済 ◦ Scrum Fest Osaka 2020の発表(実例マッピング) ▪ Agile

    Testingのエッセンス #scrumosaka • 発表予定 ◦ 開発側の視点はブログ記事を近日公開予定 ◦ Regional Scrum Gathering Tokyo 2021で プロポーザル提出中 ▪ Scrumチームに「テストは活動だ」という 意識を浸透させるまでの物語
  29. まとめ • テスト設計を早めに着手することで、早い段階で 開発者にフィードバックできるようになった • テスト設計とテスト設計レビューを手厚くすることで 全体の工数を削減する流れになっていった • 進捗算出を自動化した •

    テスト実施フェーズをテスト消化と改修確認の 2つに分けることで、改修確認フェーズには 次のSprintのテスト設計に着手できるようになった • ポイントを基にチケットの大きさを把握することで、 適切に割り振れるようになった