検索
連載

バグ検出ドリル(21)「三角形判定」のテスト項目を設計できますか【解答編】山浦恒央の“くみこみ”な話(121)(4/4 ページ)

バグは至るところに、しかも堂々と潜んでおり、自信満々なプログラマーほど、目の前のバグに気付かないものです。「バグ検出ドリル」の第20回と第21回は、「三角形を判定」するプログラムのテスト項目設計がテーマです。前回の出題編から、今回は解答編になります。

Share
Tweet
LINE
Hatena
前のページへ |       

5.4 2等辺三角形のメッセージが間違っている

 No.11のテスト項目をご覧ください。二等辺三角形のメッセージが漢字の「二」になっています。仕様を確認してみましょう。

 「3辺の値のうち、2辺が等しい場合は、画面に「2等辺三角形」と出力する。」

 そのため、画面には「2等辺三角形」と表示してほしい所が、「二等辺三角形」となっており、仕様と食い違っています。

 このバグは、仕様とプログラムのどちらが間違っているか判断するのが迷います。今回の問題では、正三角形の場合は、「三」と漢字で表記していますが、「2等辺」は数値となっており、一貫性がありません。このような場合は、仕様定義者に確認を取り、判断する必要がありそうです。

 今回は、仕様に合わせるとして、「2等辺三角形」が正しいこととしました。

 メッセージの間違いは、軽微なバグなのですが、ユーザーに「本当に真面目に作っているのか?」と不信感を与えることがあります。特に、ユーザーインタフェースには、注意が必要です。筆者の経験上、メッセージやレイアウトなどは、見る人の嗜好により、何回も修正が入ることが多く、時間を取られます。その場合、外見に時間を浪費し中身がボロボロになりかねません。

5.5 コメントのバグ

 テストで見つかるバグではありませんが、プログラムを眺めていると、コメントにおかしい所があります。main関数のコメントをリスト4に示します。

/***********************
 * 関数名:  main
 * 機能  :	(1)辺1〜3を初期化する。
		(2)辺1〜3の値をコンソールからそれぞれ取得する。
		(3)三角形を判定する。
 * 引数  :	辺の値
 * 戻り値:	なし
***********************/
リスト4 三角形判定プログラムの一部を抜粋

 リスト4が、main関数のコメントです。引数がないにもかかわらず、引数があることになっています。また、戻り値もなしになっています。

 これは、筆者がコメントを作成している時の記述ミスです。コメントは、プログラムを見直す際のヒントになるのですが、コメント自体にもバグがあることに注意してください。コメントのバグは、機能追加や変更を実施する保守フェーズで「誤解の素」になります。

6.自己採点シート

 今回の自己採点シートを示します。

問題 項目 配点(点)
三角形判定プログラム 問題に挑戦した 25
自分のテスト項目とテスト項目例を比較した 25
半角・全角のどちらを入力するべきか悩んだ 5
テスト項目から、「0」、「空白」がエラーにならないバグを検出した 15
テスト項目から、「三角形の成立条件」が機能しないバグを検出した 15
テスト項目から、2等辺三角形のメッセージが仕様と一致しないことを検出した 10
main関数のコメントのバグを見つけた 5
その他のバグを見つけた 1件当たり+5
表3 自己採点シート

7.終わりに

 テストには、「検証」という「後戻りの作業」が多くあります。今回は、前回の三角形判定問題のテスト項目とバグを示しました。

 テスト項目や修正方法が皆さんと完全に同じになることはないと思います。また、筆者が想定できなかったバグもあるでしょう。今回の問題を題材として、自分なりの考察をしていただければと思います。

 この問題は、グレンフォード・マイヤーズが書いた「ソフトウェア・テストの技法」の三角形判定問題を参考にしています(参考文献[1])。この問題は、テストの例題によく登場する問題です。一読をお薦めします。

参考文献

[1]ソフトウェア・テストの技法 第2版(グレンフォード・J・マイヤーズ 他、2006年、近代科学社)

【 筆者紹介 】
山浦 恒央(やまうら つねお)

東海大学 大学院 組込み技術研究科 非常勤講師(工学博士)


1977年、日立ソフトウェアエンジニアリングに入社、2006年より、東海大学情報理工学部ソフトウェア開発工学科助教授、2007年より、同大学大学院組込み技術研究科准教授、2016年より非常勤講師。

主な著書・訳書は、「Advances in Computers」 (Academic Press社、共著)、「ピープルウエア 第2版」「ソフトウェアテスト技法」「実践的プログラムテスト入門」「デスマーチ 第2版」「ソフトウエア開発プロフェッショナル」(以上、日経BP社、共訳)、「ソフトウエア開発 55の真実と10のウソ」「初めて学ぶソフトウエアメトリクス」(以上、日経BP社、翻訳)。


Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る