portability testing guide with practical examples
移植性テストの概要:
移植性テストは、ソフトウェアコンポーネントまたはアプリケーションをある環境から別の環境に移動する際の容易さまたは難しさを判断する非機能的なテスト方法です。
移植性テストから得られたテスト結果は、ある環境のソフトウェアコンポーネントを別の環境でどれだけ簡単に使用できるかを知るのに役立ちます。
「環境」という用語は、あるオペレーティングシステムから別のオペレーティングシステムへ、あるブラウザから別のブラウザへ、またはあるデータベースバージョンから別のデータベースバージョンへ移動することを指します。
移植性テストの主な経験則は、ソフトウェアコンポーネントをある環境から別の環境に移動する場合にのみ使用することです。
移植性の測定は、ソフトウェアコンポーネントをある環境から別の環境に移動するために必要な作業です。移植性の測定の1つの単位は、ソフトウェアの再開発のコストと比較した、新しい環境にソフトウェアを採用するためのコストです。
DVDをmp4にリッピングするフリーソフトウェア
このチュートリアルでは、移植性テストの意味、目的、属性、チェックリスト、長所と短所の完全な概要と、理解しやすいように簡単な用語でいくつかの実用的な例を示します。
学習内容:
移植性と互換性テストの違い
以下のポイントは、移植性と互換性の違いを簡単に区別します。
=> 互換性は、2つ以上のコンポーネントを、相互の動作に悪影響を与えることなく、同じ環境で同時に実行できるかどうかを扱います。
例: Windows 10などの同じOSで実行されているワードプロセッサと計算機は、一方のアプリケーションを実行しても他方のアプリケーションの動作に影響を与えないため、相互に互換性があると言えます。
=> 移植性は、コンポーネントをある環境から別の環境に移動することを扱います。
例: Windows XPで実行されているゲームは、ゲームの動作を変更せずに同じゲームをWindows 7で実行できる場合、移植可能であると言われます。
=> つまり、移植性テストは複数の環境にわたるソフトウェアコンポーネントを扱い、互換性テストは同じ環境で2つの異なるアプリケーションをテストします。
目的
このテストの目的は次のとおりです。
- システムを、プロセッサ速度、ディスク容量とRAM、モニターの解像度、OS、ブラウザーのバージョンなどの各環境特性に移植できるかどうかを判断します。
- UIと機能機能に関するアプリケーションのルックアンドフィールが、複数のOSと複数のブラウザーに類似しているかどうかを判断します。
- このテストは、特に製品の顧客が複数のブラウザバージョンを備えた複数のオペレーティングシステムを使用することを認識している場合に、システムをリリースする準備ができているかどうかを判断するのに役立ちます。
- このテストは通常、事前定義された一連の移植性要件に対して実行されます。これは、アプリケーションのユニットおよび統合テストの一部として見逃されている欠陥を見つけるのに役立ちます。
- このテストで見つかった欠陥は、開発者による製品リリースの一部として修正および提供する必要があります。
- このテストは通常、ソフトウェア開発ライフサイクル全体を通じて段階的に実行されます。
属性
ソフトウェアテストボードは、このテストの特定の主要な属性を定義しています。
彼らです:
- インストール可能性
- 適応性
- 交換可能性
- 互換性または共存
#1)インストール性:
インストール可能性は、ターゲット環境にインストールする必要があるソフトウェアで実行されます。
次の特性は、インストール可能性テストの一部として検証されます。
- インストールのためのオペレーティングシステム要件。
- アプリケーションの使用に関するブラウザの要件。
- メモリまたはRAMの要件。
- インストール手順。
- アンインストール手順。
- インストール中断の例外。
- ソフトウェアインストールの前提条件。
#2)適応性:
適応性テストは、システムが各ターゲット環境に適応可能かどうかを検証するプロセスです。複数のシステム間で共通の通信標準を使用すると、システム全体の適応性を向上させるのに役立ちます。
適応性テストには、次の特性が含まれます。
- ハードウェアの依存関係。
- ソフトウェアの依存関係。
- 標準言語。
- 各ターゲット環境とのシステムの通信。
- 依存関係のカプセル化。
- 複数のシステムにわたる依存関係の表現。
#3)交換可能性:
交換可能性とは、あるソフトウェアコンポーネントを別のソフトウェアコンポーネントに置き換える機能です。前のコンポーネントを置き換えるコンポーネントは、すべてのターゲット環境で前のコンポーネントと同じ結果を生成する必要があります。理想的には、交換するコンポーネントと同じ目的を果たす必要があります。
.binファイルを表示する方法
同じドメインの競合製品は、交換される製品が競合他社の既存の製品よりもはるかに安価である可能性があるため、交換可能性の理想的な候補になります。
#4)互換性または共存:
互換性とは、2つ以上のコンポーネントが、同じ環境内の既存のコンポーネントに対して、相互の動作に悪影響を与えることなく機能することです。このテストは、その一部として複数のサブシステムを含む大規模なシステムで特に役立ちます。
サブシステムは、理想的には共通のスタック領域とメモリを共有します。その結果、一方のサブシステムで発生した例外がもう一方のサブシステムに簡単に伝播し、アプリケーション全体がクラッシュする可能性があります。
既存のコンポーネントの変更、新しいコンポーネントへのアップグレード、既存のコンポーネントへの新しいインターフェイスの適応は、時間の経過とともにソフトウェアシステムが直面するすべての問題です。
失敗したコンポーネント 互換性テスト 要件はシステム全体に大きな影響を与えるため、各コンポーネントを共通のリソースへの影響について徹底的にテストする必要があります。
リストにある他のいくつか:
これらの主要な属性とは別に、移植性テストには、相互運用性テストやローカリゼーションテストなどの他のいくつかの属性を含めることもできます。
個別の連鎖ハッシュテーブルc ++
(i)相互運用性: 相互運用性テストは、2つ以上のコンポーネントが通信の問題なしに相互作用できるかどうかを判断するのに役立ちます。
例えば 、 Windows 10 PCとAndroidベースのスマートフォン間のBluetoothを介したデータ転送は、相互運用性テストに使用できます。
(ii)ローカリゼーション: ローカリゼーションテストは、開発されたソフトウェアが使用されているローカル言語で理解できるかどうかを確認するために行われます。このタイプのテストは、内部化テストとも呼ばれます。
例えば 、 ソフトウェアは、中国語、イタリア語、ロシア語などのさまざまな国際言語でテストする必要があります。
移植性テストのチェックリスト
チェックリストには、移植性テストの一部としてテストされる要件が含まれています。
チェックリストの作成に進む前に、システムのすべての個々のコンポーネントが徹底的にテストされ、互いに統合されて1つの大きなシステムを形成していることを確認することが不可欠です。
チェックリストが効果的かつ効率的なものであるためには、移植性テストのすべての目的を念頭に置く必要があります。
- このテストは、すべての移植性要件を満たす必要があります。
- 複数のオペレーティングシステムでアプリケーションをテストする必要があります。
- 複数のブラウザバージョンでアプリケーションをテストする必要があります。
- このテストは、継続的な回帰テストのために自動化できます。
- このテストは、ソフトウェア開発ライフサイクル全体を通じて段階的かつ反復的に実行する必要があります。
長所と短所
移植性テストには、他のテストと同様に、独自の長所と短所があります。それらを見てみましょう。
長所:
- 複数のコンポーネント間の依存関係を特定するのに役立ちます。
- このテストは、相互作用する複数のサブシステムがある大規模なシステムで特に役立ちます。
- このテストは、製品の顧客が複数のブラウザバージョンを備えた複数のオペレーティングシステムを使用している場合に推奨されます。
- ユニットテストと統合テストで見逃されたバグは、このテストを使用して発見できます。
- ソフトウェアのインストールとアンインストールも、このテストの一部としてテストできます。
- アプリケーションの応答性とパフォーマンスは、複数のブラウザーと複数のオペレーティングシステムでテストできます。
- このテストを使用して、複数のブラウザーおよび複数のオペレーティングシステムでのアプリケーションのルックアンドフィールを検証できます。
- このテストは、アプリケーションの機能が複数のオペレーティングシステムと複数のブラウザーで期待どおりであるかどうかを判断するのに役立ちます。
- また、複数のシステム間でのエラーの伝播を排除するのにも役立ちます。
短所:
- このテストは、ソフトウェアのテストサイクルに時間的な制約がある場合、一般的には好ましくありません。
- このテストでは、複数のオペレーティングシステムや複数のブラウザなど、テストに複数の構成が必要になるため、組織から多くの予算が必要になります。
- 移植性テストを実行するには、すべてのセットアップハードウェア構成が使用可能である必要があります。これは、組織がセットアップハードウェア構成のメンテナンスのサポートを提供するために支払う必要があることを意味します。
- 移植性テストは反復的なプロセスであるため、テスターはテスト中に集中力を失う可能性があります。
- 移植性テストの自動化は退屈な作業であり、テスターのスキルと忍耐力を正常に実装する必要があります。
- マルチユーザー環境での移植性テストの実行は、非常に難しい場合があります。また、テストを成功させるには、大量のデータワークロードが必要です。
- ホスティング環境のストレージスペースは、組織にとってコストがかかる可能性があります。
移植性テストの例
以下にいくつかの典型的な例を示します。
- Windows7とMacintoshの両方のオペレーティングシステムで実行するように設計されたソフトウェア。
- AppleiOSおよびgoogleandroidデバイスで実行するように設計されたアプリケーション。
- MicrosoftEdgeブラウザおよびGoogleChromeブラウザと互換性があるように設計されたソフトウェア。
- Windows10およびAppleMacintoshオペレーティングシステムで実行するように設計されたビデオゲーム。
- Windows 7MySQLサーバーおよびMacintoshOracleデータベースで実行するように設計されたソフトウェア。
- Windows10およびWindowsXPオペレーティングシステムへのソフトウェアのインストール。
- MacintoshおよびLinuxオペレーティングシステムでのソフトウェアのアンインストール。
結論
ソフトウェアコンポーネントをある環境から別の環境に移動する必要がある場合は、一般に移植性テストが推奨されます。このテストは、単体テストおよびシステム統合テストの一部として識別されていない欠陥を明らかにするのに役立ちます。
移植性テストの主な欠点の1つは、複数のハードウェア構成を使用する必要があるため、このテストに割り当てられる予算の量です。これらのハードウェア構成のメンテナンスとサポートの提供は、非常に面倒で時間のかかる作業になる可能性があります。
したがって、移植性テストは、メリットがデメリットを上回る場合に一般的に好まれます。
この優れたチュートリアルを通じて、移植性テストの概念を明確に理解していただければ幸いです。
推奨読書
- 最高のソフトウェアテストツール2021 (QAテスト自動化ツール)
- ソフトウェアテストの種類:詳細を含むさまざまなテストの種類
- 機能テストと非機能テスト
- ソフトウェアテストQAアシスタントジョブ
- 実用的なソフトウェアテスト-新しい無料の電子書籍(ダウンロード)
- ソフトウェアテストにおける耐久性テストとは(例)
- アルファテストとベータテスト(完全ガイド)
- ソフトウェアのテスト中に箱から出して考える!