新人技術者のためのロジカル・シンキング入門(7) ―― 「ひたすら流すだけのテスト」にさよなら

冴木 元

tag: 組み込み

技術解説 2008年10月 6日

【1】納期前日に項目を作成していませんか?

 それもそのはず,Gさんがこの間までいた開発チームでは,テスト項目を用意して動作を確認することはほとんどなかったからです.

 そのチームでは,開発スケジュールがあまりにも短期間であったため,コーディングとデバッグに多くの時間を費やしていました.結局,納期を大幅にずれこんで,やっとのことで顧客にシステムを提供したため,テスト項目を用意してバグを見つける暇などなかったのです.実運用開始までの間,本番用のデータをひたすら流し込み,システムがおかしな動作をすればその都度直していたのでした.そのため仕様が明確でない部分も多くあり,目の前で起こった事象がバグなのか仕様なのかをめぐって,深夜にもめごとになったことも何度かありました.

 結局,「テスト項目」として納品したドキュメントは,納品日の前日に全員で急きょまとめ上げ,テスト日を工程上問題なさそうな日付に記したものだったのです.

 GさんはおずおずとPさんに尋ねました.「あの~,参考にしたいので,このチームでこれまで使っていたようなドキュメントを見せていただけませんか」.すると,リーダのPさんは表1を見せ,手始めにテスト項目をツリー上に分類してみるように伝えました.「項目分けを表にして整理することで,過不足なくテスト項目が整理できるから,みんなそうしている」ということです.「なるほど.これなら取りあえず何か思い付くかもしれない」.ほっとしたGさんは,与えられた時間,じっくりとテスト項目を考えてみることにしました.

  テスト・データ 期待する結果
1 動画機能ブロック・テスト 1.1 通常処理 1.1.1 Aモード Aモード入力データ 正常に描画すること
1.1.2 Bモード Bモード入力データ 正常に描画すること
1.2 エラー処理 1.2.1 CRCエラー時 エラー・データ エラー保護すること

表1 ツリー構造によるテスト・ケースの分類
ツリーを使ってテスト・ケースを分けるのはオーソドックスなやり方.分類を大きい方から小さい方へと分けていき,テストの漏れと重複がないようにしていく.問題はテスト・ケースの分け方である.

 仮に,読者のみなさんがリーダのPさんだとしたら,Gさんが提出してくるドキュメントにどのようなことを期待するでしょうか.

● ロジカル・ツリーの分け方

 Pさんが指示したようなテスト・ケースの分類はオーソドックスな方法であり,それ自体は至極まっとうなものです.とはいえ,実際にテスト・ケースを分類するとなると,経験の少ない人であればいろいろと悩むこともあるでしょう.たとえベテランと呼ばれているような人でも,初めて接するタイプのシステムであれば,なにかと工夫しなければならないことが生じることに気づくと思います.

 ここでは,組み込み開発で必要となりそうなテスト・ケースを,次の二つの点に焦点を当て,なるべく一般論(アプリケーションに依存しない)で解説します.

  • モジュール単体のテスト・ケースの考え方
  • 単体テストと結合テストのすみ分け
組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日