Microsoftは膨大な数の不具合に「トリアージ(緊急度判断)」で対応 ―― ソフトウェアテストシンポジウム 2012東京(JaSST'12 Tokyo)(1)
●各種ツールでテストを支援
Microsoft社では,このようなテストの実施体制を支援するために,各種自動化ツールやシステムを日々開発しているという.例えばどのテストを行うかという優先順位を判断するために,チャーン・メトリック(churn metric;前回のビルドから新たに変更,削除,追加されたコードの量)を指標としている.またゲームのテストでは,ユーザがゲームのどこを最もプレイするかなどのデータを指標としている.同社ではこうしたテスト・ツールを自動化システムと組み合わせて,効率的にテスト運用が可能な体制を整えている.特に重複バグはコストがかかるため,これらを回避するツールに注力している.Xboxのゲームに特化したツールを例にとると,このツールでは不具合が発生した個所まで自動的にゲームを進めてくれる.これによって,重複バグの発生率が35%から7%に改善されたという.こうしたツールの多くはほとんどが社外に公開することはできないが,そのノウハウや機能の多くは,開発ツール「Visual Studio」の最新バージョンなどに反映されている.
同種の不具合,あるいは同じ機能に対する異なる不具合を検出しやすくするという観点から,同社では全社共通の「バグ・トラッキング・システム」を採用している(写真8).不具合を発見したら,必ず「バグ・トラッキング・システム」に報告することが義務付けられている.社内のよく見える場所に設置されたモニタに,そのとき行われているテストの結果が刻々と表示される「リアルタイム・リゾルト」と呼ばれるシステムもある.テスト・エンジニアやデベロッパだけでなく,開発に携わる全員が不具合やテストに関心を持ち,常に目を通すことができる体制が出来上がっている.
写真8 報告されたバグの例

また手動のテストとして,いろいろな情報を得るという意味でβテストも重要であり,社員の友人や家族など近しい人にテスタとなってもらうこともあるという.製品リリース後の継続的な不具合修正の一環としては,Windowsを利用していてエラーが発生した際に表示される,Microsoft社へのエラー送信のダイアログがある(写真9).これはエラー発生時のメモリ・ダンプ情報を送信するもので,送信された情報は同じエラーごとに「バケツ」に格納される.このバケツ項目が一杯になってあふれると,バグフィックス・マネージャに送られ,ホットフィックスなどの対応待ちとなる.修正してほしい不具合があるときは,エラー時に送信ボタンをクリックすれば,それだけ対応が早くなるということになる.
写真9 早く修正してほしい不具合なら送信ボタンを押そう

●「燃え尽き症候群」に陥らないために
最後に同氏は,現在のテストを取り巻く状況の変化と,それに対応する改善策の重要性に言及した(写真10).各種デバイスやOSを含めたソフトウェアのグラフィカル・ユーザ・インターフェースなどの進化に伴い,テストの難しさや複雑化にも拍車がかかっている.こうした状況の中で,日々のルーチン・ワークに追われ,「燃え尽き症候群」に陥ってしまうテスト・エンジニアもおり,問題になっている.このスパイラルに歯止めをかける意味でも,テストの効果を上げ,効率化するトリアージや,より上流工程での不具合の予測を追求する必要性がある.これらのことは,テスト・エンジニアに新しい刺激を与え,自身が成長しているという実感を持たせる意味でも重要であるという.
写真10 現在のテストを取り巻く課題

またテストの自動化により,より膨大な量のデータが収集できるようになっているが,これらのログ・データや指標をすべてテストで使用しようとするのは,現状ではかえって無駄を生みかねない.ではどのような指標に注目するべきだろうか?
かつては,独立したデバイスごとにソフトウェアが存在し,それらは独立して機能していた.しかし現在は,あらゆるソフトウェアやデバイス,そしてデベロッパ,テスト・エンジニアからユーザまでが,ネットワーク,クラウドを介してシームレスに連携していることを考えなくてはいけない.ユーザがデバイスをどのように組み合わせ,どのようなデータを利用しているのかを考えれば,おのずとどのような指標に注目するべきなのかが見えてくる,として,同氏は基調講演を締めくくった.
きたむら・としゆき