Microsoftは膨大な数の不具合に「トリアージ(緊急度判断)」で対応 ―― ソフトウェアテストシンポジウム 2012東京(JaSST'12 Tokyo)(1)
●不具合は「発見」より「防止」が重要
次に同氏は,このように組織が再編されたMicrosoft社における,テストの現状と戦略について紹介した.同社でも日常的に,いわゆるブラックボックス・テストやホワイトボックス・テストなどを行っている(写真6).
写真6 テストのアプローチ

ブラックボックス・テストとしては,探索的テストや定義済みテスト・ケースの実行,APIやGUIに関する自動化テスト,エンドツーエンド・カスタマ・シナリオなどを行っている.また特徴的なものとして,「セルフホスティング」,「ドッグフーディング」と呼ばれるテストも行っている.
エンドツーエンド・カスタマ・シナリオとは,ユーザをリサーチして作成する,典型的な利用方法のシナリオ(カスタマ・シナリオ)である.これを5~7個作成し,自動テストに反映させている.これらのシナリオはユーザの実体験に基づくものなので,非常に有用である.「セルフホスティング」では,最新のビルドでテストを行った際に,何か問題が発生した場合には,いつでも開発チームにレポートをフィードバックできる体制が敷かれている.「ドッグフーディング」とは,毎日作られる最新のビルドを自分のマシンに入れて使ってみるというテストで,まさにドッグフードのようにまずくて通常は口にしないような食べ物を,毎日食べるというところからネーミングされている.この「ドッグフーディング」を行うことで,ユーザの痛みを感じることができ,どの不具合に最優先で対応しなくてはならないかが見えてくるという.
一方,ホワイトボックス・テストとしては,ビルド前にテスト・エンジニアとデベロッパが打ち合わせを行い,コード・レビューやインスペクションを行うことで,実際にプログラムを動かす前に問題点を見つけ出している.同社では,このようなホワイトボックス・テストを非常に重視している.このほか,カバレッジ(テスト網羅率)を上げるための解析テストも常に実行しており,解析ツールを整備している.
これらのテストを維持するテスト・サイクルについては,どのテストを最優先で行うかについて,常に検討している(写真7).ただしテストは常に続いているので,テスト・サイクルをはっきり認識するのは難しいという.ここで重要なのは,製品が完成した後にただ大勢の人に多くのテストをこなしてもらうのでは,テストや開発の効率は向上しないということである.完成後に不具合を発見しても,手戻りが発生し,より多くの時間が費やされる結果になることが多い.先にも言及したように,開発前に不具合の発生しそうな個所を予測して防止する方が,効率は格段に向上する.そのためには,欠陥予防やより上流工程での不具合予測が行える方法を確立する必要がある.
写真7 テストのライフサイクル
