先日,カバレッジ基準2 に書いた以下のカバレッジ基準。
①命令網羅:ステートメント・カバレッジ(C0)
②分岐網羅:ブランチ・カバレッジ(C1)
③条件網羅:コンディション・カバレッジ
④分岐網羅・条件網羅:ブランチ・コンディション・カバレッジ
⑤複数条件網羅:マルチコンディション・カバレッジ(C2)
⑥パスカバレッジ
あれからも色々と見ていましたが,
書いた内容と同じ基準を定義している記事(論文?)を見つける事ができました。
読んでてしっくり来ました。
また,とある記事でループカバレッジというのを見ましたが,パスカバレッジとの違いが良く見えませんでした…
あと,McCabeのサイクロマチック複雑度(Cyclomatic Complexity)
10以下:低い複雑度で良い構造
20以下:平均的な複雑度
30超え:リスクの高い構造。構造に疑問がある。
50超え:アプリケーションのテストが不可能
75超え:いかなる変更も誤修正を生む原因となりうる。
こんなところだと思います。
定量評価に強くない我が現場。
ソロソロ仕事で活用できる資料にまとめてみようかと考えた今日この頃です。
そういえば,この間改めて,保守領域のソースコードのサイクロマチック複雑度を幾つか見てたところ,フレームワーク部分はすべて30未満ではありましたが,業務アプリのソースコードで,60くらいのものがありましたね…
もう,5年以上問題なく商用稼働しているので騒ぎ立てる必要はありませんが,修正する際は要注意ということですね。
というより,新規開発時の担当者にしかそのソースは触らせないのがPMとしての正しい判断か…