組み込みソフトウェア・テスト・クライシスの「傾向と対策」 ――「品質」をつねに念頭に置きながらソフトウェアを開発する
●各モジュールの開発日程やテスト内容を事前に調整する
昨今の開発では,ソフトウェアが複雑化・大規模化しているため,モジュール化が進んでいます.各モジュール(サブモジュール)はそれぞれ異なる方針で開発されている場合が少なくありません.例えば,あるモジュールは新規開発,別のモジュールはほとんど再利用,さらに別のモジュールは部分的に再利用といったことがよくあります.この場合,モジュールごとのソフトウェアの品質はまちまちであり,それらを組み合わせた結果のシステムの品質は,モジュールの中でいちばん品質の悪いソフトウェアに依存することになります.
システム全体の品質を検証するにはどうすればよいのでしょうか.実際の製品開発では,以下のような問題が発生します.
- ソフトウェア・ハードウェア間を含むモジュール間のインターフェース仕様の不整合により,システムがハングアップする
- モジュール仕様の誤解により,システム異常が発生する
- モジュール間の機能導入時期が合わず,一部の機能のテストが始められない
本来は開発計画を調整して,すべてのモジュール作成について同期を取り,テスト担当者の活動を効率的に行えるようにするべきですが,ソフトウェアの仕様に変更が生じたり,各モジュールの開発リソースに偏りがあるなどの理由から,うまく調整できなくなってしまうことがあります.
そこで,開発の初期段階でシステム・テストの計画について調整し,テストの開始時期やテスト内容について確認しておく必要があります.特にテスト内容,つまりシステム・テストにおける各モジュールの品質レベルを確認しておかないと,実際にテストが始まってから報告される欠陥情報が増大し,テスト担当者やソフトウェア開発者から,「こんな品質ではテストにならない」とか,「そんなテストをしてもらっても,実装スケジュールに合わない」といった声が上がることになります.これでは,開発チーム全体の士気が下がってしまいます.
テスト戦略を検討する際には,各モジュールを開発しているソフトウェア開発者が行うべきテストの範囲とその内容を明確にして,あらかじめ全体のテスト計画との整合をとるようにします.テスト内容については,元にする仕様書や設計資料を明確にして,ソフトウェア開発者とテスト担当者の間で事前に調整しておきます.
また,発生した欠陥の対処方法をソフトウェア開発者とテスト担当者の双方が理解していれば,効率的な役割分担により,計画どおりに十分なテストを実施できることでしょう(図7).
〔図7〕 テスト戦略の例
それぞれの機能に対するテスト工程(テスト設計,テスト実装,テスト)の作業量を見積もり,検査対象の開発スケジュールと整合させながらテストの計画を立てる.