ソフトウェア開発とプロジェクト管理
仕様は「温度が85 ℃以上なら警告を出す」だが、ファームウェアには誤って「if (t > 85)」と書かれていた。温度 t は整数とする。次のテストの値のうち、この誤りを見つけられるものはどれか。
- A84 ℃
- B85 ℃
- C86 ℃
答えと解説を見る
正解:B. 85 ℃
仕様では85 ℃で警告を出すべきですが、t > 85 は t = 85 のとき偽になるので、85 ℃を与えたときだけ仕様と実装の結果が食い違います。84 ℃ではどちらも警告なし、86 ℃ではどちらも警告ありとなり、誤りは見えません。このように境目そのものの値を含めて試すのが境界値分析の考え方です。比較演算子の取り違えは、ファームウェアのしきい値の判定でよく起こる誤りです。
- A. 仕様でも実装でも警告を出さないので、結果が一致して誤りは見えません。
- B. 正しい。仕様では警告を出し、実装では出さないので、誤りが見つかります。
- C. 仕様でも実装でも警告を出すので、結果が一致して誤りは見えません。