[画像のクリックで拡大表示]

 ソフトウエア開発における見積もりの定量化の先駆者として知られる、ケーパーズ・ジョーンズ氏が先ごろ来日。ソフトウェアテスト技術振興協会(ASTER)が「ソフトウェアテストシンポジウム(JaSST) 08 Tokyo」のキーノート・スピーカーとして招へいした。JaSSTでは、「Software Quality in 2008」と題し、ソフトウエアの品質について講演。ジョーンズ氏にソフトウエア品質の問題とその原因を聞いた。(聞き手は森側真一=日経コンピュータ)

――ソフトウエアの品質の現状をどうとらえているのでしょうか。

 いま全世界的にソフトウエアの品質が悪い状況といえます。ハードウエアの品質レベルと比べ10%も欠陥の除去率が低く85%程度です。日本は10年前には欠陥の除去率が93%で、欧米諸国と比べ高かった。しかしもはやソフトウエア開発において世界のリーダーではないとみています。

――ソフトウエアの品質を高める能力が落ちているということでしょうか。

 10年前と比べて、ソフトウエアの規模が非常に大きくなっているのが、問題です。品質を高める能力が上がるスピード以上に、品質の確保が難しくなるのが速いのです。Windows XPと比べてWindows Vistaのほうがバグが多いのが良い例です。

――ではどうすれば品質を確保できるでしょうか。

 品質を高めるための様々な手法があります。それを導入するのが先決です。例えば、「フォーマルデザインインスペクション」や「フォーマルコードインペクション」などです。インスペクションとは、開発プロセス上の成果物に対して一定の判定基準で内容を精査することです。マイクロソフトをはじめ、ボーイングやフォードなど米国の大企業は、組み込みソフトの開発にこれらの手法を採用しています。これら効率的な手法を使わない企業は、品質が落ちているといえます。

――なぜ品質を高めるための各種手法を、企業は採用していないのでしょうか。

 企業は、品質を高める活動が、納期の短縮やトータルのコスト抑制につながるということを理解していないからでしょう。テストやインスペクションをはじめ、品質を高めるための活動にコストがかかると考えられているようですが、それは違います。テストだけに重きを置けば、確かに高くつきます。そこでインスペクションの併用が重要になります。米IBMもインスペクションを重要視しています。

――インスペクションを併用するとどの程度、良くなるのでしょうか。

 コードのインスペクションは、他の手法と比べ、最もバグの除去効果が高いのです。統計データの中間値で60%となっています。単体テストが25%、システム・テストが50%といったところです。テストやインスペクション、レビューは上流から下流までの各フェーズで実施するのが理想です。実際、ボーイングやインドのソフトウエア開発会社では、実施しています。

――これらの手法を使っていくには、何が必要でしょうか。

 インスペクションのための解説書があればいいでしょう。本を見て学べば、実施できるほど簡単なことなのです。開発プロセスや組織の変化も必要ありません。企業がそれをやる気になるかどうかが、一番大きなハードルです。企業の経営者が意識を変えていかなければなりません。