* 目次 [#df3d1bef]
#contents

*概要 [#gb617830]
.NETでアプリケーションを開発する場合(受託開発)の~

>異種環境下でのテスト(OSと.NETバージョンの掛け合わせパターン)

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

*回答 [#p50604e3]
-.NETでアプリケーションを開発する場合(受託開発)は、~
慣例的に、.NETバージョンはサポート範囲を明確にする(絞る)と思います。~

-そして、.NETバージョンに対応するOS毎のテストは、個別契約次第の所があると思います。

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

-.NETバージョン違い

--.NET4.5の Windows Aero (エアロ) では、~
FixedSingleのWindow枠が太く表示される。~

--.NET4以前の Windows Aero (エアロ) では、~
FixedSingleのWindow枠が細く表示される。

-OS違い
--OSによって動いたり動かなかったり、Win32APIを変更したりする必要があるケースがあります。
---[[Windowを前面に出す]]

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

**分析 [#y1e6589b]
-内部での計算処理に関する動作の変更は大きな誤作動の原因になるので~
.NETバージョンを固定していれば変更は(ほぼ)無いと考えて良いかと考えますが、~
前述の事例の様に、UI周りはそうでもない(変更がある可能性がある)ので、~
その辺り(UI周り)のテストがクロス・プラットフォームで必要になることが多いように思います。

-例えば、当プロジェクトで開発している[[.NET用アプリケーション開発フレームワーク(Open棟梁)>https://github.com/OpenTouryoProject/OpenTouryo]]は、異なるOS、.NETバージョンを採用する複数の案件に適用されていますが、.NET部分の内部での処理に関する動作の違いが報告された事はありません。

--このため、ほぼストレート・コンバージョン&疎通確認程度でリリースしています。
--ただし、これは~
「基盤は開発するユーザ・プログラムによりテストされるため、リスクが少ないため」~
という所に拠っています。

--従って、上物のユーザ・プログラムの~
ストレート・コンバージョン(.NETバージョンを跨ぐ)~
に対しては、厳密にはテストが必要になります。

-なお、32bit → 64bitでは、P/Invokeでネイティブ・コードを呼び出している場合、~
動作が異なるケースが幾らか報告されていますので必要に応じてテストが必要と考えます。

*参考情報 [#b70d2fd3]
-[[Windows Vista、Windows 7移行、IE7,8対応]]
-[[64bit対応]]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS