閉括のバグは、範囲の考察ミスか、不等号の実装ミスの可能性があります。仕様書に条件式や範囲を表す記述がある場合、境界値のバグが存在する可能性が大です。注意深く実装し、気になる箇所は仕様定義者と相談しましょう。
境界が左右に移動する場合、データ設定値、計算式のミスかもしれません。出力結果を確認しながら、どこにバグがあるか考えましょう。
境界抜けは、実装抜けの可能性があります。仕様とコードの対応付けを確認するといいでしょう。
余分な境界は、場合によっては実行結果が同じになるため、見つけるのが難しいかもしれません。冷静に確認しましょう。
プログラマーに誤解を与えない仕様記述を書く必要があります。また、不等号や日本語の読み間違いが発生しないように不等号と日本語の両方を記載するとよいでしょう。これにより、仕様と実装が同じ表記となり、閉括のバグを防げます。
同値分割・境界値分析で、境界値のバグを見つけましょう。これにより、左右の境界、境界抜けを防げます。また、プログラム作成時ならば、プログラムを作成しながらテスト項目をその都度実行しましょう。
余分な境界が発生しないように、コードを見直しましょう。また、余分と感じるコードがあれば、その段階で取り除くことをお勧めします。そうしないと、そのままコードが残り、余分な境界が出現する可能性がありますし、出荷直前のタイミングでは怖くて削除できず、そのまま「居座る」ことになります。
下記に、今回のまとめを示します。
今回は、ソフトウェア開発の不良の常連であり、圧倒的に多いバグである境界値のバグを取り上げました。今回の例題以外にも、さまざまな箇所に境界値は存在しますので、注意深く成果物を作成してください。
境界値に関係するバグは、前のシリーズのバグ検出ドリルや、書籍版の『ソフトウェア技術者のためのバグ検出ドリル(日科技連)』でも取り上げましたので、ご参照いただければと思います。
[1]実践的プログラムテスト入門((著)ボーリス・バイザー、(翻訳)小野間彰、山浦恒央、1997年、日経BP)
[2]ソフトウェアテスト技法((著)ボーリス・バイザー、(翻訳)小野間彰、山浦恒央、1994年、日経BP)
[3]ソフトウェアテスト教科書 JSTQB Foundation 第3版(大西建児、勝亦匡秀、佐々木方規ほか、2011年、翔泳社)
山浦恒央先生が執筆した書籍「ソフトウェア技術者のためのバグ検出ドリル」が日科技連出版から発売中です。本連載「山浦恒央の“くみこみ”な話」とTechFactoryの連載「組み込みエンジニアの現場力養成演習ドリル」をベースに、大幅加筆、改訂した内容になっています。
内容は、「デバッグの詰将棋」で、要求仕様定義、設計、コーディング、テスト、保守の5フェーズでの「バグを埋め込んだ仕様記述やソースコード」を読んで、バグをピンポイントで見つける問題集になっています。全部で31問あり、難易度は初級から上級まで、いろいろです。興味のある方は、Amazon.comや書店でチェックしてください!
東海大学 大学院 組込み技術研究科 非常勤講師(工学博士)
Copyright © ITmedia, Inc. All Rights Reserved.