テストとバグの間の数学的/統計的関係?

プロジェクトマネージャーとして、私は既存の方法の単体テストの開発に、より高い時間を投資するよう、上級管理職に説得したいと思います。私の理解は、単体テストは意味のある機能/統合テストとfunc/intへの投資のための基礎/前提です。単体テストの合理的な範囲なしのテストは賢明ではないでしょう。

基本的に私たちの状況は、開発の数年後には、単体テスト(テストでカバーされたコードの量によって測定された)のほぼ0%でした。

開発者をユニットテストに強制してから2ヵ月後、新しいメソッドが導入されたとき、またはメソッドが変更されたときにのみユニットテストが書かれます。現在の作業率では、単体テストで合理的な%の方法をカバーするには年月がかかります。

隠れた回帰バグ(つまり、ユニットテストではなくエンドユーザによって検出されたバグ)とユニットテストカバレッジの導入確率との関係を示すことができる出版/グラフ/研究/ケーススタディがありますか?

私は単体テストのカバレッジが悪い評価基準であることを知っていますが、現時点では経営幹部が理解しやすいですが、要件との統合/機能テストに合致するすべてのユースケース/必要な機能をカバーするドキュメントはほとんどありません。

ヒント/アドバイスありがとうございました。

ベストアンサー

ユニットテストを書くことによる定量化可能な利益を保証する物理学の法則はありません。実際、品質が悪化するような単体テストも可能です!文献で証拠を見つけようとするのではなく、次のような三つのアプローチを試みるかもしれません。

  1. 問題が解決され、開発者が問題に取り組む必要があるという合意を得てください。管理者がそれに同意しない場合は、新しい仕事を探すことを検討してください。
  2. 単体テストがプロのソフトウェア開発者の間では一般的な方法であるという証拠を示します。
    (これは難しいことではありません)。これは一般的な行為なので、試してみるのは妥当なことです。
  3. 品質が改善しているかどうかを判断するために監視できる品質指標を設定します。

品質が向上しないようであれば、何か他のことを試す必要があるかもしれません。単体テストを採用する前に、何か別のことを行う必要があるかもしれません。しかし、何か他のことを試してみると、品質が改善しているかどうかを判断するために監視できるいくつかの品質指標にはまだ合意する必要があります。

単体テストが理由であることを証明する品質が向上していることを証明するよりも、品質が良くなっていることを示す方が簡単です。かつて私はより厳格なテストプロセスを追加した後、品質が改善された会社で働いていました。新しいテストプロセスによって、改善率や品質が改善したのかどうかは明らかではありませんでした。なぜなら、変化率を遅くしたからです。ある意味では、それは問題ではありませんでした。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です