見出し画像

バグは運用中にどれだけ出るの?(ソフトウェア分析)

ソフトウェアは開発中にバグが出るのは当然です(断言)。しかしリリース後の運用中にバグが出るのはインシデント、ときには事件になります。でも運用中にもバグは出ます。それではどれくらいのバグが運用中に出るのでしょうか。これは10万行のプログラムで中央値で1個のバグが出ます。このバグの相場観が大事になります。ここではこの相場観を見ていくことにします。

運用中のバグはどれくらい?

ソフトウェアシステムをリリースした後の運用中にバグはどれくらい出るのでしょうか。どれくらいバグを出してしまうのでしょうか。

運用中のバグはインシデント

ソフトウェアシステム・製品をリリースして、運用に入ったときに出るバグはインシデントになります。基本的に出てはいけないものです。

運用中にバグが出ると、その対応をする必要があります。忙しいのにその対応に追われ、さらに忙しくなります。

一方、開発中に出るバグはインシデントではありません。日常です。普通です。デバッグする時間もあらかじめ計画しています。それがテストという名目であるかもしれませんがデバッグ工程は存在します。
だから開発中のバグは気にしないようにしましょう。・・・少しは気にしましょう。

でも運用中のバグはそうではありません。インシデントです。事案です。事故です。いや事件かもしれません。デバッグよりも先に犯人探しが始まるかもしれません。・・・その前に自首しましょう。

(考察)バグは機能面だけでいいのか

ここでバグと言っているのは機能面だけに注目しています。つまりソフトウェア品質には以下のSQuaRE (Systems and software engineering-Systems and software Quality)のように色々あります。

JIS 25010:2013 (ISO/IEC 25010:2011)
SQuaRE Systems and software engineering-Systems and software Quality
製品品質の特性

この他にも利用時の品質特性やデータ品質もSQuaREで定義されています。

ここではこれらの品質特性にうち、機能適合性に絞って、紹介しています。でも他の品質特性も重要で最近では特に、利用時品質やデータ品質が注目されています。

バグはどれくらい出るのか

IPAが公開している「ソフトウェア開発データ白書」や「ソフトウェア開発分析データ集」には、リリース後のバグ密度のデータがあります。このデータは以下のものに掲載されています。

出典:IPA ソフトウェア開発分析データ集2022
(ちなみに私がこのデータ集を担当していました。って宣伝?)

表2-1-4 SLOC規模別発生不具合密度(新規開発:全年度) 件/KSLOC

表2-1-4によれば、1 KSLOC(1000行のソースコード行数)当たり、中央値で0.010件、平均値で0.100件のバグがリリース後に出てしまいます。つまり中央値では10万行で1件、平均値で1万行に1件のバグが出ます。

中央値と平均値が大幅な差があるのは、平均値がものすごくバグを出しているソフトウェアシステムに足を引っ張られているからです。このため、この手の統計では中央値の方が全体を現す指標になります。
つまり「10万行に1件」という相場感になります。

75%地点(P75)の値は0.069件/KSLOCなので、10万行につき7件以上のバグが出るのは25%しかありませんので、これは何らかの異常状態になっています。対策が必要でしょう。
つまり「10万行に7件以上は異常」という相場観になります。

この相場観の範囲に入っていれば、顧客や上司に堂々と主張できます。IPAの分析データ集の相場と同じくらいだと主張できます。
もし範囲外だった場合は、IPAの分析データ集の存在を言わないでおきましょう。それが身のためかもしれません。

(考察)バグは出る、バグゼロは究極の目的ではない

上記の統計を見てもわかるように、運用中にもバグは出ます。バグゼロは究極の目的ではありません。

私たちの目的はユーザの利用価値を高めることです。バグがあっても価値があればいいのです。逆にバグゼロでも価値がないものは駄目です。

これは決して言い訳ではありません。でもバグが多い時にこれを言わないのが大人です。以上です。

ソフトウェア開発のデータ引用元:ソフトウェア開発分析データ集2022 | 社会・産業のデジタル変革 | IPA 独立行政法人 情報処理推進機構
# 私が担当していましたので、上記に関する質問やコメントなどもここで受け付けています。

いいなと思ったら応援しよう!

五味弘
よろしければサポートをお願いします!