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

スクラムの特性に合ったソフトウェア品質の考え方

Avatar for Kazuo Kobori Kazuo Kobori
September 27, 2024
1.9k

 スクラムの特性に合ったソフトウェア品質の考え方

エンタープライズアジャイル勉強会 2024年9月定例セミナー向け資料
発表者:小堀 一雄 (Scrum Inc. Japan)

Avatar for Kazuo Kobori

Kazuo Kobori

September 27, 2024
Tweet

Transcript

  1. ©1993 – 2024 Scrum Inc. Japan © 1993-2020 Jeff Sutherland

    and Scrum Inc. エンタープライズアジャイル勉強会向け資料 スクラムの特性に合ったソフトウェア品質の考え方 〜品質とスピードを両立させるにはどうするか〜
  2. ©1993 – 2024 Scrum Inc. Japan Scrum Inc. Japan (2023/7-

    Present) ⚫ 認定スクラムマスター・プロダクトオーナー研修のトレーナ業 ⚫ アジャイル品質管理ガイドラインの策定コンサルティングなど NTT DATA (2005/4- 2020/3) ⚫ 大規模Waterfall型開発標準を整備 ⚫ 2010年頃にオフショア開発にてアジャイルに出会う ⚫ 社内のアジャイル開発推進組織の立ち上げ・拡大 Boston Consulting Group (2020/4 – 2023/6) ⚫ 経営判断のスピードを向上させるためのコンサルティング ⚫ 新規事業創出のコンサルティングにアジャイルを活用 ⚫ マーケティング向けのスクラムチームの立ち上げ 小堀 一雄(Kazuo Kobori) Scrum Coach / Scrum Inc. Japan 2
  3. ©1993 – 2024 Scrum Inc. Japan 3 本日の発表の狙い ソフトウェア開発の品質とスピードをWaterfallとAgileの両面から考える スクラムの立ち上げ支援において、主に従来の開発・品質管理に慣れたスクラムチームから

    スピードの向上は実感するが、リリースに向けた品質を確保するのが難しいとの声が複数聞こえている そこで、従来の品質管理のやり方を簡単に整理して認識を合わせた上で、 下記2つのテーマについて皆様と議論できればと考えております テーマ1:スクラムの特性に合った品質基準 1. 従来の品質管理方法をアジャイルで適用する際に難しいポイントは何か? 2. アジャイルの特性を考慮すると、どのような品質管理方法が向いているのか? テーマ2:スプリント期間内で品質を確保するテストアプローチ 1. おすすめのアジャイルテスティングのプラクティスをご紹介 2. これらのプラクティスを実践して高頻度リリースを実践している日本の事例をご紹介
  4. ©1993 – 2024 Scrum Inc. Japan 4 本日の発表にて想定する世界 ウォーター フォール

    の品質管理 アジャイル の品質管理 なんちゃって アジャイル 品質管理 従来の品質管理の世界から、 アジャイル品質管理に上手く “一歩”踏み出す方法をご提案 アジャイルテスティングのおす すめアプローチと、日本で上手 く実現している事例をご紹介 テーマ1:スクラムの特性に合った品質基準 テーマ2:スプリント期間内で品質を確保する テストアプローチ 例:内製化チーム BizとIT:一体 指標:DORAメトリクス (品質と同じぐらいスピード・アジリティも大事) 例:SIer(請負) BizとIT:分離 指標:テスト・バグ密度 (ITはBizに迷惑をかけないよう品質重視)
  5. ©1993 – 2024 Scrum Inc. Japan 対象外 リリース後でないと 価値を検証できない 「好み」などの品質

    対象 PBIとして事前に 価値が記述でき 検証可能な品質 この発表で扱う「品質」とは? リリース前にレビューやテストで検証する要求仕様を記載できる価値を対象とします 5 PBI:Product Backlog Item
  6. ©1993 – 2024 Scrum Inc. Japan 8 従来のソフトウェア開発現場ではどういうプロセスを使っているか 厳密にはV字モデルが使用されることが多いが、本資料では便宜上ウォーターフォールという呼称で統一 ウォーターフォールモデル

    V字モデル 各テストレベルにおいて、テストの基準となる正しい仕様を記載し た成果物を定義し、品質を小さな粒度(コンポーネント単位や処理 単位)から大きな粒度(機能単位や業務単位、システム全体など) に積み上げていく、品質を意識したモデル 開発工程を,要件定義,設計,実装(プログラミング),テストな どに分け,この順に作業を行う開発モデル。 工程毎に成果物の品質 を検査し、前の工程の成果物が次の工程のインプットとなるため, 工程が進んでから仕様変更が発生すると柔軟な対応が難しくなる 図の出典:Swooo, 【基礎知識】V字モデルとは?ウォーターフォール型開発におけるメリット・デメリット!, https://swooo.net/dev/vmodel/ 図の出典:Rabiloo,ウォーターフォールモデルは時代遅れ?メリット・デメリット、アジャイルとの違いをわかりやすく解説(2024), https://rabiloo.co.jp/blog/waterfall-model
  7. ©1993 – 2024 Scrum Inc. Japan 10 各工程では何を作り、どんな品質管理をしているのか? 工程の最後に品質ゲートを設け、十分レビュー・テストを実施して欠陥やバグが「ほぼ」なくなったか分析 工程

    品質管理方法 品質管理の成果物 要件定義 設計 実装 単体テスト 結合テスト 総合テスト どれだけレビューしたか? どれだけ欠陥が出たか? 欠陥と原因に傾向はあるか? 原因に対策したか? まだ他にも指摘が出そうか? どれだけテストしたか? どれだけバグが出たか? バグと原因に傾向はあるか? 原因に対策したか? まだ他にもバグが出そうか? メインの成果物 要件定義書 設計書 プログラムコード 各工程における テスト済みの プログラムコード テスト項目一覧表 テスト結果報告書 レビュー項目一覧表 レビュー結果報告書
  8. ©1993 – 2024 Scrum Inc. Japan 11 ウォーターフォールでの品質モデル 品質に関してもまず計画を定義し、メトリクスで品質を可視化した上で計画との乖離を埋めるアプローチ 図を引用して改変︓町⽥

    欣史 改善し続けるチームになろう〜アジャイル開発での品質管理, https://www.youtube.com/watch?v=1ls-DDw9_qw プロダクト品質 (バグ検出基準) 制約条件等 (法令、業界ルールなど) リソース品質 (PMやArchの 資格取得者アサイン) プロセス品質 (設計書レビュー基準・ テスト基準) 要求品質 (要件定義書 レビュー基準) • レビュー密度:要件定義書100ページ当たり XX人時レビューする • レビュー指摘密度:要件定義書100ページ当 たりXX件指摘を出す • バグ検出密度:プログラムコート1000行当た りUTではXX件、結合テストではXX件、総合 テストではXX件のバグを検出する • アサインルール:XX人月までの案件はアソシ エイトPM資格を持った課長級をPMとする。 XX人月超XXX人月までの案件はシニアPMの 資格をつ部長以上をアサインする • テスト密度:プログラムコート1000行当たり UTではXX件、結合テストではXX件、総合テ ストではXX件のテスト項目を実施する
  9. ©1993 – 2024 Scrum Inc. Japan 12 メトリクス(指標)の利用実態調査 〜2012年IPA報告書より抜粋〜 品質の把握、計画との乖離、計画規模に対する妥当性、欠陥除去やテスト項目の妥当性評価に利用

    利用メトリクス 利用シーン 品質に関する記述 出典:IPA,「定量的管理基盤メトリクス分類表 有効性調査」報告書 (2012) https://www.ipa.go.jp/archive/files/000004602.pdf
  10. ©1993 – 2024 Scrum Inc. Japan 13 メトリクス(指標)の利用実態調査 〜2012年IPA報告書より抜粋〜 品質の把握、計画との乖離、計画規模に対する妥当性、欠陥除去やテスト項目の妥当性評価に利用

    利用メトリクス 利用シーン 品質に関する記述 出典:IPA,「定量的管理基盤メトリクス分類表 有効性調査」報告書 (2012) https://www.ipa.go.jp/archive/files/000004602.pdf 1 2 3 4 5 6 7 8 受注者から提示されたデータからシステムの品質を 把握する 規模当たりの欠陥数の計画値との差分を評価する 運用段階におけるシステムの品質を把握する サービス停止件数実績の計画値との差分を評価する 受注者から提示されたソフトウェア保守品質の計画値 の規模に対する妥当性を評価する 受注者から提示されたソフトウェア保守品質の計画値 と実績値を評価する プログラムの欠陥が十分取り除かれていることを確認 する テスト項目数は品質確認のために十分か確認する
  11. ©1993 – 2024 Scrum Inc. Japan 15 • バグ分析とは バグの種類や混入原因を分析・分類してその傾向を見ることで品質改善のアクションに繋げる手法

    図の出典:菅谷 克行, ソフトウェア開発工程における不具合発生要因の分析, (2013) https://rose-ibadai.repo.nii.ac.jp/record/18619/files/201300080.pdf 障害の状態や原因を分析 し、特定の分類に仕分け ることで、傾向を分析す ることで品質低下の原因 となっている作業や組織 を特定し品質向上策を打 つことで改善を行うこと A
  12. ©1993 – 2024 Scrum Inc. Japan 16 障害の根本原因を分析し、 障害が発生した箇所以外 にも類似したバグが潜在

    するリスクを排除するた め、組織的に点検を行う こと • 横並びチェックとは 登録機能 A 検索機能 B 出力機能 C 検索機能 D 検索機能 E 登録機能 F 特定機能に 特化した 原因の場合 特定機能に 特化しない 原因の場合 障害 検知 潜在バグ 調査 潜在バグ 調査 潜在バグ 調査 横並びチェック 横並びチェック 障害 検知 参考にして一部改変:情報処理推進機構, 高信頼化ソフトウェアのための開発手法ガイドブック,, https://www.ipa.go.jp/archive/publish/qv6pgp0000000zlp-att/000005144.pdf 潜在バグ 調査 潜在バグ 調査 潜在バグ 調査 潜在バグ 調査 B
  13. ©1993 – 2024 Scrum Inc. Japan 17 • 信頼度成長曲線とは テストは最後のフェーズに実施されるため、潜在バグを発見&改修していくことで曲線が収束していく

    図の出典:https://speakerdeck.com/leveragestech/hakuqu-xian-tezhen-rifan-ru-rihuranteinku-kirakeakararehauerujie-hu-he 要件定義 設計 プログラ ミング テスト 実施したテスト項目数 検出バグの累積数 C
  14. ©1993 – 2024 Scrum Inc. Japan 定量的品質予測の手法として、テストケース密度と検出バグ密度を用いたエリア分析を適用する例 • ゾーン分析とは 過去の統計情報から適正範囲を設定し、

    今回開発したプロダクト品質を推測 -①の範囲に収まっているか︖ -①以外になった場合は理由を分析したか︖ 上限と下限の基準値は、過去の類似案件の統計データから算出している。 目的は基準から外れた部品の特定であり、基準内なら高品質を保証するわけではない。 18 D 図の出典:じゅん, バグ密度&テスト密度の基準値とゾーン分析を紹介!テスト工程がうまくできているか不安な方は必見です!(2020), https://blog.office-root.com/pj-mng/zone-analysis/
  15. ©1993 – 2024 Scrum Inc. Japan 20 下限と上限の値はどのように決めるのか? 品質データが正規分布に従う場合、工業製品は3σを、ソフトウェア製品は四分位を基準にすることもある 工業製品

    出典:IPA, 定量的品質予測のススメ (2008), https://www.ipa.go.jp/archive/publish/qv6pgp0000000yw8-att/000005133.pdf 分散が小さい(分布の山が急峻な)正規分布となることが多いため 管理限界に±3σ=99.7%を用いて分析を行うことが多い 人的要因などが大きく影響し分散が大きく(分布の山がなだら かになる)傾向があり、±3σ では範囲が広すぎるため四分位点 を利用し第1〜3四分位点間の±50%幅を管理限界とする例もある ソフトウェア製品
  16. ©1993 – 2024 Scrum Inc. Japan 22 従来の統計的品質管理が成立する前提条件(1/2) 過去のデータから未来を予測には、材料や設備などの5M(下表)が統一されている必要がある 比較データの適切性が必要がある

    表の出典:町⽥ 欣史 他, NTTデータ, バグ密度・テスト密度に依存しない品質保証への挑戦(2024),https://www.nttdata.com/jp/ja/trends/data-insight/2021/0204/
  17. ©1993 – 2024 Scrum Inc. Japan 23 従来の統計的品質管理が成立する前提条件(2/2) 品質予測に使う標本データは正規分布に従う必要があり、標本データの数が多いほど品質予測精度が上がる 中心極限定理

    出典:SiGmA EyE, 大数の法則と中心極限定理とは (2019), https://sigma-eye.com/2019/05/21/daisu-and-chuushinkyokugen/ 標本を抽出する母集団が平均、分散の正規分布に従う場合において も、従わない場合においても、抽出するサンプルサイズが大きくな るにつれて標本平均の分布は「平均、分散」の正規分布 に近づく 確率pで起こる事象において、試行回数を増やすほど、その事象 が実際に起こる確率はpに近づく 大数の法則 おおよそN≧30くらいあると良いといわれている おおよそN ≧ 20になると大抵の標本分布は 正規分布と区別できなくなると言われている 比較データが正規分布になっている必要がある
  18. ©1993 – 2024 Scrum Inc. Japan 24 ここまでのまとめ 従来の品質管理の世界から、 アジャイル品質管理に上手く

    “一歩”踏み出す方法をご提案 アジャイルテスティングのおす すめアプローチと、日本で上手 く実現している事例をご紹介 テーマ1:スクラムの特性に合った品質基準 テーマ2:スプリント期間内で品質を確保する テストアプローチ ウォーター フォール の品質管理 アジャイル の品質管理 なんちゃって アジャイル 品質管理 例:内製化チーム BizとIT:一体 指標:DORAメトリクス (品質と同じぐらいスピード・アジリティも大事) 例:SIer(請負) BizとIT:分離 指標:テスト・バグ密度 (ITはBizに迷惑をかけないよう品質重視)
  19. ©1993 – 2024 Scrum Inc. Japan 26 定性分析(バグ分析、横並びチェック)に適用した場合の問題 特に大きな問題はないが、工程で立ち止まらないので一部のメトリクスはアクションを打つ時間がない虞 図の出典:菅谷

    克行, ソフトウェア開発工程における不具合発生要因の分析, (2013) https://rose-ibadai.repo.nii.ac.jp/record/18619/files/201300080.pdf 参考にして一部改変:情報処理推進機構, 高信頼化ソフトウェアのための開発手法ガイドブック,, https://www.ipa.go.jp/archive/publish/qv6pgp0000000zlp-att/000005144.pdf
  20. ©1993 – 2024 Scrum Inc. Japan 27 信頼度成長曲線をスクラムでの品質管理に適用した場合の問題 次々と新しい機能をテストしていくのでプロダクト全体として収束しない。 27

    実施したテスト項目数 検出バグの累積数 要件 定義 設計 製造 テスト 実施したテスト項目数 テストは最後にまとめて実施されるため バグを発見&改修していくことで徐々に収束 検出バグの累積数 Sprintの開発対象単位では収束するが Sprintを重ねる毎に品質管理対象が膨大になる ウォーターフォールの場合 スクラムの場合
  21. ©1993 – 2024 Scrum Inc. Japan 比較データに適切性がない ゾーン分析をスクラムでの品質管理に適用した場合の問題 人材・プロセスが案件ごとに大きく違い、規模が小さいのでバグ密度の標本データが正規分布を描きにくい ISO12207/15288

    JIS X. 0160:2012 JIS X. 0170:2013 共通フレーム 2013 A社 標準プロセス B社 標準プロセス Scrum Guide 2020 408ページ 18ページ A社 Scrum Playbook B社 Scrum Playbook 比較データが正規分布ではない 28 ウォーター フォール スクラム 例:30,000行単位のリリースでは毎回30個前後のバグが検出 例:300行単位のリリースではバグ検出の有無が極端に分布 百以上のタスク 数百のサブタスク 数十種の成果物様式 ・バグ起票様式 ・バグ報告タイミング 3つの役割 5つのイベント 3つの成果物 ゼロ過剰ポアソン分布となり 中心極限定理を使っても必要な サンプルサイズが膨大になるはず スクラムはプロセスを標準化する文化でないので 過去の類似案件と比較するのは不適切 自チームの過去Sprint実績との比較であっても サンプル数が少なく、リリース規模が小さいと分布が極端に
  22. ©1993 – 2024 Scrum Inc. Japan 29 アジャイル品質管理に対する日本の大手SIer各社の考え方 従来の定量的品質管理をするための前提条件がアジャイルでは崩れているので試行錯誤をしている状況 企業・団体名

    何が難しいのか どう解決しようとしているか NTTデータ 富士通 NEC (イデソンの見解も含む) 日本IBM 野村総研 日立製作所 • 開発期間が短い • 品質の根拠となる要求そのものが変化 • 今まで使ってきたメトリクスを使った 評価が難しい(テスト密度、バグ密度) • 受け入れ基準を活用して要求を満たしていることを示そう • 正しいプロセスで開発すれば正しいプロダクトができるだろう(プロセス品質、リソース品質を強化しよう) • 観点カバレッジとDDP(Defect Detection Percentage:欠陥検出率)モニタリングの手法を組み合わせるこ とでプロセスの適切さを判断する • 短期間で開発する必要がある • 順次開発のためデグレードリスクが高い • 相対的ポイントを使うと、過去の案件と の比較や基準値としての横展開が困難 • 短期間なので、初めから品質を作り込む工夫が必要(自動計測、自動判定の仕組み含む) • バグの計測対象は,当該ストーリーの開発スプリントの完了判定以降に摘出されたバグと定義する • Doneの定義を活用し、プロセス品質とプロダクト品質の両面で品質を確保する • 過去の案件と比較可能なメトリクスの収集(Done判定後のバグ、工数、テスト項目数) • 要求変更の数が多くなると、決められた 期間とコストの中で要望を管理する必要 • 明確な指針を提供し、事業と開発双方の 調整手腕を持つPOの存在が欠かせない • 従来の品質管理のプラクティスを適用で きるかどうか検証が必要 • 従来の欠陥摘出前倒し率は工程分割され たウォーターフォールにしか適用不可 • プロセスや技術が多様で統計的品質管理 が難しい(比較データ/代理特性適切さ) • 指標値が規定範囲に収まっているかどう かで品質の良し悪しを直接判断できない • 比較データは、プロセスや技術が似ている自チームの直近Sprintのデータを活用し、代用特性はチケットライ フサイクル(リードタイム、着手待ち時間、発券時期)を利用することでプロセスの在り様の観測が可能 • 多様性の高いアジャイル開発は、指標も、プロセスも、人それぞれ、チームそれぞれであることが自然 • 町⽥欣史, NTTデータ, アジャイル開発での品質保証 〜成功の鍵〜,(2020) https://www.nttdata.com/jp/ja/trends/data-insight/2020/102201/ • 町⽥欣史, NTTデータ, バグ密度・テスト密度に依存しない品質保証への挑戦, (2024) https://www.nttdata.com/jp/ja/trends/data-insight/2021/0204/ • 誉⽥ 直美, イデソン, 品質重視のアジャイル開発 〜ウォーターフォールモデル開発との比較から〜, (2021) https://www.veriserve.co.jp/asset/approach/column/agile/agile04.html • 誉⽥ 直美, NEC, アジャイルと品質会計, (2016) https://ipsj.ixsq.nii.ac.jp/ej/?action=repository_uri&item_id=167780&file_id=1&file_no=1 • 坂⽥ 晶紀, 富士通, アジャイル開発の品質管理技法, (2020) https://www.fujitsu.com/jp/services/agile/featurestories/about-agile-02.html • 短期で新しいテストが積み上がっていく スクラムでは不具合曲線の適用は困難 • 頻繁にプログラムを追加/修正するので、 保守困難かつデグレードが発生しやすい • 過去の類似プロジェクトを参考に、欠陥発見目標数を品質目標値とし、実際に発生した欠陥数と比較する • 設計フェーズから、ドキュメント・レビュー時の欠陥発見数を品質目標値として品質を見える化 • チーム内で議論して、入手しやすく、欠陥数と比例関係にある項目を品質目標として設定 • イテレーション期間は短いので、スプリント・レトロスペクティブで発生欠陥を分類/分析して議論 表は参考文献の記載内容を一部要約して記載 • トヨタ生産方式の「自工程完結」のように、工程内で品質を管理し、不良品を出さないようにする考え方を ソフトウェア開発に持ち込めるようにする • 開発工程を小規模なチームで管理できる単位まで小さくすることで 「自工程完結」の品質管理の考え方をソ フトウェア開発に持ち込める • 1SprintでE2Eテストまでやり切る、自動化する、QAも設計初期段階から参画し、使用検討とテストを実施 • 前倒しの基準を工程からバク票作成日に変更、対象をE2Eテストのバグに絞って、前倒し率を利用可能にし た • アジャイル開発では開発期間が短く、リリースごとの特徴のような要因によりメトリクス値の変動を無視で きないため、リリース毎の特徴を踏まえてメトリクスや基準値を調整 • 坂上 義之, 日本アイ・ビー・エム, 3分で読める|アジャイル開発における品質見える化, (2023) https://www.ibm.com/blogs/smarter-business/business/quality-visualization-in-agile-development-01/ • 物部 康介, 浦⽥ 壮一郎, NRI,アジャイル開発の本質をひもとく―日本企業への導入に何が必要か―, (2017) https://www.nri.com/jp/journal/2017/1025 • 松⽥ 元輝, 日立製作所, アジャイルプラクティスを導入した開発における品質メトリクスの提案, (2018) https://www.juse.jp/sqip/library/shousai/download/index.cgi/A4-2.pdf?id=410 • 足立 直ほか, 日立製作所,アジャイル開発における品質管理の取り組みと評価 , (2009) https://www.jstage.jst.go.jp/article/spm/2009.Autumn/0/2009.Autumn_86/_article/-char/ja/
  23. ©1993 – 2024 Scrum Inc. Japan 30 従来型品質管理の前提条件だった開発特性でのWaterfallとAgileの比較 前提条件と比べてAgileは見事に真逆なので、従来の品質管理手法だけに頼るのは注意が必要 開発特性

    Waterfall 従来の品質管理がAgileで使い難い理由 Agile 解決アプローチ 期間 リリース規模 リリース頻度 開発者の数 文書の数 多い 少ない 多い 少ない (必要最低限) 工数見積 絶対値 相対値 長い 短い 大きい 小さい 少ない 多い • 工程単位で検査する暇がない • 工程単位で検査しても開発済みで手遅れ 統計処理できない (正規分布になり難く品質水準値の設定不能) • 外の評価チームが都度評価するコストが高い • 回帰テストが大量に必要 統計処理できない (スキル・プロセスがバラバラで過去データと 比較したり標準工数, 品質水準値が使用不可) 途中工程でのバグ票など、プロセス品質を評価す る対象の文書が少ない • 品質を早期に作り込む • できるだけ自動化する • チームが評価能力を持つ • できるだけ自動化する • 過去の類似案件と 統計的な比較を避ける • プロダクト特性に応じ 独立で評価する
  24. ©1993 – 2024 Scrum Inc. Japan 31 Scrumをアレンジして従来手法を使うアプローチ: Water-Scrum-Fall 詳細設計から単体テストまではScrumなので、要件と実物の乖離を早期に確認できる。それ以外の工程は

    Waterfallであるため従来の考え方で実行可能。ただし、原則として要件は固定でリードタイムは長期になる 図の出典:IPA, アジャイルプロセスにおける実践的な品質向上施策の適用事例(2013), https://www.ipa.go.jp/archive/files/000049403.pdf
  25. ©1993 – 2024 Scrum Inc. Japan 32 Scrumをアレンジして従来手法を使うアプローチ:リリーススプリント リリース前に品質強化用のスプリントを用意して、リグレッションテストや統計的品質管理をまとめて 行う時間を確保した形で、要件は変更できるがリリース(出荷)までのリードタイムはその分だけ長期になる

    図の出典:誉田 直美, 日本電気, アジャイルと品質会計 ―プロジェクトの高成功率を確保するハイブリッド アジャイルへの取り組み― (2016), https://ipsj.ixsq.nii.ac.jp/ej/?action=repository_uri&item_id=167780&file_id=1&file_no=1
  26. ©1993 – 2024 Scrum Inc. Japan スクラムに適した品質モデルの提案 機能横断チームで協力して、継続的改善の効果を品質向上にも発揮させる プロダクト品質 (障害の発生状況)

    制約条件等 (法令、業界ルールなど) リソース品質 (機能横断チーム*3) 1. 準備完了の定義:チームがスプリントに取り掛かる前に、プロダクトバックログアイテムの準備ができているかをチェックするための定義で、INVEST条件などが有名 2. 完成の定義:複数のバックログアイテムに共通的に適用される基準。言い換えれば、バックログアイテムが完成してリリースする際の品質判断の指針 3. 機能横断チーム:スプリントにおける仕事を成し遂げるために必要な全てのスキルをもっているチームのこと 35 プロセス品質 (完成の定義*2) 要求品質 (準備完了の定義*1) 継続的改善 ができる プロダクト 品質を初期から 評価できる
  27. ©1993 – 2024 Scrum Inc. Japan 準備完了の定義、完成の定義、機能横断チームが十分に改善されると? Sprint内でほとんど全てのバグが発見・修正されるようになるはず Sprint X

    Sprint X+n タイトルの3点が プロダクト特性に適した状態で 開発を実施した場合 あるSprintでバグを埋め込んでも、 そのSprint内で発見されないリスクあり あるSprintでバグを埋め込んでも、 そのSprint内で発見・修正される 未来のどこかのSprintにて たまたま発見されて修正される これを「Sprintすり抜けバグ」と呼称する タイトルの3点が プロダクト特性に適してない状態で 開発を実施した場合 (「Sprintすり抜けバグ」は発生しない) 36
  28. ©1993 – 2024 Scrum Inc. Japan 37 継続的改善が十分行われたかどうかは、どのように判断できるか? 要求品質・プロセス品質・リソース品質が十分に改善されれば、Sprintをすり抜けたバグの累積数に関す る信頼度成長曲線が収束する

    新たに発見されたSprintすり抜けバ グの数が収束したら 「リリース可能な状態」とみなす Sprintをすり抜けた バグの累積数 経過したSprint数* * ここでは計測簡素化のために各Sprintでは同数程度の テスト項目を実施したと仮定する 要求品質・プロセス品質・リソース品質は Sprintを回す毎に改善が可能。 そのため、新たにテストを実施し続けたとしても Sprintすり抜けバグの累積数の曲線は収束する
  29. ©1993 – 2024 Scrum Inc. Japan 39 開発者(保守)の視点からは、リリース可能な状態をどう判断するか? 例:本番障害(すり抜けたバグの発現)を修正する工数がどの程度かかるのか? Sprintすり抜けバグの修正にかかる

    ポイント数が一定以下に収束したら、 「リリース可能な状態」とみなす 経過したSprint数* Sprintをすり抜けた バグ修正にかかった 相対的ポイントの累積数 * ここでは計測簡素化のために各Sprintでは同数程度の テスト項目を実施したと仮定する
  30. ©1993 – 2024 Scrum Inc. Japan 40 ビジネス部門の視点からは、リリース可能な状態をどう判断するか? 例:現状のソフトウェア品質で、サービスは停止しないのか? サービス停止時間がSLAを遵守

    できる水準に収束したら、 「リリース可能な状態」とみなす * ここでは計測簡素化のために各Sprintでは同数程度の テスト項目を実施したと仮定する サービス停止に陥った時間 の累積数(h) 経過したSprint数*
  31. ©1993 – 2024 Scrum Inc. Japan これらの曲線を追跡することで複数の視点で信頼度を可視化し総合的判断が可能 スリーアミーゴズ信頼度成長曲線群(仮) 41 *

    ここでは計測簡素化のために各Sprintでは同数程度 のテスト項目を実施したと仮定する Sprintをすり抜けた バグの累積数(件) サービス停止に陥った 時間の累積数(h) 経過したSprint数 Sprintをすり抜けた バグ対応にかかった 相対的ポイントの累積数 (ポイント) 経過したSprint数* 経過したSprint数* テスター向けの信頼度成長曲線 開発者(保守)向けの信頼度成長曲線 ビジネス向けの信頼度成長曲線
  32. ©1993 – 2024 Scrum Inc. Japan スクラムにおける品質と(マーケットインまでの)スピードのバランスを、 信頼度成長曲線の収束度と障害対応リスクのバランスという形で表現し判断に活用 このバランスについて、プロダクトオーナーが総合的な判断を下すことになる 42

    VS VS VS リリース後のスプリントでの 障害対応コスト・キャパシティ SLA (サービスレベルアグリーメント) 各組織における収束度の基準値 * ここでは計測簡素化のために各Sprintでは同数程度 のテスト項目を実施したと仮定する Sprintをすり抜けた バグの累積数(件) サービス停止に陥った 時間の累積数(h) 経過したSprint数 Sprintをすり抜けた バグ対応にかかった 相対的ポイントの累積数 (ポイント) 経過したSprint数* 経過したSprint数* テスター向けの信頼度成長曲線 ビジネス向けの信頼度成長曲線 開発者(保守)向けの信頼度成長曲線
  33. ©1993 – 2024 Scrum Inc. Japan 43 メトリクスの利用実態調査 (2012年IPA報告書より抜粋) 発注者・受注者の利用シーンは

    〜 あり、品質管理手法としての妥当性チェック基準として使えそ う 利用メトリクス 利用シーン 品質に関する記述 出典:IPA,「定量的管理基盤メトリクス分類表 有効性調査」報告書 (2012) https://www.ipa.go.jp/archive/files/000004602.pdf 再掲 1 2 3 4 5 6 7 8 8 1
  34. ©1993 – 2024 Scrum Inc. Japan 44 提案したメトリクスとIPA報告書の利用シーンとのマッピング評価結果 〜 のシーンは、それぞれ下記のマッピングで評価が可能

    VS VS リリース後のスプリントでの 障害対応コスト・キャパシティ SLA (サービスレベルアグリーメント) 各組織における収束度の基準値 Sprintをすり抜けた バグの累積数(件) サービス停止に陥った 時間の累積数(h) 経過したSprint数 Sprintをすり抜けた バグ対応にかかった 相対的ポイントの累積数 (ポイント) 経過したSprint数* 経過したSprint数* テスター向けの信頼度成長曲線 開発者(保守)向けの信頼度成長曲線 ビジネス向けの信頼度成長曲線 VS 1 2 3 4 5 6 7 8 受注者から提示されたデータからシステムの 品質を把握する 規模当たりの欠陥数の計画値との差分を評価 する 運用段階におけるシステムの品質を把握する サービス停止件数実績の計画値との差分を評 価する 受注者から提示されたソフトウェア保守品質 の計画値の規模に対する妥当性を評価する 受注者から提示されたソフトウェア保守品質 の計画値と実績値を評価する プログラムの欠陥が十分取り除かれているこ とを確認する テスト項目数は品質確認のために十分か確認 する 2 1 3 3 4 5 6 7 8 * ここでは計測簡素化のために各Sprintでは同数程度 のテスト項目を実施したと仮定する 発注者と受注者のメトリクス利用シーン (IPA調査結果) 提案したメトリクスによる 品質判断のイメージ 1 8
  35. ©1993 – 2024 Scrum Inc. Japan 45 アジャイルソフトウェア開発の落とし穴 開発の途中で要求が変化することで、扱う対象の業務ドメイン・技術の範囲が変わることがある 出典︓“The

    Myth of Incremental Development” by Herding Cats under CC BY-NC-ND 3.0 自転⾞とオートバイでは、品質保証に必要な知識・プロセスが異なる
  36. ©1993 – 2024 Scrum Inc. Japan 46 プロダクト特性の変化によるプロダクト品質低下はどう可視化されるか? 変化に応じて完成の定義を適切に調整できないと、収束していた信頼度成長曲線も再度発散する可能性あり プロダクト特性、要求に変化が発生する

    と信頼度成長曲線は再度発散する 経過したSprint数* Sprintをすり抜けた バグの累積数 * ここでは計測簡素化のために各Sprintでは同数程度の テスト項目を実施したと仮定する
  37. ©1993 – 2024 Scrum Inc. Japan 47 この落とし穴にどう対処するか? 変化したプロダクト特性(ビジネスドメイン、採用技術)に対応できるリソース・プロセスに強化する プロダクト品質

    (障害の発生状況) 制約条件等 (法令、業界ルールなど) リソース品質 (機能横断チーム*3) 1. 準備完了の定義:チームがスプリントに取り掛かる前に、プロダクトバックログアイテムの準備ができているかをチェックするための定義で、INVEST条件などが有名 2. 完成の定義:複数のバックログアイテムに共通的に適用される基準。言い換えれば、バックログアイテムが完成してリリースする際の品質判断の指針 3. 機能横断チーム:スプリントにおける仕事を成し遂げるために必要な全てのスキルをもっているチームのこと プロセス品質 (完成の定義*2) 要求品質 (準備完了の定義*1) Update Update Update
  38. ©1993 – 2024 Scrum Inc. Japan 48 各社、従来の品質管理方法をアジャイルでどうやって適用するかを試行錯誤している。 アジャイルの場合は早期からプロダクト品質が測定できたり、継続的改善の機会を使って徐々に リリース品質に近づける手段を提案した。

    テーマ1のまとめ 従来の品質管理の世界から、 アジャイル品質管理に上手く “一歩”踏み出す方法をご提案 アジャイルテスティングのおす すめアプローチと、日本で上手 く実現している事例をご紹介 テーマ1:スクラムの特性に合った品質基準 テーマ2:スプリント期間内で品質を確保する テストアプローチ ウォーター フォール の品質管理 アジャイル の品質管理 なんちゃって アジャイル 品質管理 例:内製化チーム BizとIT:一体 指標:DORAメトリクス (品質と同じぐらいスピード・アジリティも大事) 例:SIer(請負) BizとIT:分離 指標:テスト・バグ密度 (ITはBizに迷惑をかけないよう品質重視)
  39. ©1993 – 2024 Scrum Inc. Japan 51 アジャイルでおすすめのテストアプローチ テスト計画の策定 テストケースの設計

    テストの実施 &デバッグ テスト証跡の収集 AI活用による 証跡作成の自動化 PBIのサイズを 小さくする 完成の定義の 継続的成熟 探索的テスト バグの発見より バグの防止 最後にテストするより も常にテストし続ける テスト自動化 安定版への 高速切り戻し テストも スウォーミング DORAメトリクス 1 2 3 4 5 6 7 8 9 10 品質管理戦略の策定
  40. ©1993 – 2024 Scrum Inc. Japan 52 プロダクト • 名称:Agile

    Effect • 概要:スクラム開発のための業務改善ツール ライフサイクル • 開発開始から4か月目、10人月でリリース達成 • 現在は事業発足から1年と5ヶ月が経過したところ スクラムチーム • PO 1名(西 慎一郎 氏:事例インタビュー先) • フルスタック開発者 4名 プロセス • Scrumを採用 • Sprint期間は1週間 リファレンスとしての良い事例 レバレジーズ株式会社のおける内製チームによるスクラム開発 https://lp.agile-effect.com/ 1週間で平均3〜4回のリリースを達成
  41. ©1993 – 2024 Scrum Inc. Japan 53 • PBIのサイズを小さくする 概要

    レバレジーズ社の事例 1 PBIのサイズを小さくしてリリース • 最大でも2SP(ストーリーポイント)ぐらいになる よう小さく分解していて、この単位でリリースする • ソースコード行数で言うと100〜200LOC程度 • 例えば、ある情報を更新、全体更新できるように するなどの機能単位 • そのストーリーが独立してリリース可能になる 単位で分解している • 基本的には0.5~1SP以下にストーリーを細分化して いる ワーキングアグリーメント • 1スプリントでユーザーに提供できる新しい価値を 必ず1つ以上リリースによって提供することを約束 しています 作るべき要件の量が小さく、シンプルであれば、 その分テストの作業も少なくなる (もちろんオーバーヘッドはあるが)
  42. ©1993 – 2024 Scrum Inc. Japan 54 • バグの発見よりバグの防止 概要

    レバレジーズ社の事例 2 アーキテクチャ • コンポーネント志向 • 最初から1ファイル60行制限 • シンプルにして品質低下を防ぐ • コンポーネント単位の再利用性も高い • 要件定義で不要に複雑な仕様にしない • 設計や製造ではシンプルにして可読性や保守性も高める • 静的チェックの自動化により潜在バグとなるコードを検出 してすぐに修正する • ペアプログラミングなどを使って、即指摘する ペアプロ・モブプロ • 基本的な開発スタイルとして採用している • これによりほとんどコードレビューの時間が発生しない • 品質もあらゆる観点をその場で考慮できる 静的解析チェックの自動化 • 規約を守らないコードはlintツールで自動で弾く 図の出典: Janet Gregory, Lisa Crispin, and Yuya Kazama, Agile Testing Condensed Japanese Edition (2021), https://leanpub.com/agiletesting-condensed-japanese-edition
  43. ©1993 – 2024 Scrum Inc. Japan 55 最後にテストするよりも常にテストし続ける 概要 レバレジーズ社の事例

    3 テストの事前チェック • 日々のテストの操作画面を録画して、事前に2倍速で 見て問題あれば即差し戻ししている • ワーキングアグリーメントとして徹底している 継続的インテグレーション • 完成の定義がPull Requestのテンプレになっていて全 部OKになったらCIを回す TDD • スプリントプランニングで検討し採用する場合もある • 目安として、既存影響があるロジックには実施するが、 既存コンポーネントの再利用や既存のAPIをコールするだ けの場合は実施しないことが多い 影響分析を用いた回帰テスト • Agile Effectを活用して今まで作ってきたユーザーストー リーの一覧から今回開発したで影響を受けそうな部分を 発見し、受け入れテストの対象とする • 継続的インテグレーションの導入 • テスト駆動開発(TDD)の採用 • ペアプログラミングにてプログラミングと同時にレビュー • 回帰テストの自動化 • テスト計画に確信が持てない時に探索的テストの実施 図の出典: Janet Gregory, Lisa Crispin, and Yuya Kazama, Agile Testing Condensed Japanese Edition (2021), https://leanpub.com/agiletesting-condensed-japanese-edition
  44. ©1993 – 2024 Scrum Inc. Japan 56 安定版への高速切り戻し 概要 レバレジーズ社の事例

    4 DevOps • 障害が発生してもすぐ安定版に戻せるようにしている • 障害が発生した際の対処手順も合意してからリリースし ている 切り戻しできない重大バグは重点テスト • 切り戻しで対応できない重大バグだけは、Sprint内で重 点的にテストする • データ破壊など切り戻せなくなるバグ • セキュリティ漏洩など 出典:浜村純, ニフティライフスタイル株式会社, 安心してリリース!〜Blue/Greenデプロイ戦略の実体験〜,(2023), https://speakerdeck.com/niftycorp/nifty-tech-day-2023-hamamura • Blue/Greenデプロイ戦略の採用 • 切り戻し時の手順を自動化しておく • 日常的に切り戻しを試す(カオスエンジニアリング) • 切り戻せないバグは重大バグとしてテストで重点的に叩く
  45. ©1993 – 2024 Scrum Inc. Japan 57 • DORAメトリクス 概要

    レバレジーズ社の事例 5 デプロイの頻度 変更の失敗率 変更の平均リードタイム サービス復旧時間 安定性 速度 可視化はしているが、改善指標としては現在 意図的に使っていない • スピードを落とすボトルネックはプロセスやバリュースト リームに課題があることが多いため、直接フローを検査す るVSM(Value Stream Mapping)を実施した方が改善発 見の効率が良いため 図の出典:教えて!スクラムコーチ品質とスピードのバランスはどうすりゃいいの?, https://speakerdeck.com/koborik/jiao-ete-sukuramukotipin-zhi-tosuhitonoharansuhatousuriyaiino?slide=16 アジャイル開発では、従来のソフトウェア品質に加えて、更新頻度や変更リー ドタイムなど顧客への価値提供の速さも求められる
  46. ©1993 – 2024 Scrum Inc. Japan 58 • 探索的テスト 概要

    レバレジーズ社の事例 6 (未確認) 図の出典:熊川 一平, NTTデータ, 「探索的テスト」を活用して品質を高める, (2014), https://www.nttdata.com/jp/ja/trends/data-insight/2014/072401/ アジャイル開発では、仕様の理解やテスト計画を立てる情報を十分集める 時間が十分ないため、探索的テストを用いてプロダクトの特性、リスクの 高い部分を学習することは有効
  47. ©1993 – 2024 Scrum Inc. Japan 59 • テストもスウォーミングする 概要

    レバレジーズ社の事例 7 ペアプロ・モブプロ • 基本的な開発スタイルとして採用している • これによりほとんどコードレビューの時間が発生しない • 品質もあらゆる観点をその場で考慮できる ボトルネックの可視化 • Sprint内の作業をVSMでボトルネック可視化 • レトロスペクティブ(振り返り)で1個ずつ改善していく ◦ 前述した、テスト作業を録画してAIが概要文字起こし して証跡に残すというアクションも改善の1つ • 開発者だけでなくPOも含めて全員でテストに取り組む • POやUXが得意な開発者は受入テスト/UXテストでATDDを 回す • プログラミングが得意な開発者はUT/ITでTDDを回す • 品質管理/テストが得意な開発者は完成の定義のテスト観点 をチューニングしたりテスト自動ツールを導入する 図の出典:A Very Brief History of Test-Driven Development, (2021),https://link.springer.com/chapter/10.1007/978-1-4842-6972-5_1
  48. ©1993 – 2024 Scrum Inc. Japan 60 • 完成の定義の継続的成熟 概要

    レバレジーズ社の事例 8 品質メトリクス • スプリントレビューで差し戻しになったストーリーポイント • Sprintすり抜けバグが見つかったストーリーポイント プロセス改善 • 品質メトリクスが閾値以内(5ptなど)閾値超えたら理由解 析と改善 • レトロスペクティブによってVSMを行うなどによって原 因を特定し、次週のスプリントから改善 • これを15−20Sprints繰り返したら、感覚的には品質が 安定してきた プロダクト品質 (障害の発生状況) 制約条件等 (法令、業界ルールなど) リソース品質 (機能横断チーム) プロセス品質 (完成の定義) 要求品質 (準備完了の定義) Upd ate Upd ate Upd ate 切り戻しできない重大バグは重点テスト • 切り戻しで対応できない重大バグだけは、Sprint内で重 点的にテストする • データ破壊など切り戻せなくなるバグ • セキュリティ漏洩など 完成の定義 • 14〜5個ある(セルフレビュー、ピアレビュー、分岐網羅など) • リファクタリング、機能追加などPBIの種別ごとに異なる
  49. ©1993 – 2024 Scrum Inc. Japan 61 • テスト自動化 概要

    レバレジーズ社の事例 9 自動化の優先度が高い作業 自動化の優先度が低い作業 • 繰り返し行う作業 (ビルド、結合、テスト等) • 前の作業が終わったら必ず動かすもの • ミスを起こしやすい作業/退屈な作業 • 環境のセットアップ • 品質のメトリクス計測 • リスクのあるコードの検出 • アーキテクチャ適合性の確認 • 長時間かかる作業 • 実施する頻度は小さいが、重要 な作業 • 自動化が難しい作業 • 一貫性がない作業 • 毎回人間が考えないとならない 作業 自動テスト • 改修頻度が高い部分に関してはテスト自動化を実 施している。 手動テスト • 過去のテスト実施を録画した動画を参考に、テス ト手順について効率的に進めることができている
  50. ©1993 – 2024 Scrum Inc. Japan 62 AI活用による自動化 概要 レバレジーズ社の事例

    10 スプリントレビューのチェック高度化 • 何をチェックするかのフォーマットがある • チェック方法をワーキングアグリーメントで定義 ◦ 日々のテストやスプリントレビューの操作画面を録画 ◦ 事前に2倍速で録画を見ておく ◦ 録画をAIに食わせて、概要を文字起こししている ◦ 問題あれば差し戻し 開発業務 • Cursor(AIによるリアルタイムのコード編 集とデバッグ機能を提供し、開発者の作業 を効率化)を活用しています ドキュメンテーション業務 • Gamma(AIドキュメント生成ツール)を 用いて時間を短縮し、極力無駄をなくす • コード生成と自動補完 • コードレビューの自動化 • バグ予測と早期検出 • テストケース生成 • 自然言語処理によるドキュメント生成 • セキュリティ脆弱性の検出 図の出典:日本IBM, PRTIMES記事より画像を抜粋,(2024) https://prtimes.jp/main/html/rd/p/000000474.000046783.html
  51. ©1993 – 2024 Scrum Inc. Japan 63 • アジャイル開発ではテストを取り巻く状況は大きく変化し、戦略・マインドセットの変革が必要 •

    レバレジーズ社の事例からも分かるように、最後にテストでなんとかするアプローチではなく PO含めチーム全体で品質作り込みをSprint1のDay1から計画して実行していくことが肝要 テーマ2のまとめ 従来の品質管理の世界から、 アジャイル品質管理に上手く “一歩”踏み出す方法をご提案 アジャイルテスティングのおす すめアプローチと、日本で上手 く実現している事例をご紹介 テーマ1:スクラムの特性に合った品質基準 テーマ2:スプリント期間内で品質を確保する テストアプローチ ウォーター フォール の品質管理 アジャイル の品質管理 なんちゃって アジャイル 品質管理 例:内製化チーム BizとIT:一体 指標:DORAメトリクス (品質と同じぐらいスピード・アジリティも大事) 例:SIer(請負) BizとIT:分離 指標:テスト・バグ密度 (ITはBizに迷惑をかけないよう品質重視)
  52. ©1993 – 2024 Scrum Inc. Japan 64 Next Step チームや組織全体でアジャイル・テスティングのマインドとプラクティスを学ぶことができる

    Scrum Inc. 認定アジャイル・テスティング研修を2024年度から立ち上げました(資格付き) https://scruminc.jp/training/agile-testing/ https://scruminc.jp/blog/5557/
  53. ©1993 – 2024 Scrum Inc. Japan 65 関連するScrum Inc. Japanの活動紹介

    会社/組織としての スクラム開発のPlaybookや アジャイル品質ガイドライン の策定支援も可能 アジャイルの三本柱(透明性・検査・適応) スクラムの価値基準(公開・尊敬・勇気・集中・確約) を学べるScrum Inc.認定スクラムマスター研修 これらをテスト・品質に適用するには?