信頼度成長曲線(バグ曲線)とは何か? 〜テストの終わりどころがわかるグラフ〜
組み込みソフトウェアの開発において、「テストをいつ終えればいいのか」は悩ましい問題です。この悩みを解決する手がかりとなるのが「信頼度成長曲線」、通称「バグ曲線」です。
本記事では、バグ曲線の基本的な見方と、テストの終わりどころを判断するための考え方について解説します。
- 信頼度成長曲線とは?累積バグ数でソフトウェア品質を可視化
- 信頼度成長曲線の見方|序盤・中盤・終盤で品質状況を判断する
- テストの変更でバグ曲線も変化する
- リリースOKの目安はどう決めるか
- バグが見つからないときのチェックポイント
- まとめ
信頼度成長曲線とは?累積バグ数でソフトウェア品質を可視化
信頼度成長曲線とは、テストの進行とともに発見されたバグの累積数を、時系列で表したグラフのことです。現場ではよく「バグ曲線」と呼ばれています。
グラフの構成はとてもシンプルです。横軸にテスト期間(テストした日数や実施したテストケース数)、縦軸に累積バグ発見数をとります。テストを進めるごとに、その時点までに見つかったバグの総数をプロットしていくと、バグ発見の推移が曲線として見えてきます。
バグ曲線は多くの場合、最初の頃に多くのバグが見つかり、少しずつ発見ペースが落ち着き、最終的にはほとんどバグが見つからなくなるという流れをたどります。
信頼度成長曲線の見方|序盤・中盤・終盤で品質状況を判断する
バグ曲線の形状は、テストの進行段階によって特徴的なパターンを示します。
序盤:急激に増える段階
テスト開始直後は、バグ発見数が急激に増加します。グラフで見ると、曲線が左下から右上に向かって急上昇する形になります。これは、比較的見つけやすいバグが多く残っているためです。この段階でバグがほとんど見つからない場合は、テストケースの設計に問題がある可能性があります。
中盤:安定した増加の段階
テストが中盤に差し掛かると、バグの発見ペースが一定になります。グラフでは、曲線の上昇の傾きがほぼ一定になり、斜め右上に向かって伸びる形になります。テストが計画通りに進んでいる証拠です。
終盤:ほぼ横ばい=「寝てきた」段階
テストの終盤になると、バグの発見数が著しく減少し、グラフの上昇が緩やかになり、ほぼ水平に近づいていきます。この状態を現場では「曲線が寝てきた」と表現します。新しいバグがほとんど見つからなくなっていることを意味し、ソフトウェアの品質が安定してきたサインです。
理想的なバグ曲線は、左下から始まり、序盤で急激に右上に上昇し、中盤で安定した上昇を示し、終盤でほぼ水平に収束するという、なだらかなS字カーブを描きます。
テストの変更でバグ曲線も変化する
バグ曲線は、上記のような単純な曲線を描くものばかりではありません。一度曲線が寝た状態に落ち着いても、新たな種類のテストを行うことで、再びバグの件数が上昇することもよくあります。
たとえば家電製品のセンサー制御ソフトウェアのバグ曲線は、下記のような形状をとることがあります。
エアコンや洗濯機などの家電製品では、複数のセンサーからの入力を処理する必要があります。センサーの値が正常範囲にある場合のテストは早期に完了しますが、異常値や境界値のテストで新たなバグが発見されることがあります。そのため、バグ曲線が一度水平に近づいた後、境界値テストや異常動作に関するテストの段階で再び上昇することがあります。最終的には、すべてのテスト観点を網羅した後に曲線が完全に水平になります。
リリースOKの目安はどう決めるか
バグ曲線を使ってリリース可否を判断するために、押さえておくべきポイントは主に2つあります。
ポイント1:曲線の後半が平らになっているか
最も分かりやすい判断基準は、「グラフの見た目」です。曲線の後半部分(右側)が十分に水平に近くなり、上昇が止まっているかどうかを確認します。例えば、「直近の1週間で見つかったバグが0〜2件程度」という状態が続いていれば、曲線が十分に収束していると判断できます。
ポイント2:潜在バグ推定値が許容範囲内か
もう一つの判断基準は、「まだ残っているバグがどれくらいあるか」の推定です。実務的には、過去の類似プロジェクトでのバグ発見数を参考にして、「だいたいこれくらいのバグが見つかるはず」という目安を設定し、その目安値に近づいているかを確認する作業を行います。
バグが見つからないときのチェックポイント
バグが期待通りに見つからない場合、いくつかの典型的な原因が考えられます。
チェックポイント1:テスト範囲が狭すぎないか
バグがなかなか見つからない、またはグラフが最初から水平に近いという場合、テスト対象の範囲が狭すぎる可能性があります。正常系のテストばかりで異常系をテストしていない、特定の機能だけを集中的にテストしているといったケースです。対処法は、テスト設計書を見直し、すべての機能や条件を網羅できているかを確認することです。
チェックポイント2:同じテストばかり繰り返していないか
同じようなテストケースばかりを実施していて、異なる観点からのテストができていないことが原因の場合があります。機能テストだけでなく、長時間動作テスト、負荷テスト、境界値テストなど、多様な観点からテストを実施しましょう。
また、人には癖があります。テストを行う人を変えることで、バグを見つけやすくなることもあります。
チェックポイント3:ログの取り忘れや記録漏れはないか
発見したバグをすべて記録していなかったり、修正済みのバグと未修正のバグを混同していたりすると、正確な曲線が描けません。どんなに小さなバグでもすべて記録することが鉄則です。毎日のテスト終了時に必ず記録を確認する習慣をつけましょう。
チェックポイント4:バグ修正が追いついていないか
バグの発見ペースに対してバグ修正が追いついていない可能性があります。「累積発見バグ数」だけでなく、「未修正バグ数」の推移も別のグラフで追跡することをお勧めします。ある機能で見つかったバグが修正されないと、その機能の他の動作を正しくテストできない場合があります。これを「ブロッキング」と言います。ブロッキングが起きるとテスト進捗が予定通りにならないこともありますので、バグ修正者とコミュニケーションを取って、早期にブロッキングを解除する必要も出てきます。
チェックポイント5:テストケースの質は十分か
バグが早期に収束してしまい不安になる場合、テストケース自体の質に問題がある可能性があります。経験豊富な先輩エンジニアにテストケースをレビューしてもらい、テスト設計のスキルを向上させることが重要です。今までの経験から、バグが出やすそうなところ、すなわちソフトウェアの品質を作りこむのが難しいところを突いたようなテストをすることも大切です。
まとめ
信頼度成長曲線(バグ曲線)は、テストの進捗状況と品質レベルを視覚的に把握するための強力なツールです。単純なグラフですが、その形状から多くの情報を読み取ることができます。
組み込みソフトウェア開発では、一度製品として出荷されると簡単には修正できないため、リリース前の品質確保が極めて重要です。バグ曲線を正しく理解し活用することで、「テストをいつ終えれば良いか」という難しい問いに対する、一つの答えを得ることができるでしょう。

