Windows 7の開発にあたっては、メインのコーディングを行うチーム以外にも、アプリケーションの互換性を検証する専門のチームが複数存在する。これらチームではアプリケーション互換性のためのガイダンス、アプリケーション同士の依存性に関するデータ、そしてどのような変更を加えることでどのようなアプリケーションに影響が出るのかの情報を提供している。また新機能のデザインやこれから行われる変更についてのレビューも行っており、互換性を維持するためのバランサーとして機能している。
また内部検証以外にも、Windowsアプリケーションを開発するサードパーティのような外部のデベロッパーにも接触し、Windows VistaとWindows 7の間での互換性維持のために必要な情報を提供している。ここで提供される情報とは、互換性維持のために(サードパーティ側で)解決すべき問題であり、必要な情報やリソース、ガイダンスなどをまとめて提示する。ここで活用されるのが前述のEcosystem Readiness Programで、プログラムに登録した開発者はWindows 7の最新ビルドだけでなく、Windows 7やVista、そしてWindows Server 2008 / R2でのテストツール、テストに必要な各種コンポーネントなどが提供される。
外部のデベロッパーでもう1つ重要なのがOEMだ。Windowsをプリインストールして出荷するPCメーカーらは、いくつかの謹製アプリケーションをプリインストールや同梱の形でユーザーに提供している。こうしたアプリケーションはインストールイメージの形で用意され、Windows 7のクリーンインストール、またはVista準拠のPCからのアップグレードの形でのテストが行われる。一般に、OEM PC付属のアプリケーションは、同梱されるWindowsのバージョンやPCのハードウェア、ドライバに依存したものが多く、新OS用のアップデートなしには正常動作しないことも普通だ。
ほかに重要なのがミドルウェア関連で、例えばJavaや.NET Frameworkなどのコンポーネントも検証される。これらは対応アプリケーションの動作と密接に結びついており、変更なしで正常動作するかどうかの検証が必要となる。またテストにおいては複数のハードウェアの組み合わせも検証される。x86、x64、Intel、AMD、タッチデバイス、マルチタッチデバイスなど、自動テストや手動テストを組み合わせ、アプリケーションが意図通りの動作を行うかを調べている。アプリケーションの互換性について、Microsoftでは表のような形でWindows 7での互換性の度合いをカテゴライズしている。
■アプリケーションの互換性度合いによる分類 | |
---|---|
互換性に問題なし | |
一部の(主要ではない)機能が動作しない | |
Windows Vistaでは正常動作していたが、現在では正常動作しない | |
Windows 7では正常動作せず、Windows Vistaでも動作していない | |
OSでの変更点がアプリケーションに影響を与えることを認識しており、問題解決のためにISVと協力している。このカテゴリの端的な例はバージョン番号で、問題のあるアプリケーションは特定バージョンの環境での動作を想定して記述されており、新バージョンでの動作状況を把握できていない |
以上がテスト方法に関する話題だ。これ以外にもMicrosoft社内ではIT部門が1500ものアプリケーションを内部管理しており、社内展開に先駆けてテストを実施している。こうしたテストを通して全体の4%ないし6%程度のアプリケーションを検証できるため、ある程度の互換性に対する信頼性の検証に貢献している。互換性テストに関するさらなる詳細は、同社が出している「LOB Application Compatibility Technical White Paper」で確認できる。