Skip to content

MS_CrossPlatformMigrationTestPolicy

nishi_74322014 edited this page Aug 3, 2026 · 1 revision

異種環境への移行時のテスト・ポリシー

概要

.NETでアプリケーションを(受託)開発する場合の

異種環境への移行時のテスト
(OSと.NETバージョンの掛け合わせパターン)

というのはどこまでやるか?

回答

前提

.NETでアプリケーションを(受託)開発する場合は、

  • 慣例的に、.NETバージョンはサポート範囲を明確にする(絞る)と思います。
  • そして、.NETバージョンに対応するOS毎のテストは、契約次第の所があると思います。

事例

過去に、.NETバージョン違い、OS違いなどで以下の様な差異の事例がありました。

.NETバージョン違い

バージョンの移行パスによっては、

  • .NET 4.5 の Windows Aero (エアロ) では、
    FixedSingleのWindow枠が太く表示される。
  • .NET 4 以前の Windows Aero (エアロ) では、
    FixedSingleのWindow枠が細く表示される。

などのケースがありました。

OS違い

OSバージョンの移行パスによっては、

  • 動いたり動かなかったり、
  • Win32APIを変更したり、
    • Windowを前面に出す(MS_BringWindowToFront.md

するケースがありました。

その他

IMEバージョンによって入力変換状態からマウスで
特定コントロール間を移動すると、移動元のコントロールで入力が確定される。
(期待する動作は、入力変換状態のテキストもコントロール間を移動する)

分析

  • 内部での計算処理に関する動作の変更は大きな誤作動の原因になるので
    .NETバージョンを固定していれば変更は(ほぼ)無いと考えて良いかと考えますが、
    前述の事例の様に、UI周りはそうでもない(変更がある可能性がある)ので、
    その辺り(UI周り)のテストがクロス・プラットフォームで必要になることが多いように思います。
  • 例えば、当プロジェクトで開発している
    .NET用アプリケーション開発フレームワーク(Open棟梁)は、異なるOS、
    だけでなく、異なる.NETバージョンを採用する複数の案件に適用されていますが、
    .NET部分の内部での処理に関する動作の違いが報告された事例はありません。
    • このため、ほぼストレート・コンバージョン & 疎通確認程度でリリースしています。
    • ただし、これは、
      • 「基盤は開発するユーザ・プログラムによりテストされるため、リスクが少ないため」という所に拠っています。
      • 従って、ミッション クリティカルなシステム(基盤でなくウワモノ)を移行する場合、
        上モノのユーザ・プログラムを環境移行+ストレート・コンバージョン(OSや.NETバージョンを跨ぐ)
        した場合、厳密にはテストが必要になります(テスト計画については、顧客と相談が必要かと思います)。

補足: .NET Framework から現行の .NET(.NET 5 以降)へ移行する場合は、 本ページが想定する「.NET Framework 内でのバージョン違い」よりも差異が大きい。 破壊的変更の一覧が公開されているので、移行前に確認するとよい。

参考情報

  • Windows, IE移行(MS_WindowsAndIEMigration.md
  • 64bit対応(MS_Support64bit.md

Tags: 移行, テスト

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally