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

ソフトウェア保守性向上のためのユニットテストカバレッジの有効性評価

 ソフトウェア保守性向上のためのユニットテストカバレッジの有効性評価

【JaSST Tokyo2025 登壇資料】
ユニットテストのコードカバレッジはソフトウェアの保守性評価やユニットテストを実施する際の重要指標となりますが、その妥当性や有効性には様々な議論があります。
そこで弊社では、実データを使用して、ブランチカバレッジが復旧時間に短縮に寄与するとの仮説を立て、2つのデータの相関を調査してみました。
データ分析を通じた改善のヒントを得ることができるかもしれません。
https://jasst.jp/tokyo/25-about/

Avatar for erii todo

erii todo

May 07, 2025
Tweet

Other Decks in Programming

Transcript

  1. アジェンダ 1. CQO室の役割 2. 研究内容の発表 a. 背景と仮説 b. データ収集方法と分析手法 c.

    全体の分析結果 d. 重大度別の分析 e. 修正対象別の分析 f. 結論 3. 追加調査 4. まとめ 5. CQO室の今後のアクション
  2. CQO室の役割 作業内容
 • シフトレフトテストの推進 • 静的解析ツール、自動テストの推進 • メトリクスを活用したプロダクトの評価と改善 • 社外での障害の管理、改善

    • AIツールの評価、検討、作成 • ソフトウェア開発プロセスの改善 CQO室は横断的に多数のプロダクトの品質を把握する必要がある。 そのために、メトリクス を用いて品質を定量的に評価、把握し、方針を作成していく必要が ある CQO室の役割
  3. - デプロイの頻度 01 02 03 04 - 変更障害率 - サービス復元時間

    DORAのメトリクス - 変更のリードタイム DevOpsでの品質
  4. - デプロイの頻度 01 02 03 04 - 変更障害率 - 変更のリードタイム

    - サービス復元時間 障害に関連する指標 DevOpsでの品質 DORAのメトリクス
  5. データ収集方法 • 市場発生不具合を一元管理している Jiraチケット ◦ 対象プロダクト:20 ◦ 収集対象外となるもの ▪ 時間データが未記載のもの

    ▪ 障害レポートが無く、正確な時間無し ▪ 修正不要と判断 ▪ カバレッジが取得できないプロダクト ◦ これらのデータを母集団とし、全数調査を行う • カバレッジデータ ◦ SonarQubeのブランチカバレッジを取得 データ収集方法
  6. 分析手法 • 散布図 ◦ 相関を評価するために、二つの変数 の関係を可視化する • 回帰分析 ◦ y=f(x)という回帰式で変数の間の関

    係を定式化する ◦ xを説明変数(ブランチカバレッジ) ◦ yを目的変数(復旧時間) ブランチカバレッジ 復 旧 時 間 長 い 短 い 高い 低い y x ブランチカバレッジ xが高い時に、 復旧時間yが短くなる = 式が右下がり になることを期待する y= αx+β+ε 分析手法
  7. 名前 ピアソンの相関係数 r スピアマンの順位相関係数 p 概要 一般的に”相関”として 使われている値 順位データから求められる値 特徴

    正規分布に従ったデータが前提 正規分布でなくても使用可能 欠点 外れ値に引っ張られる 外れ値に引っ張られにくいが、順位デー タのため変数間の情報が無い 分析手法 • 相関係数 ◦ 2つの変数の関係性の強さを表す数値 -1から1で表す
  8. 回帰式 y=-0.719*x + 106 相関係数r -0.070 相関係数p 0.017 決定係数 0.005

    • 右下がりだが、相関係数は0に近くほぼ相関なし。 • 決定係数0.005 式の当てはまりも悪い。 • データに偏りがあるため、データの分布を確認する必要がある。 結果
  9. 回帰式 y=-0.0314*x + 4.91 相関係数r -0.070 相関係数p -0.14 決定係数 0.009

    • 同様の結果。右下がりになるが相関係数は0に近くほぼ相関なし。 ◦ 他の変数と絡めて関係性を調べることにする。 結果
  10. 重大度 1 回帰式 y=0.326*x + -22 相関係数r 0.952 相関係数 p

    1 決定係数R2 0.905 結果 • 正の相関ありで仮説と逆。データ数は少なく信憑性が低い結果となった。 ◦ 複数プロダクトが関連する障害が多い。
  11. 重大度 1 2 3 4 全体 相関係数r 0.952 -0.314 -0.493

    0.230 -0.09 相関 強い正の相関 弱い負の相関 やや負の相関 弱い正の相関 ほぼ相関なし 相関係数p 1 -0.42 -0.61 0.09 -0.14 相関 強い正の相関 弱い負の相関 やや負の相関 ほぼ相関なし ほぼ相関なし 決定係数 0.905 0.098 0.258 0.053 0.009 • 重大度2,3において、弱い負の相関、やや負の相関が見られた。 • 重大度1はデータ量が少なく、結果の信頼性が低いと思われる。 • 重大度4もデータ量が少なく、全体的に修正時間が短かったため明確な相関がみられなかった と思われる。 結果
  12. 修正対象 バックエンド 回帰式 y=8.11E-03*x + 1.9 相関係数r 0.02 相関係数 p

    0.117 決定係数R2 0 • 仮説と逆で、相関もほぼなし。 ◦ データに偏りがあり、外れ値のデータに引っぱられた可能性がある。 コードに変更を加えた障害のみに絞った際の分析
  13. 復旧時間が短くなる変数を分析する • 1. 検知方法の違い ◦ モニタリングツールでの検知 ▪ 復旧時間が短くなると予想 • 障害の原因となる欠陥がピンポイントで特定でき、調査時間を短縮でき

    るため ◦ 顧客や、社内の従業員からの検知 ▪ 復旧時間が長くなると予想 • 不具合再現手順のコミュニケーションが必要で、原因となる欠陥が特 定しにくく、調査時間が必要になるため 障害発生 検知 修正の提供 原因の調査 ソフトウェアの修正 テスト 復旧時間に影響する変数を分析する
  14. • 2. 障害発生タイミング ◦ リリース直後の検知不具合 ▪ 復旧時間が短くなると予想 • リリース直後は開発チームが即座に対応できる体制になっている可能 性があるため

    ◦ リリース後に時間が経過してからの検知不具合 ▪ 復旧時間が長くなると予想 • 開発チームが他の作業を行っていて、即座に対応できる体制になって いない可能性があるため 復旧時間に影響する変数を分析する
  15. • モニタリングツールの活用 ◦ モニタリングツールを活用することで、復旧時間を短縮できる可能性が高い。 • リリース直後の開発体制の強化 ◦ 85%がリバートで対応 していた。 ▪

    リバートできるようなリリースの仕方を検討することで、復旧時間が短縮で きる可能性が高い。 復旧時間に影響する変数を分析する
  16. データ分析における感想 • データ準備に時間がかかった ◦ 手動でデータを取得・変換する作業が多く、全体の中で特にデータの下準備に 時間がかかった。 ◦ 収集するのを目的にせず、取得しやすくかつ変換しやすい形でのデータ収集を 心がけたい。 •

    データ信頼性の担保 ◦ 障害を検知した時間ではなく欠陥を埋め込んだ時間を入れてしまっているデータ もあり、信頼性がないデータを計測に使えなかった。 ◦ メトリクスツールを用いて自動で取得することも検討したい。
  17. • 総務省, 令和4年通信利用動向調査の結果 , 発行日2023/05/29, https://www.soumu.go.jp/johotsusintokei/statistics/data/230529_1.pdf,アクセス日 • Nicole Forsgren他, LeanとDevOpsの科学,

    株式会社インプレス , 2018/11/21 発行 • ISTQB, JSTQBテクニカルテストアナリストシラバス , 発行日 2024/07/14, https://jstqb.jp/dl/JSTQB_CTAL-TTA_Syllabus_version2024.v4.0.J01.pdf • Gojko Adzic他, ソフトウェアテストをカイゼンする 50のアイデア, 翔泳社, 2022/09/20 発行 • Google, Google Testing Blog, 発行日 2020/08/07 , https://testing.googleblog.com/2020/08/code-coverage-best-practices.html, • Martin Fowler, Test Coverage, 発行日 2012/04/17, https://martinfowler.com/bliki/TestCoverage.html, • Vard Antinyan他, Mythical Unit Test Coverage https://www.researchgate.net/publication/324959836_Mythical_Unit_Test_Coverage • NIST, The Economic Impacts of Inadequate Infrastructure for Software Testing, 発行日 202/05, https://www.nist.gov/system/files/documents/director/planning/report02-3.pdf, アクセス日 2024/09/09 • 生物工学会誌 第95巻 第8号 https://www.sbj.or.jp/wp-content/uploads/file/sbj/9508/9508_tokei_kaiseki.pdf • 阿部 真人.(2021). 『データ分析に必須の知識・考え方 統計学入門 仮説検定から統計モデリングまで重要トピックを完 全網羅』. ソシム出版社. 参考文献