目次 †
概要 †
.NETでアプリケーションを開発する場合(受託開発)の
異種環境への移行時のテスト(OSと.NETバージョンの掛け合わせパターン)
というのはどこまでやるか?
回答 †
.NETでアプリケーションを開発する場合(受託開発)は、
- 慣例的に、.NETバージョンはサポート範囲を明確にする(絞る)と思います。
- そして、.NETバージョンに対応するOS毎のテストは、個別契約次第の所があると思います。
事例 †
過去に、.NETバージョン違い、OS違いなどで以下の様な差異の事例がありました。
- .NET4.5の Windows Aero (エアロ) では、
FixedSingle?のWindow枠が太く表示される。
- .NET4以前の Windows Aero (エアロ) では、
FixedSingle?のWindow枠が細く表示される。
- OS違い
- OSによって動いたり動かなかったり、Win32APIを変更したりする必要があるケースがあります。
- その他
- IMEバージョンによって入力変換状態からマウスで
特定コントロール間を移動すると、移動元のコントロールで入力が確定される。
(期待する動作は、入力変換状態のテキストもコントロール間を移動する)
分析 †
- 内部での計算処理に関する動作の変更は大きな誤作動の原因になるので
.NETバージョンを固定していれば変更は(ほぼ)無いと考えて良いかと考えますが、
前述の事例の様に、UI周りはそうでもない(変更がある可能性がある)ので、
その辺り(UI周り)のテストがクロス・プラットフォームで必要になることが多いように思います。
- このため、ほぼストレート・コンバージョン&疎通確認程度でリリースしています。
ただし、これは
「基盤は開発するユーザ・プログラムによりテストされるため、リスクが少ないため」
という所に拠っています。
- 従って、ミッション クリティカルなシステムを移行する場合、
上モノのユーザ・プログラムの環境移行+ストレート・コンバージョン
(OSや.NETバージョンを跨ぐ)に対しては、厳密にはテストが必要になります。
- なお、32bit → 64bitでは、P/Invokeでネイティブ・コードを呼び出している場合、
動作が異なるケースが幾らか報告されていますので必要に応じてテストが必要と考えます。
参考情報 †