互換性テストのシナリオ

 

Microsoft Corporation

2006 年 5 月

適用対象:
   .NET Framework

概要: このドキュメントでは、新しいランタイム バージョンとの互換性のためにマネージド アプリケーションまたはコンポーネントをテストするためのベスト プラクティスについて説明します。 アプリケーションが引き続き正常に動作することを確認するためにテストする必要があるさまざまな構成について説明します。 互換性の詳細については、「Microsoft .NET Framework 1.1 および 2.0 互換性」を参照してください。 まだそのドキュメントを読み取っていない場合は、先に進む前に読むことをお勧めします。 (7ページ印刷)

内容

はじめに
アプリケーション シナリオ
テスト 1: .NET Framework 1.x と 2.0 がサイド バイ サイドでインストールされているコンピューターに正しくインストールする
テスト 2: .NET Framework 1.x と 2.0 がサイド バイ サイドでインストールされているコンピューターで正しく実行される
テスト 3: .NET Framework 1.x と 2.0 がインストールされているコンピューターで、.NET Framework 1.x に対して実行するように構成されたアプリケーションとサイド バイ サイドで正しく実行されます
テスト 4: .NET Framework 1.x と 2.0 がインストールされているコンピューターで、.NET Framework 2.0 に対して実行するように構成されたアプリケーションと共に正しく実行されます
テスト 5: .NET Framework 2.0 のみがインストールされているコンピューターに正しくインストールする
バックグラウンド

はじめに

マネージド コードを使用する多くのアプリケーションでは、特定のバージョンの.NET Frameworkがコンピューターに存在する必要があります。 一部のアプリケーションでは、the.NET Framework の特定のリリースが再配布されます。 場合によっては、特定のバージョンの.NET Frameworkで開発されたアプリケーションで、新しいバージョンの Framework で実行しようとすると問題が発生することがあります。 Microsoft .NET Framework 1.1 および 2.0 の互換性で説明されているように、マネージド アプリケーションは、ビルド対象のフレームワークのバージョンで既定で実行されます。 ただし、新しいバージョンのフレームワークしか使用できない場合や、ホスティング アプリケーションで特定のバージョンが必要な場合は、アプリケーションが新しいバージョンに対して実行される場合があります。 最適なカスタマー エクスペリエンスを確保するために、以下で説明する手順に従って、アプリケーションの互換性をテストすることをお勧めします。

アプリケーション シナリオ

アプリケーションが新しい.NET Frameworkバージョンに対して正しく動作することを確認するには、5 つのシナリオについて説明する必要があります。 テスト プロセス中に検出された互換性の問題に確実に対処できるようにします。

.NET Framework互換性の重要な原則の 1 つは、Side-by-side (SxS) 実行の考え方です。 「.NET Frameworkのサイド バイ サイド実行」で詳しく説明されているように、これは、フル マネージド アプリケーションがビルドされた.NET Frameworkのバージョンに対して実行を試行することを意味します。 ネイティブ アプリケーションでホストされている場合など、特定の構成では、アプリケーションまたはコンポーネントをコンピューターで使用できる最新バージョンの.NET Frameworkで実行する必要があり、互換性の問題が発生する可能性があります。

テストでは、アプリケーションのインストールと実行の両方をテストすることが重要であることが示されています。 アプリケーションのインストールは、コンピューターに存在する.NET Frameworkの特定のバージョンに依存することがあります。

アプリケーションごとにテストする必要があるシナリオは次のとおりです。

  1. .NET Framework 1.x と 2.0 がサイド バイ サイドでインストールされているコンピューターに正しくインストールされます
  2. .NET Framework 1.x と 2.0 がサイド バイ サイドでインストールされているコンピューターで正しく実行されます。
  3. .NET Framework 1.x と 2.0 がインストールされているコンピューターで、.NET Framework 1.x に対して実行するように構成されたアプリケーションと共に正しく実行されます。
  4. .NET Framework 1.x と 2.0 がインストールされているコンピューターで、.NET Framework 2.0 に対して実行するように構成されたアプリケーションと共に正しく実行されます。
  5. .NET Framework 2.0 のみがインストールされているコンピューターに正しくインストールされます。

テスト 1: .NET Framework 1.x と 2.0 がサイド バイ サイドでインストールされているコンピューターに正しくインストールする

このテストでは、.NET Framework 1.x と 2.0 がインストールされているコンピューターにアプリケーションが正しくインストールされることを確認します。

テスト手順

  1. コンピューターに .NET Framework 1.x がインストールされていることを確認します。
  2. .NET Framework 2.0 の古いバージョンが既にある場合は、最新の.NET Framework 2.0 ビットをダウンロードできるようにアンインストールします。
  3. .NET Framework 2.0 をインストールする前に、クリーン 1.x コンピューターでアプリケーションの動作をテストします。 完了したら、アプリケーションをアンインストールします。
  4. 最新の.NET Framework 2.0 をダウンロードしてインストールします。
  5. このコンピューターにアプリケーションをインストールします。
  6. 結果を記録する

考えられる結果

  • はい- アプリケーションが想定どおりにインストールされている場合は、テスト 2 に進みます。
  • いいえ: インストール中にアプリケーションが失敗しました。 以下を試してみてください。
    • コンピューターから .NET Framework 2.0 をアンインストールします。
    • コンピューターにアプリケーションをインストールします。
    • .NET 2.0 を再インストールします。
    • テスト 2 に進む。
  • インストーラーなし - アプリケーションにはインストーラーは必要ありません。 テスト 2 に進みます。

テスト 2: .NET Framework 1.x と 2.0 がサイド バイ サイドでインストールされているコンピューターで正しく実行される

このテストでは、.NET Framework 1.x と 2.0 がインストールされているコンピューターでアプリケーションが正しく機能することを確認します。

テスト手順

  1. コンピューターでアプリケーションを実行します。
  2. 可能なすべての機能を調べて、それらが正しく動作していることを確認します (可能な限り多くのコードをカバーします)。 シリアル化されたデータを保存または回復する領域に特に注意してください。

考えられる結果

可能な結果は Yes/No です。

  • はい— アプリケーションは想定どおりに実行されました。 テスト 4 に進みます。
  • いいえ— アプリケーションが予期したとおりに実行されませんでした。 テスト 3 に進みます。

テスト 3: .NET Framework 1.x と 2.0 がインストールされているコンピューターで、.NET Framework 1.x に対して実行するように構成されたアプリケーションとサイド バイ サイドで正しく実行されます

メモ テスト 2 に合格した場合は、このテストをスキップできます。

このシナリオでは、v2.0 がコンピューターにインストールされているときに古いランタイムにアプリケーションをロックすることで、アプリケーションが正常に動作できるかどうかをテストします。 これは、アプリケーションまたはコンポーネントがネイティブ アプリケーションによってホストされている場合にのみ適用されます。

テスト手順

  1. 特定のバージョンの.NET Frameworkを使用してアプリケーションを強制的に読み込む構成ファイルを作成します。 これを行うには、新しいファイルを作成し、appname>.exe.config を呼び出す<必要があります (既に存在しない限り)。 このファイルは、テスト対象のアプリケーションと同じディレクトリに配置する必要があります。

  2. 次のスニペットをファイルに追加します。

                <configuration>
         <startup>
         <supportedRuntime version="v1.1.4322" />       
         </startup>
      </configuration>
    

    バージョンが v1.0.3705 である必要がある点を除き、同じコード フラグメントを使用して v1.0 にロックバックできます。

    メモ運用環境では、メイン実行可能ファイルをロックバックしてアドインをロックバックしないでください。詳細については、「Microsoft .NET Framework 1.1 と 2.0 の互換性」ホワイト ペーパーを参照してください。

  3. アプリケーションをもう一度実行し、テスト 2 で失敗した機能をテストします。

考えられる結果

  • はい- アプリケーションが想定どおりに実行されました。 テスト 4 に進みます。
  • [いいえ] - アプリケーションは引き続き期待どおりに実行されませんでした。
  • 未テスト — テスト 4 に進んでください。

テスト 4: .NET Framework 1.x と 2.0 がインストールされているコンピューターで、.NET Framework 2.0 に対して実行するように構成されたアプリケーションと共に正しく実行されます

このテストでは、.NET Framework 2.0 に対して実行するようにコンピューター上のすべてのアプリケーションを構成し、前方互換性をテストできます。

テスト手順

  1. コンピューター上のすべてのマネージド アプリケーションを構成して、最新バージョンの.NET Frameworkを要求する

  2. 次のレジストリ キーを作成または設定します。

    [HKEY_LOCAL_COMPUTER\SOFTWARE\Microsoft\.NETFramework] 
    "OnlyUseLatestCLR"=dword:00000001
    
  3. GotDotNet ユーザー サンプル: Whidbey CLR でアプリケーションが実行されるように するには、このレジストリ キーに格納されている値を切り替える 2 つのファイルを含む zip ファイルが含まれています。

  4. アプリケーションで使用可能なすべての機能を調べて、.NET Framework 2.0 を使用して正常に動作することを確認します。

  5. このテストが完了したら 、"OnlyUseLatestCLR"=dword:000000000 を復元します。

考えられる結果

  • はい- すべてのアプリケーションが期待どおりに機能しました。
  • いいえ- 問題を解決する必要があります。

テスト 5: .NET Framework 2.0 のみがインストールされているコンピューターに正しくインストールする

このテストでは、.NET Framework 2.0 のみがインストールされているコンピューターにアプリケーションが正しくインストールされていることを確認します。

テスト手順

  1. .NET Framework 2.0 のみがインストールされているクリーン コンピューターまたは仮想 PC イメージを作成します。
  2. そのコンピューターにアプリケーションをインストールします。 インストールを続行するには、アプリケーションで 1.x .NET Frameworkダウンロードする必要がある場合があります。

考えられる結果

  • はい:アプリケーションが正しくインストールされています。
  • .NET Framework 1.x をインストールした後ははい—アプリケーションは .NET Framework 1.x を必要とし、そのインストールを必要としました
  • いいえ:アプリケーションが予期したとおりにインストールされませんでした。 バグ レポートに詳細を入力してください。
  • インストーラーなし - アプリケーションにインストーラーは必要ありません。

バックグラウンド

.NET Framework SDK のドキュメントと記事では、サイド バイ サイドでさらに詳しく説明し、アプリケーション、Web アプリケーション、マネージド COM コンポーネントなど、特定のアプリケーション モデルに対して特定のリリースの.NET Frameworkを実行するようにアプリケーション.EXE構成する方法について説明します。

MSDN ドキュメント