組み込みソフトウェア・テスト・クライシスの「傾向と対策」 ――「品質」をつねに念頭に置きながらソフトウェアを開発する
●周辺機能との整合性を保証するのもソフト開発者の責任
開発工程を守り,ソフトウェア開発者による品質確認を行っているにもかかわらず,リリース後のソフトウェアに欠陥が見つかってしまうことはよくあります.テストして品質が確認されているはずなのに,どうしてすべての欠陥を取り除けないのでしょうか.テスト担当者がテストしている内容と,ソフトウェア開発者がテストしている内容の差に着目すると,その内容がまったく異なることに気づくはずです.
例えば,ソフトウェア開発者が自分の開発した機能についてのみ,完全に確認したとしても,周囲の別のソフトウェアがそのソフトウェアを利用する際の制約を無視した場合には,全体の挙動がおかしくなってしまいます.ソフトウェア・テストでは,結合テストによってこのような欠陥をチェックします.結合テストの段階で,ひとかたまりになったソフトウェアがどのように動作するのか,その動作をどのように保証するのかは,ソフトウェア開発者の責任となります.
ソフトウェア開発者によるテストにおいて,思いもかけないハングアップが起こることがあります.その原因の多くはソフトウェア開発者のシステム仕様に対する理解不足です.こうした問題は,ソフトウェア開発者の開発対象が狭い範囲に限定されており,システム全体を見渡すことができないために起こります.例えば,直接関与している部分以外のモジュールに変更があった場合,その変更内容を知らなくてもしごとは進んでいきます.このときの問題は,結合テストの段階にならないと発見できないわけです.
ソフトウェア開発者は最新の仕様を理解しないまま自分のソフトウェアをテストするので,そのテストにパスしても,システム全体でテストしたときに問題が生じる可能性があります.ソフトウェア開発者はシステム仕様に関心を持ち,自分の担当部分がシステムの中でどのような役割を果たすのか,何を期待されているのかということを理解するように心がけなければなりません.