質問: condition()) /*何らかの処理*/ else /*何らかの処理*/ } } ``` 「C1の定義としてはどういう試験項目になるのか」と「現場の現実解としての試験項目の上げ方」を教えてください。 ### 補足 ・C1カバレッジ100%は、おそらく掛け声だけ(になると思う)なので回答の際はカバレッジはあまり気になさらないでください。 ・単体試験の前任者には「担当者のやりやすいように試験項目をつくってよい」と言われているため、 最悪適当に試験項目を作ることはできます。コードが与えられたときの試験項目の上げ方にルールがないと気持ち悪いので質問しました。
回答: > > 「C1の定義としてはどういう試験項目になるのか」と「現場の現実解としての試験項目の上げ方」を教えてください。 > > > カバレッジ100%と言う時点で、厳密に計測する気がないのは明らかなので、現実解という観点で。 1. まずカバレッジ100%であることを説明する、テストの役には立たない資料を作成します。ここでは、ソースコード中の if 文の分岐がいくつあるので、テスト項目をいくつ設けました、と「なんとなく数字でわかった気になる」「上司うけする」資料にします。 2. 実際のテストは「テスターとしての経験を動員して」バグを見つけられるような、カバレッジとか気にせず、ソースコードのホットスポットとなる部分を頑張ってテストします。 残念なことに、1. の作業が単純に増えるだけで、テストがよりよくなったりしませんが、仕方ないと諦めます。 「カバレッジ100%なのに、なぜこんなに品質が悪いんだ?」みたいなイチャモンをつけられやすくなるので、1. の作業時間は限界まで小さくして、カバレッジ100%を達成するためにテストの時間が余分にかかる、と説明しつつ、2.の作業時間を増やして下さい。