組み込みソフトウェア・テスト・クライシスの「傾向と対策」 ――「品質」をつねに念頭に置きながらソフトウェアを開発する
●要求からテスト項目を抽出して確認する「統合テスト」
開発を行うにあたって重要なのが,要求の明文化であることは言うまでもありません.ソフトウェア・テストでは,明文化された要求からテスト項目を抽出します.要求の内容からテスト項目を抽出し,品質の確認を行うことを「統合テスト」と呼びます.
要求が頻繁に変更される場合,変更のたびにテスト項目の追加や変更が発生するため,構成管理が重要になります.要求変更への対応とテストが同時に進行する場合,テスト対象のソフトウェアに対して,いつ,どの要求が実装されているのかを確認し,その要求が実現できているかどうかをテストしているからです.また,テストの重複による開発効率の低下を防止するため,テスト内容とテスト結果も構成管理の対象とします.
ソフトウェア開発者は,関係者の合意のもとで対象を特定して開発し,合意された内容に従ってテストを行うことでその品質を確保します.具体的には,要求内容を大項目からブレークダウンし,その要求の構成要素がわかるようにします(表3).次に,要求の品質特性を分析し,要求された機能や制約のソフトウェアがどうあるべきかを品質の視点から考えます.あるべきソフトウェアの特性を測定する手段を明確にすると,検証方法が明らかになります.そこで要求や性能仕様からテストする数値を明らかにして,テスト時にその数値をどう扱うかを検討します.ここまでがテスト設計です.
テスト実装では,その数値を実際のシステムに当てはめ,テスト項目を作成します.テスト実装が終了すると,テスト仕様書ができ上がります.
〔表3〕テストの目的をブレークダウンした例
上位要求 | 原稿を読み込む (読み込んだ原稿画像が原稿のとおりである) |
サブ別要求1 | 要求された走査速度で読み込む (走査速度が要求どおり) |
サブ別要求2 | 動作仕様どおりにモータを制御する (モータ制御プロファイルが要求どおり) |
サブ別要求3 |
モータは動作開始前にホールドされていること |
サブ別要求4 | モータのホールド時間は Tms±5ms ![]() |