Loading
|
@IT > @IT ソフトウェアテスト・ミーティング レポート > マイクロソフト |
|
品質向上の意識を高めるツールの活用法 ◆ 多層防御という考え方
ソフトウェアの品質が厳しく問われているのは、大規模な企業システムに限らない。むしろ世界中で当たり前に使われているソフトこそ、品質事故が起きたらひとたまりもない。ベンダにとって、その品質管理のレベルは企業の生命線ともいえる。こうした意味で、OSやデスクトップアプリケーションでデファクトとなったマイクロソフトが、品質管理をどれだけ重要視しているかが自ずと見えてくる。 マイクロソフトの岩出智行氏は「当社は常に品質向上へのプレッシャーにさらされている。そのため開発者やテスト担当者だけでなく、全社的な取り組みとして品質向上にまい進しなければならない企業文化がある」と述べる。 そんな同社が品質向上のためのコンセプトとして掲げているのが「多層防御」(Defence in depth)という考え方。具体的には、「製品開発の初期段階から、多方面にわたって品質向上を実現するための施策を打つ」というものだ。その内容は大きく分けると3つある。1つは開発プロセスの中に品質向上作業を取り込んでしまうこと。次に、ツールを活用してテスト消化率を向上させること。最後に、こうしたノウハウを蓄積・共有し、予想されるリスクに対し、先手を打てるようにすることだ。 ◆ 品質向上作業を取り込んだMSFとは エンタープライズ、コンシューマを問わず、あらゆる場面で利用されているマイクロソフト製品。当然、バグが少ないということだけで「高品質」を謳(うた)うわけにはいかない。「バグがなくて当たり前」だからだ。「信頼性、堅牢性はもちろんだが、製品のライフサイクルを考えると、利用者からのフィードバックを反映できるような高い柔軟性も求められる。考えられる限りの条件をすべて満たすことが“高品質なソフト”であるといえる」(岩出氏)。 そんな同社が製品開発に適用しているのが、「Microsoft Solutions Framework v3.0」(MSF)と呼ばれる開発プロセスのフレームワーク。約10年前にv1.0が誕生し、年々進化を続けてきた同社独自の方法論だ。特長としては、「プロセスモデル」と「チームモデル」という2つのモデルを定義していること。「プロセスモデルとは、いわゆる開発プロジェクトにおける要件定義から開発完了までの時間軸を定義したもの。一方チームモデルとは、プログラムマネジメント、開発、テスト、リリースマネジメント、ユーザーエクスペリエンス、プロダクトマネジメントという6つの役割を定義し、それぞれの役割がプロセス各フェイズにおいてどのような責務を持ち、作業を行うかを明確にしている」(岩出氏)という。 MSFは、XPやRUPと同じく、頻繁なリリースを重ねて製品をブラッシュアップしていく繰り返し型アプローチを採用している。この小さな単位の中で、テストも実施していくという。 一見すると、オーバーヘッドが激しい方法論のように思えるが、岩出氏は「早期にテスト工程を盛り込むことで、修正コストが大幅に削減されるというメリットがある」と述べる。米国の国立標準技術研究所のレポートによると、ベータテスト後のバグ修正コストは飛躍的に跳ね上がる。コード実装やモジュール統合の段階でバグをつぶしておけば、後工程の作業もコストも劇的に抑えられるそうだ。 もう1つ、MSFの特長として挙げられるのがユーザーエクスペリエンスという役割の存在だ。これはソフトウェアのアクセシビリティやユーザビリティ、UI設計などを担当する役割で、顧客の代弁者となる役割だ。またMSFの次期バージョンでは現在開発方法論の中で注目を浴びている「ペルソナ」(仮想ユーザー)を取り入れることで、開発チームが顧客の視点を常に意識するようにしている。バグつぶしだけではなく、こうしたさまざまな視点を入れることで、冒頭に述べた「多層防御」というコンセプトが生きてくるわけだ。 ◆ 品質向上のためにツールを活用 複数のチームでプロジェクトを進める以上、あってはならないのが連絡ミスや進ちょくの確認漏れなどの情報共有上の失策だ。「こうした状況を回避するために、これまでの当社のノウハウを生かして、次期バージョンのVisual Studio 2005では、Visual Studio 2005 Team Systemというチーム開発の支援モジュールを提供する予定。実際に当社の開発現場でも本製品を活用し、品質検証の生産性を向上させている」(岩出氏)。つまりVisual Studio 2005 Team Systemには、同社における品質向上のノウハウが詰まっているわけだ。 ちなみにマイクロソフトでは、主に「テスト作業の自動化」と「情報共有」の2つの分野でツールを活用しているという。当然、Visual Studio 2005 Team Systemにもこうした機能が搭載されている。たとえば単体テストや手動テスト、Webテスト、負荷テストの実行機能のほか、プロジェクトの情報を保存するデータリポジトリを持ち、各チームや担当者とのスムーズな情報共有を支援する。 さらに情報共有のメリットを挙げるとすれば、コードレビューによる品質向上を図れるという点もある。岩出氏によると、不具合の8割以上はコードレビューで発見できるという。ちなみにコードレビューと似た考え方としては、XP(eXtreme Programming)でも「ペア・プログラミング」という鉄則を挙げている。こうした作業においても、ツールが持つ静的コード分析などの機能が大きく貢献しているようだ。 ただし、ツールやプロセスが整っているだけでは現場の士気は上がらない。こうした情報共有の取り組みの中でも、注目に値するのがバグ収束やゼロバグ バウンス(ZBB)などをイベント化していることだ。バグ収束とは、バグ解決の件数が発見の割合を超える瞬間を差し、ZBBとは瞬間的に未解決のバグがなくなるポイントを意味する。開発チームとの情報共有により、こうしたバグ解決の進ちょくが容易に把握できるようになり、自然とチームの意識が高まっていく。さらに「バグ収束やZBBが起こったときにはちょっとしたパーティを開くなど、節目節目にイベントを設定するのも士気を高める要因になる。こうしたちょっとした工夫が、品質向上作業をプロセスに取り込むポイントといえる」(岩出氏)。 ◆ マーケティング陣営もテスト結果を共有 ちなみに同社の場合、開発やテストの進ちょく状況についてはマネージャクラスの社員やマーケティング担当者にも送付されるという。これもツールを使い、進ちょく状況をグラフ化して一目瞭然にするのだそうだ。こうして蓄積されたデータを元に、「いつごろバグが収束しそうか」という予測曲線も合わせてグラフ化しているそうだが、岩出氏によると「おもしろいくらいこの予測曲線どおりにプロジェクトが進んでいく」という。どこでリスクが発生しそうかも事前に分かるようになり、日に日にプロジェクト全体がスムーズに運営できていくとのことだ。 こうしたナレッジの共有・再利用により、開発メンバーのほか全社員も品質向上についての意識が高まるという。高品質なソフトウェア開発に向けてのモチベーションが向上することにつながり、これがマイクロソフトを支える柱になっているとのことだ。岩出氏は最後に「自動化のためだけでなく、チーム開発を支援するという意味においてもツールの存在は不可欠。その中で、工夫しながら品質向上作業をプロセスに取り込んでいくことで、ソフトウェア全体の質が上昇するだろう」と語った。 主催:アイティメディア株式会社 協賛各社(順不同):マイクロソフト株式会社、 エンピレックス株式会社、 テクマトリックス株式会社、 マーキュリー・インタラクティブ・ジャパン株式会社 株式会社ベリサーブ 掲載内容有効期限:2005年7月24日 |
|