検索
連載

ソフトウェア技術者のためのバグ百科事典(8)バグを見つけるテストがバグってる山浦恒央の“くみこみ”な話(129)(4/4 ページ)

ソフトウェア技術者に向けて、バグに関する基礎知識をまとめていく新シリーズ「バグ百科事典」。第7回は、プログラムのバグを見つける作業である「テスト」がテーマです。テストの作業次第では逆にバグを作り込むこともあり、「テストのテストのテスト」のように無限ループに陥りかねません。

Share
Tweet
LINE
Hatena
前のページへ |       
※本記事はアフィリエイトプログラムによる収益を得ています

5.兆候と対策

 テストに関するバグの兆候と対策を以下に示します。

5.1 テストの入力値を間違える

 発生の兆候ですが、テスト結果が期待値と異なる場合は、正しい値を入力しているか、再確認しましょう。また、最後までテスト手順を実施できない場合の多くは、入力の間違いです。もちろん、プログラムのバグかもしれませんので、入力ミスでないことを確認した上で、プログラムをチェックしましょう。

 対策は、人手での入力を可能な限り自動化するとよいと思います。ただし、自動化用のプログラムにもバグがあることに注意してください。

5.2 使用するバージョンを間違える

 バージョン違いは、見つけるのが難しいかもしれません。筆者の経験では、昔はパスしたテスト項目が通らない場合、間違ったバージョンでテストしている可能性がありますね。それ以外で兆候を探すことは難しいように感じます。

 対策は、試験前に開発側が持っているプログラムと実行可能形式のファイルを比較するとよいでしょう。例えば、「バイナリファイルが一致しているか」「タイムスタンプが同じか」をチェックしましょう。

5.3 テスト判定の良否を間違える

 同じような出力結果が連続したり、疲労時にテストしたりする場合、発生しやすいと思います。もう一度、良否の判定方法が正しいか確認しましょう。また、以前のバージョンがある場合は、前のテスト結果と比較しましょう。昔から判定を間違えていた可能性があります。

 対策は、結果をダブルチェックして確認するなどのチェック作業をすると良いでしょう。また、適度の休憩も必要ですね。

5.4 機器のセットアップを間違える

 「自動車のエンジンがかからないのは、そもそもガソリンが入っていない」のように、テスト手順が最後まで実行できない場合に発生します。再度、機器の接続を疑いましょう。また、未知の事象が発生した場合も、機器のセットアップミスの可能性が大きいと思います。

 対策は、テスト手順を確立することです。ちょっとした試験の場合は、環境の立ち上げる手順などがおざなりになることがあります。手順書をきちんと作成し、テスト開始手順と停止手順を確定しましょう。

6.まとめ

 今回は、「テストの入力値を間違える」「使用するバージョンを間違える」「テスト判定の良否を間違える」「機器のセットアップを間違える」のバグを取り上げました。

 「テストの入力値を間違える」は、担当者がテスト入力を間違えた場合に発生します。期待値と一致しない場合は、入力値自体を間違えていないか確認しましょう。対策は、入力を可能な限り自動化することです。

 「使用するバージョンを間違える」は、テスト実施時に使用するプログラムのバージョンを間違えた場合に発生します。なかなか気付かない厄介な不良で、発生するとテストの信頼性が損なわれ、再テストになりますので注意が必要です。対策は、開発側のファイルとテスト側のファイルを比較し、一致するか確認しましょう。

 「テスト判定の良否を間違える」は、出力結果の判定を間違える場合に発生します。出力結果を判定する場合、ダブルチェックをおススメします。また、担当者の疲労の程度にも注意しましょう。

 「機器のセットアップを間違える」は、テストに必要な機器の準備を正しくできていない場合に発生します。正しくテストが実施できないため、すぐに見つかるでしょうが、セットアップ手順書を作成し、万全の状態でテストに臨見ましょう。

7.終わりに

 今回は、テストに関するバグを紹介しました。テストのバグは、プログラムが原因のバグではありませんが、やってしまいがちでしょう。

 読者の方によっては、紹介したケーススタディーが低レベルに感じる方もいるでしょうが、実際に起きると、「なぜ、テスト項目通りにいかないのだろう?」とものすごく悩んでしまいます。テスト項目通りに動作しない場合、プログラムのバグを疑うことも重要ですが、まずは、テストの入力値やセットアップ、バージョンにも目を向けるとバグの早期発見につながると思います。

山浦先生執筆の書籍「ソフトウェア技術者のためのバグ検出ドリル」が発売!

 2019年11月27日に、山浦恒央先生が執筆した書籍「ソフトウェア技術者のためのバグ検出ドリル」が日科技連出版から発売されました。本連載「山浦恒央の“くみこみ”な話」とTechFactoryの連載「組み込みエンジニアの現場力養成演習ドリル」をベースに、大幅加筆、改訂した内容になっています。

 内容は、「デバッグの詰将棋」で、要求仕様定義、設計、コーディング、テスト、保守の5フェーズでの「バグを埋め込んだ仕様記述やソースコード」を読んで、バグをピンポイントで見つける問題集になっています。全部で31問あり、難易度は初級から上級まで、いろいろです。興味のある方は、Amazon.comや書店でチェックしてください!

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

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


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

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


Copyright © ITmedia, Inc. All Rights Reserved.

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