Windowsの開発サイクルの中で、設計やコーディング、テストを何度も繰り返し、ある段階で品質をクリアした時点で晴れて製品化となる。こうしたサイクルにおいては、まず最初に新機能や変更点のレビューを行い、Windowsのアプリケーション互換性が維持できるかを検証することになる。こうした検証においては自動化されたテストツールが利用される。APIに変更が行われていないかを調べ、テストにあたるエンジニアらが適切なツールや検証のための時間を持ち、かつ開発サイクル早期の段階で問題を発見するための情報共有が行われる必要がある。

こうした検証作業は製品化までに何度も行われることになるが、Windowsのサードパーティ製アプリケーションやハードウェアは膨大な数に上り、考えつくだけで非常に多くのテスト項目が必要となる。ここで利用されるのが「Telemetry(遠隔調査) Information」だ。Telemetryはデータ集計の手法で、市場で流通しているアプリケーションやツールの利用状況を調べ、Microsoftがユーザーの利用シーンごとに分類したカテゴリから代表的なものを選出、リスト化する。これにより、重要なアプリケーションやよく利用されるアプリケーションのリストができあがることになり、先ほどの自動テストの中にこれらアプリケーションを組み込み、Windows 7で期待通りの動作をするかをチェックする。開発期間中もトレンドは移り変わるため、リストの内容は逐次アップデートされる。

Telemetryデータ作成のためのアプリケーション分類例

Windows 7での新機能や変更点はどのように検証される?

Windows Vistaとほぼ互換性を維持しているとはいえ、Windows 7は新しいバージョンの製品だ。新機能が追加され、既存の機能や動作にもある程度の変更が加えられている。もしこうした変更が既存のアプリケーションの動作に影響を及ぼすと判断されたとき、細心の注意を持って変更が加えられる。

典型的なのは「Legacy Code Removal」と呼ばれるレガシーなコードの排除だ。従来のWindowsでOSシステムの一部として動作していたもので、こうしたコードは非常に厳密に管理され、適切なドキュメントでの通知や影響を受けるベンダーとの連携なしには削除されることはない。もし仮にあるAPIコールが削除されることになった場合には、事前にこのAPIに関するドキュメントでの通知が行われ、前述のTelemetryによるデータで影響が最小限だと判断されるまで待つ、といった具合だ。例外はセキュリティ上の問題から緊急での対処が求められるときだけとなる。

また新機能の追加にあたっては、こうした互換性検証プロセスの前段階でコードの動作検証が行われる。こうしたテストにパスして、初めてWindows 7のメインビルドの中に新機能としてコードが組み込まれる。だがこれが原因で自動化テストの中で問題が発生した場合、直ちに新機能のコードは除外され、テストは中止となる。このコードは再び検証され、問題解決のために開発者の元へと戻される。