写真1●JaSST '08 Tokyoの基調講演に登場したCapers Jones氏
写真1●JaSST '08 Tokyoの基調講演に登場したCapers Jones氏
[画像のクリックで拡大表示]
写真2●インスペクションをせずにソフトウエア開発を先に進めると,運用の段階で問題が一気に噴出する
写真2●インスペクションをせずにソフトウエア開発を先に進めると,運用の段階で問題が一気に噴出する
[画像のクリックで拡大表示]
写真3●それぞれの開発ステップできちんとインスペクションをすれば,それぞれのステップで問題を解決できる
写真3●それぞれの開発ステップできちんとインスペクションをすれば,それぞれのステップで問題を解決できる
[画像のクリックで拡大表示]

 ソフトウエア開発プロジェクトの様々な要素に関する定量化手法を解説した著書「Applied Software Measurement:Assuring Productivity and Quality」(邦題「ソフトウェア開発の定量化手法」)で知られる,元米IBMのCapers Jones氏が1月30日,ソフトウエア・テスト技術者向けイベント「JaSST '08 Tokyo」の基調講演に登壇した(写真1)。Jones氏は現在,Capers Jones & Associatesの代表を務めている。

 講演のテーマは「Software Quarity 2008:A Survey of the State of the Art」。定量化したデータを提示しながら,ソフトウエア品質を上げる方法を紹介し,2008年において注目すべき分野を挙げた。

テスト・ケースの誤りが見過ごされやすい

 講演では,まず米国の10の業界におけるソフトウエアが原因のトラブルの例を挙げ,社会においてソフトウエアが担う役割がますます重要になっていることを示した。また,ビジネス上のトラブルが起こると,ソフトウエアが原因と見なされてしまうことが多い現状を指摘。この現状をJones氏は,「電機,機械などのエンジニアに比べると,ソフトウエア・エンジニアは経営者の信頼を得られていない」と表現する。さらに,ソフトウエアの品質向上はあらゆる産業で重大な問題になっていると指摘した。

 Jones氏は,このように現状を指摘してから,具体例を挙げて改善策を提示していった。まず,現状のソフトウエア開発プロセスの中で不具合を発生させてしまう要素として,要求,設計,コーディング,文書作成,エラー修正ミス,テスト・プラン,テスト・ケースの八つのポイントを挙げた。中でも,同氏がIBMでソフトウエア開発に従事していた経験から,テスト・ケースの誤りが見過ごされやすいことを指摘した。当時のIBMでは「テスト・ケースの3分の1に誤りがあった」そうだ。

 加えて,不具合はソフトウエア全体に散在するものではなく,特定の部分に集中する傾向があると指摘,そのような部分をいち早く検知することが大切だと説いた。同氏によると,IBMの階層型データベース管理システム「IMS(Information Management System)」から見つかった不具合のうち,70%が特定の部分に集中していたということもあったそうだ。同氏は,このようにエラーを多く引き起こす部分は大体の場合修正不可能で,作り直すことになるとも付け加えた。

先のステップに進む前に検査する

 次に,Jones氏が米国で調査した結果から,要求段階で発生するミスが最も対応しにくいという事実を指摘した。同氏によると,「この時点でのミスはテストでも検知不能」で,ソフトウエアの品質改善はテストだけで解決するものではないことを示した。

 そして,バグを効率よく検知する方法として,ソフトウエア開発に適した形に修正した「シックスシグマ」(品質管理の手法。主に製造業で利用されている)の導入や,高品質なソフトウエア部品の再利用などに加えて,「インスペクション(inspection:点検)」を挙げた。要求段階から運用に至るまで,それぞれのステップをその都度点検するという作業を指す。点検をせずに先のステップに進んでいくと,あらゆる問題が運用の段階で浮上し,対応に苦慮することになるが(写真2),それぞれのステップで点検すれば,問題はそれぞれのステップで解決できる(写真3)と,同氏は説明する。

 Jones氏の調査によると,点検をおろそかにしている企業では,不具合を発見できる確率が30~50%であるのに対し,適切に点検をしている企業ではこの値が70~90%にまで上がるという。さらに,CMMI(能力成熟度モデル統合:Capability Maturity Model Integration)などの開発プロセスを評価するガイドラインを導入し,きちんとテストをする企業では最高で99.99%にまでなるという。

品質の確保がモラルを高める

 次にJones氏は,2008年にソフトウエア品質管理の世界で調査が必要なテーマをいくつか挙げた。例えば,テスト・プランやテスト・ケースのミス,アジャイル開発プロセスやエクストリーム・プログラミングを採用したプロジェクトにおけるソフトウエアの品質,オブジェクト指向言語で作成したソフトウエアの品質(氏はオブジェクト指向の学習曲線は明らかに急であり,現状ではソフトウエアの品質を下げうるものと述べている),Webアプリケーションの品質などの調査が必要だとした。

 最後に同氏は,高品質を確保していくことは,開発スケジュールや開発生産性によい影響をもたらし,顧客と開発チームのモラルを高く保つと強調して講演を終えた。