信頼度成長曲線がS字になる理由
信頼度成長曲線はなぜかS字で書きますよね。なんでS字になるのか、その根拠を考えたことはあるでしょうか。実体験では、S字になることもあればそうでもない、というのが感覚値です。実例も交えながらS字になる理由を考えてみようと思います。
理論1.人口増加と同じだから
↑の説明にあるように、信頼度成長曲線のモデルとして使われるロジスティック曲線は、人口増加の時系列変化を表現するために考案されたモデルとのことです。欠陥の発生がもし人口増加と同じ特性を持つのであれば、これが正しいといえるでしょう。そもそもなぜ人口が最初ゆっくりと増加するか、ですが、↓に書かれているように環境制約がない場合は指数関数的に人口増加が起こるから、ですね。その伸びが、環境制約によって止まるという考えです。
さて、この考え方は欠陥の発生にも適用できるのでしょうか。すでに見つかった欠陥の母数が増えていくと新たに見つかる欠陥は増えるのでしょうか。直感的には正しくなさそうですね。ただ、もしテストの進め方がすでに発生した欠陥をベースに派生させていくような特殊な手法をとっていた場合は、ロジスティック曲線に従うかもしれません。
理論2.年齢と死亡率の関係と同じだから
これも理論1と似ていますが、モデルの一つであるゴンペルツ曲線が表現しようとしているのが年齢と死亡率の関係だからです。こちらも人口増加と似ていますが、おそらく年齢とともに死亡要因が増加していき、100%で頭打ちになるから寝ていく、ということでしょう。
では、テストの文脈で、初期は欠陥の発見要因が少なくて時間が立つと増えてくる、というロジックが成り立つでしょうか。個人的には正直怪しいと思います。
実例1.初期はテスターの気づきが期待できないから
特定の条件下では一見正しそうですし、事実この要因でS字になるケースを見たこともあります。では、熟練のテスターだったらS字にならないのでしょうか。ちょっと文脈がずれるかもしれませんが、正式なテスト実行フェーズの前にトライアルでテスト実行をしたケースだと、S字にならずに指数型になったことがありました。おそらくいわゆる「立ち上がり」が早かったのだと思われます。
実例2.初期は基本的なテストケースを実行するから
初期は基本的なテストケースを実行するから欠陥が見つかりにくい、という論理です。こちらも一見正しそうですね。これが成立する条件もあって、例えば、基本的なテストケース相当を別の人がすでにやっているケースです。こういうケースは、本来は正しくモデル化できないので、正しくなるようにデータの調整が必要になると思います。
というわけで、いろいろ書きましたが、実はS字になる理由って明確じゃないんですよね。正しくS字なるなら良いですが、外乱のせいでS字になるならそれを取り除かなければならないです。