互換性テストは多くの品質保証戦略の不可欠な要素であり、企業は自社のソフトウェアが異なるプラットフォーム間で正しく動作するかどうかを確認することができる。 デスクトップ専用のプログラムであっても、考慮すべき主要なオペレーティング・システムがいくつかあり、安定性に影響を与える可能性のあるハードウェアの違いは何百、何千とある。 互換性テストのプロセスとその通常の利点を理解することで、可能な限り多くのユーザーにリーチできる効果的な製品発売を保証することができます。
互換性テストは多くのメリットをもたらすが、この手法の可能性を最大限に引き出すために、ソフトウェアテストチームが克服しなければならない重要な課題も数多く存在する。 また、最良の結果を得るために、そして総合的なテストカバレッジを確保するために、これらの部門が採用すべき具体的なプラクティスもある。
この記事では、チームが従うべき重要な手順や、現在利用可能な最も便利なテストツールなど、互換性テストについて詳しく見ていきます。
互換性テストとは
ソフトウェア・テスト&エンジニアリング
互換性テストは、異なるデバイス、ハードウェア、ファームウェアを横断してソフトウェアを検査し、チームの期待通りに動作することを確認する。 すべてのユーザーが新しいデバイスでプログラムに参加する可能性があるため、企業がすべてのユーザーに同様の体験を保証できることが重要になる。 例えば、互換性テストでは、アプリの各機能をチェックし、すべての主要なオペレーティングシステムで動作することを確認する。
徹底的な互換性テストを行わなければ、企業が特定の人気デバイスで動作しないアプリケーションをリリースする可能性は十分にある。 このアプリケーションは、例えば、非常に特殊なタイプのグラフィックカードでは機能しないかもしれません。 他のソフトウェア・テストと組み合わせることで、品質保証チームは、プログラムがリリースに向けて準備万端であることを確認することができる。
1.モバイルアプリケーション、ウェブサイト、システム、クロスブラウザの互換性テストは、いつ、なぜ必要なのでしょうか?
企業は、ソフトウェアのテスト段階で互換性テストを実施する。特に、顧客にとっての動作を正確に反映したプログラムの「安定版」ができたときに実施する。 これはアルファテスト、受け入れテスト、そして一般的な安定性や機能関連の問題を調べるその他のテストに続いて行われる。 互換性テストの段階でアプリケーションが問題に直面する場合、それは通常、互換性に関連する特定の問題によるものです。 プログラムの開発サイクルの後半でちょっとした変更が互換性に根本的な影響を与えることがあるからだ。
ブラウザとソフトウェアの互換性テストが重要なのは、企業が事実上あらゆるデバイスで適切に動作することが分かっているアプリケーションをリリースするのに役立つからだ。 例えば、特にクロスブラウザ互換性テストは、Operaを使用している人々がFirefoxや他の主要ブラウザを使用している人々と同じ経験をすることを保証するのに役立ちます。 チームは通常、時間と予算が許す限り多くのハードウェア/ソフトウェアのバリエーションをテストする。 つまり、顧客が使用する可能性の高いシステムやブラウザにインテリジェントに優先順位をつけ、幅広いテストカバレッジと実行可能な製品を保証しなければならない。
2.ソフトウェアの互換性テストが不要な場合
企業は、特定のオペレーティング・システムやモデルのために特注のアプリケーションを作成し、必要なチェックの数を大幅に制限するかもしれない。 例えば、このプログラムがブラウザを必要としない場合、ソフトウェアテストにおけるクロスブラウザ互換性テストは冗長になる可能性がある。 テストチームは、主要なシステムやブラウザーがソフトウェアと互換性があることを保証するために働くべきであるが、時間もまた、企業がこれらのテストを実行する能力の重大な要因である可能性がある。 また、基本的な互換性テストの恩恵を受けられないプロジェクトもある。
3.互換性試験には誰が関わっているのですか?
ソフトウェア・テストにおける互換性テストを実施する主な人々を紹介しよう:
1.開発者
開発チームは、開発中に1つのプラットフォーム上でアプリケーションのパフォーマンスをチェックし、それが、企業がプログラムをリリースする予定の唯一のデバイスである可能性さえある。
2.テスター
社内の品質保証チーム、あるいは社外に雇用された品質保証チームは、アプリケーションの互換性テスト段階の一環として、すべての主要なオペレーティングシステムとブラウザを含む、多くの可能な設定をチェックする。
3.お客様
同社の顧客は、チームが徹底的にテストできなかったハードウェアや構成を持っているかもしれない。
互換性テストのメリット
ソフトウェアの互換性テストには、通常次のような利点がある:
1.幅広い観客
チームがソフトウェアを徹底的にテストすればするほど、より多くのデバイスに自信を持ってリリースすることができ、多くのプラットフォームで多くの人々がアプリケーションを楽しめるようになる。 これにより、企業はより多くの製品販売を獲得することができ、また、このソフトウェアがユーザーから受ける好意的なレビューの数を向上させることができる。
2.安定性の向上
ソフトウェアテストにおける互換性テストは、安定性とパフォーマンスの問題を浮き彫りにするために不可欠です。 システム互換性テストは、(さまざまなデバイスの)ユーザーがソフトウェアの全体的なパフォーマンスから何を期待できるかを示す。
3.開発を洗練させる
これらのテストはまた、開発チームに長期的に大きな影響を与える。 例えば、モバイル互換性テストは、企業が追加プログラムを作成する際に考慮すべき、アプリ開発に関する貴重な情報を提供することができる。 これにより、将来のプロジェクトで互換性テストにかかる費用を大幅に削減できる可能性があり、このプロセスから学んだ教訓を再利用することができる。
4.他のテストの検証
ここまでのテストのほとんどは範囲が限定されており、ありとあらゆるハードウェアやソフトウェアの組み合わせをテストしているわけではない。 例えば、クロスブラウザ互換性テストは、ユーザーが異なるブラウザを使用しても結果が同じであることを示すことで、既存の品質保証段階を検証する。
5.コスト削減
互換性テストは、アプリが一般公開される前にチームが問題を特定できるため、現在のプログラムのコストを削減することもできます。 チームのテストが多様であればあるほど(そしてテストカバレッジ率が高ければ高いほど)、エラーが発生したときにそれを除去するコストは安くなる。
互換性テストの課題
ここでは、ソフトウェア・テストにおいて互換性テストを実施する際に、企業が直面する可能性のある一般的な課題を紹介する:
1.限られた時間
自動化ツールやその他のソリューションは、さまざまなデバイスをシミュレートすることで互換性テストを大幅にスピードアップできるが、それでもこのプロセスは企業の開発スケジュールに従わなければならない。 つまり、テストチームは、最も幅広い(そして最も人口の多い)オーディエンスを保証するために、最も一般的なデバイスとブラウザを優先しなければならない。
2.実機不足
このようなチェックには、実際のデバイスの部品や状態をシミュレートする仮想マシンが使われるのが一般的で、これは、関連する部品やプラットフォームを独自に入手するよりもはるかに安価(かつ迅速)である。 しかし、これは結果の精度に影響を与える可能性がある。特に、性能はユーザーが実際のデバイスをどのように操作するかに左右されることが多いからだ。
3.将来の保証が難しい
互換性テストは、すでに存在するプラットフォームにしか関与できない。つまり、アプリケーションがWindowsやGoogle Chromeの将来のバージョンで期待通りに動作することを保証することはできない。 組織は、発売後にしかこの問題を解決できないが、それは多くの場合、より高価であり、その結果、アプリケーションは最終的に時代遅れになるかもしれない。
4.インフラ整備
もし、チームがかなりの量のプラットフォームを社内でチェックすることを決めた場合、高額なインフラ料金が発生する可能性がある。 例えば、モバイル・アプリケーションの互換性テストには、多数の実際のモバイル・デバイスを調達する必要があるかもしれない。 これは、ハードウェアの互換性テストをシミュレートするよりも正確ではあるが、コストがかかり、通常、定期的なメンテナンスが必要となる。
5.組み合わせの多さ
互換性テストは、オペレーティングシステム、ブラウザ、ハードウェア、ファームウェア、さらには画面の解像度など、多くの交差する要素を考慮します。 たとえテストチームに多くの時間があったとしても、あらゆる可能性に対応することは事実上不可能だ。 コンフィギュレーションと互換性のテストでは、最も可能性の高いデバイスの組み合わせを再度優先しなければならない。
互換性テストの特徴
互換性テストの主な特徴は以下の通りである:
1.徹底した
これらのチェックは、デバイス間で発生する可能性のある互換性の問題を切り分けることができなければならない。 例えば、これらのチェックは、ユーザーの画面解像度に関係なく、アプリケーションのすべての機能が期待通りにレンダリングされることを確認しなければならない。
2.拡張性
テストは深さと広さのバランスを保ち、チームが多くのデバイス構成にわたって多くの問題を調査できるようにする必要がある。 クロスブラウザ互換性テストは、OSとブラウザの組み合わせを広範囲に調べ、高いカバレッジレベルを確保します。
3.双方向
このプロセスには、後方互換性テストと前方互換性テストの両方が含まれる。前者では、古いハードウェア上でアプリがどのように動作するかを確認することができる。 後者は、チームが最先端のプラットフォームにアクセスすることを可能にし、たとえ将来的な能力がかなり限られていたとしても、長期的なパフォーマンスを保証するのに役立つ。
4.繰り返し可能
これらのチェックで発見された問題は、他のテスターや部門が簡単に繰り返すことができ、ユーザーが遭遇しそうなエラーを反映していることを示すものでなければならない。 ウェブサイトの互換性テストで、特定の機能が特定のブラウザーで機能しないことが判明した場合、再現性があるため、開発者は問題に対処しやすくなります。
互換性テストの種類
互換性テストの主な種類は以下の通り:
1.後方互換性テスト
後方互換性テストでは、現在のハードウェアの古いバージョンを使用してアプリをチェックします。このようなチェックを最新のデバイスに制限すると、ユーザー数が大幅に制限される可能性があるため、これは不可欠です。 たとえばウィンドウズ8など、古いOSをいまだに使っている人は多い。
2.前方互換性テスト
前方互換性テストも同様だが、その代わりに、アプリが進歩やアップデートにもかかわらず、何年も機能し続ける可能性があるかどうかを調べるために、最新技術や今後の技術に注目する。 これらのテストがなければ、たとえば次のブラウザのアップデートでソフトウェアが機能しなくなる可能性さえある。
3.ブラウザ互換性テスト
ウェブサイトのブラウザ互換性テストは、ウェブアプリケーションやサイトがさまざまなブラウザで動作することを保証します。 品質保証チームは、クロスブラウザの互換性さえテストする。つまり、各ブラウザが別々のオペレーティングシステムでアプリケーションを処理できるかをチェックするのだ。
4.モバイル互換性テスト
モバイルアプリのテストは、デスクトップやウェブアプリケーションのチェックと同様のプロセスであり、特に携帯電話のOSはもう一つの重要な考慮事項である。例えば、Android アプリとiOSアプリは全く異なるフォーマットで提供されており、両方に対応するためには全く別の開発・テストプロセスが必要になります。
5.ハードウェア互換性テスト
これらのチェックは、マシンを構成する特定のコンポーネントと、それらがプログラムにどのような影響を及ぼす可能性があるかを調べるもので、事実上、どのようなタイプの装置にとっても重要である。 例えば、あるコンピュータのグラフィックカードが、ウェブアプリケーションのインターフェイスを正常にレンダリングできないことがあります。
6.デバイスの互換性テスト
アプリケーションによっては、ブルートゥース、ブロードバンド、有線接続を通じて外部機器と接続するものもある。 例えば、アプリはプリンターと接続する必要があるかもしれない。 これらのテストは、プログラムがプラットフォーム自身の接続やアクセス可能なデバイスと連動することを確認することを目的としている。
7.ネットワーク互換性テスト
アプリケーションの実行にネットワーク機能が必要な場合(例えば、会社のサーバーを通じてオンライン・データベースに接続する場合など)には、数多くの互換性チェックが必要になる。 これにより、Wi-Fi、4G、または3Gネットワーク接続で適切な速度でプログラムを実行できるようになります。
互換性テストでは何をテストするのか?
互換性テスターは通常、以下をチェックする:
1.パフォーマンス
互換性テストの主な目的の1つは、アプリケーションのいくつかの側面が一般的なプラットフォームと完全に互換性がない可能性があるため、安定性を確保することです。 このプログラムの全体的な応答性を見ることで、テストチームは特定のデバイスで深刻なクラッシュがないことを確認する。
2.機能性
互換性テストでは、ソフトウェアが正しい結果を提供できることを確認するために、アプリケーションの一般的な特徴や機能もチェックします。 例えば、顧客関係管理システムは、古いオペレーティングシステムを使用しているユーザーには、販売データや一般的な分析を提供できないかもしれない。
3.グラフィックス
ブラウザやデバイスによっては、さまざまな理由で特定のグラフィック要素のレンダリングに苦労することがあります。 開発者がプログラムのコンテンツ表示方法を変更しない限り、プログラムは特定の画面解像度にしか対応できないかもしれない。
4.接続性
互換性テストでは、プログラムがユーザーのデバイスと独自のデータベースの両方とどのように統合され、プリンターなどのデバイスを検出できるかも調べます。 これらのチェックは、例えば、アプリが3Gネットワーク上で自身のデータベースと接続できないことを明らかにするかもしれない。
5.汎用性
これらのチェックは、後方互換性テストと前方互換性テストを通じて、その会社のアプリケーションが同じオペレーティングシステムの新旧バージョンで動作するのに十分な汎用性を持っていることを確認する。 これにより、ユーザーが使用しているソフトウェアが数年前のものであっても、プログラムから締め出されることはない。
互換性試験からの出力の種類
互換性テストの主なアウトプットは以下の3つである:
1.テスト結果
これらのチェックの最も一般的なアウトプットは、結果そのものである。 例えば、ブラウザの互換性テストによって、あるウェブアプリがMicrosoft Edgeでメモリリークを起こす一方で、同じアプリがChromeベースのブラウザでは悪影響を及ぼさないことが判明する場合があります。 あるいは、関連するプラットフォーム上で、チームが期待するとおりにアプリケーションを動作させることもできる。
2.テストログ
テスト結果は、アプリケーション自身のログという形でも現れ、発見されたソフトウェアの問題がエラーメッセージによって強調される。 これらのログは、このエラーを引き起こしているプログラムの特定の部分を特定することもできる。 特に互換性テストでは、テスターは、これらのログが異なるプラットフォーム間でどのように現れ、どのように問題を提示するかを熟知していなければならない。
3.テストケース
互換性テストケースは、チームが実行するテストを設定し、その結果をシンプルな形式で記録するためのスペースを提供する。 テスト担当者は、結果やログと合わせて、ソフトウェアに関する知識を駆使して問題の原因を特定しなければならない。 彼らがより多くの情報を提供すればするほど、開発者はより早くバグフィックスを開始することができる。
検出された欠陥の種類
互換性テストを通じて
以下は、互換性テストで確認できる最も一般的なエラーである:
1.レイアウトスケーリング
ウェブサイトの互換性テストは、ウェブアプリやウェブページを構成する要素が、ユーザーのデバイス、特に画面の解像度とサイズに合わせて拡大縮小されるかどうかを示すことができます。 そのため、特定のブラウザでは一部のグラフィックが見づらい場合があります。
2.ソフトウェアのクラッシュ
互換性テストは、アプリケーションがいくつかのプラットフォームで実行可能かどうかを簡単に確認することができます。 例えば、ゲーム開発者は、テスターがゲームを起動したときに、どのデバイスがRAMやプロセッサの速度不足でクラッシュするかをチェックすることで、製品の最小システム要件を発見することができる。
3.HTML/CSSバリデーションの問題
HTMLタグを適切に閉じていないなど、単純なコーディングのタイプミスを自動的に修正するものもある。 ブラウザの互換性テストでは、アプリのコンテンツや基本的な機能の生成を妨げる無効なCSSのインスタンスが特定される可能性があります。
4.ビデオ再生エラー
最近のビデオプレーヤーの多くは、HTML5を利用してオンラインでビデオをストリーミングしており、これは企業のウェブアプリケーションの重要な部分となる可能性がある。 しかし、ウェブサイトのブラウザ互換性をチェックするチームは、アプリの動画機能が古いブラウザと互換性がないことに気づくかもしれない。
5.ファイルセキュリティ
ソフトウェア・エンジニアリングにおける互換性テストは、ファイル・セキュリティの問題や、それがデバイスによってどのように異なるかを見つけることもできる。 例えば、ウィンドウズの新しいバージョンは、より強固な入出力セキュリティを備えている。 これにより、アプリケーション(ウイルス対策ソフトなど)がデバイスのファイルにアクセスするのに苦労することになる。
互換性テストプロセス
互換性テストの通常の手順は以下の通りだ:
1.テスト計画の作成
互換性テストには、包括的なテスト計画が不可欠である。品質保証チームは、チェックの際に必要に応じてこれを参照することができる。 たとえば、テストする機器や合否の基準、ロボットによるプロセス自動化を使用するかどうかなどである。
2.テストケースの設定
テストケースも同様に重要で、チームが実行する特定の互換性チェックや、使用する特定のデバイスについて詳しく説明している。 これには、テスターが行う正確な手順と、その結果や開発者が互換性を強化するのに役立つ情報を記録するための十分なスペースも含まれています。
3.テスト環境の構築
外部からの影響を受けない独立したテスト環境は、正確なテストを保証するために必要であり、また、品質保証チームが発見した問題がどこから来ているのかを特定するためにも必要である。 その上、テスターは「実際の」バージョンを損なうことなく、アプリケーションのチェックを行うことができる。
4.テストの実行
テストケースと環境を完全に準備した上で、チームは互換性テストを開始することができる。 テスターは、これを考慮し、最も一般的なオペレーティングシステムとデバイス構成に優先順位をつけ、これらの制限にもかかわらず、幅広いテストカバレッジを確保する必要がある。
5.再試験
テストが完了し、テストケースを受け取った開発者は、互換性を向上させる方法でアプリケーションを修正する。 その後、テスターはアプリを再チェックし、以前に発見した問題がもはや存在せず、新たな重大なエラーがないことを確認する。
一般的な互換性テストの測定基準
以下は、互換性テストに使用される一般的な測定基準です:
1.帯域幅
ネットワーク互換性テストでは、アプリケーションがブロードバンドやモバイルデータネットワークを含むさまざまなネットワークとどのように連携するかを測定します。 プログラムが通常の業務を遂行し、会社のデータベースに接続するために必要な最低帯域幅は、たとえば平均的な3G接続では高すぎるかもしれない。
2.CPU使用率
パフォーマンスの問題が顕在化する1つの方法として、CPU使用率が不釣り合いに高いことが挙げられます。これは、デバイスがプログラムの最低要件を満たしていないことを意味します。 CPUの問題はアプリケーションのレスポンスタイムにも影響し、機能を制限したり、ユーザーの興味を失わせるほどのラグを引き起こしたりする可能性がある。
3.システム・ユーザビリティ尺度
システム・ユーザビリティ尺度は、プログラムの主観的な詳細を測定する一般的な方法であり、アプリのユーザビリティに関する10の基本的な質問で構成されている。 結果のSUSスコアは100点満点で、グラフの誤差によりプラットフォームごとに異なる場合がある。
4.不良品の総数
この指標は、ほとんどのテストタイプで一定であり、テスターにプログラムの現在の健全性を理解させる。 また、さまざまなプラットフォーム間で欠陥の合計を比較することも可能だ。 こうすることで、テスターは非互換性に起因するエラーを強調することができる。
5.SUPRQスコア
アプリケーションのSUSスコアと同様に、標準化されたユーザー・エクスペリエンスのパーセンタイル・ランク質問票は、テスターがユーザビリティや外観を含むいくつかの重要な要素についてアプリケーションを評価する方法です。 これは、顧客が特定のデバイスでアプリケーションを使用する際にどのように苦労するかを特定するのに役立つ。
互換性テスト実施における7つの過ちと落とし穴
互換性テストを実施する際に避けるべき7つの重大な間違いを紹介しよう:
1.実機不足
ありとあらゆるデバイスの組み合わせでテストすることは不可能だが、それでもテストチームは、調達できる限り多くの実デバイスを使用することで利益を得ることができる。 さまざまなプラットフォームが、ネイティブのパフォーマンスを反映できる方法でクロスブラウザ互換性テストを容易にするために、クラウド・ソリューションを通じて「実際の」デバイスを提供している。
2.古いデバイスを避ける
多くのユーザーは、いまだにWindowsやiOSの古いバージョンでアプリケーションにアクセスしている。人気のあるデバイスやオペレーティングシステムの新しいエディションだけに焦点を当てると、製品のリーチが制限される可能性がある。 もしチームが “時代遅れ “のデバイスにまでテストを広げなければ、かなりの数の視聴者がプログラムを使うのに苦労するかもしれない。
3.時間の不始末
互換性テストが必要となるデバイスや構成は大量に存在することが多く、チームは可能な限り多くのものをチェックするために時間を管理しなければならない。 これは、開発終了間際のテストがまだ進行中であることが一般的であるため、重要である。
4.不適切なスケジューリング
同様に、チームがプログラム開発の妥当な段階で、できればアルファテストやほとんどの機能テストの後で、これらのテストを実施することが最も重要である。 これにより、ある問題が一般的な欠陥なのか、それともチームが調査している機器に特有のものなのかを容易に確認できる。
5.画面解像度を考慮しない
画面の解像度は、多くのテストチームが認識しているよりも、互換性においてはるかに大きな要因となりうる。特に、これはカスタマイズ可能であり、デバイスがグラフィック要素をどのように表示するかに影響を与えるからだ。 互換性テストの締め切りが迫っていても、テストチームは戦略の中でこれに対応できるよう取り組むことが肝要だ。
専門知識の欠如
テスターは、ウェブサイト、ブラウザー、ソフトウェアの互換性をチェックするために高度な技術を必要とする。 テスト・リーダーがチーム・メンバーのひとりに互換性チェックを担当させたとして、そのメンバーに十分な経験がなければ、テストのスピードが落ち、精度が低下する可能性がある。
6.事前の議論なし
互換性テストには時間がかかることが多いため(また、さまざまなデバイスを必要とする可能性もある)、チームは品質保証の初期段階でチェックの範囲を十分に設定する必要がある。 例えば、チェックを開始する前に、どの特定の機器や構成をテストするつもりなのかを明確に把握しておかなければならない。
互換性テストのベストプラクティス
高品質の互換性テストを確実に行うための最善の方法には、以下のようなものがある:
1.開発期間中のテスト
ソフトウェアは週ごとに大きく変化するため、プログラムが意図したデバイスとの互換性に影響を与える可能性がある。 開発チームは、ソフトウェアとクロスブラウザの互換性テストを繰り返し実施し、開発変更後もこれらのプラットフォームでアプリケーションが正常に動作することを確認する必要があります。
2.実機を使用
互換性テストツールの中には、そのプラットフォームでのユーザー体験に近い「本物の」シミュレートされたデバイスにアクセスできるものもある。 これにより、自動化されたソリューションにはない高い精度を維持しながら、より多くのデバイスで互換性を確保することができます。
3.テストの優先順位
これらのチェックを行う時間が限られているため、互換性テスターは最も一般的なデバイス、ブラウザ、オペレーティングシステムを優先する必要があるかもしれません。 同様に、テストチームは、これらのデバイス上での基本的な機能を保証するために、ソフトウェアの最も重要な機能を最初に検査すべきである。
4.アジャイル技術の統合
互換性テストにスプリント・ベースのアプローチを採用する企業もあり、特定の数のデバイスをチェックするなど、テストのマイルストーンを容易に達成することができます。アジャイルは、部門を超えたコミュニケーションを促進すると同時に、一貫した迅速な改善を保証する一連のテスト構造を提供します。
5.テスト範囲を限定する
品質保証チームは、いつテストを終了し、非互換の事例を受け入れるべきかを知っていなければならない。 この場合、開発者はソフトウェアを変更せず、バグ修正によって回避することが困難であれば、代わりに最低要件を変更することができる。
互換性テストケースとシナリオの例
互換性テストケースは、テストチームのインプット、テスト戦略、期待される結果を確立する。 チェックは多くのデバイスとコンフィギュレーションに及ぶため、これはしばしば大規模なプロセスとなる。
このようなケースには通常、以下のようなものがある:
– ウェブアプリケーションのHTMLが正しく表示されることをテストする。
– ソフトウェアのJavaScriptコードが使用可能であることを確認する。
– アプリケーションが異なる解像度で動作するか確認してください。
– プログラムがファイル・ディレクトリにアクセスできることをテストする。
– アプリがすべての実行可能なネットワークに接続されていることを確認してください。
ソフトウェア・テストにおける互換性テストの具体例を、プログラム別に紹介しよう:
1.ソーシャルネットワーキングアプリ
ソーシャル・ネットワークは一般的に、ブラウザ上のウェブ・アプリと対応するデバイス用のモバイル・アプリの形態をとる。 例えば、このモバイルアプリは、最低でもiOSとアンドロイド端末で完全に動作するものでなければならず、チームはそれぞれのOSで新旧の端末をチェックする。 例えば、iPhoneの特定のモデルがアニメーションGIFファイルをレンダリングできない場合、一貫したユーザー体験を保証するために、チームはその原因を特定しなければならない。
2.ビデオゲーム
ビデオゲームは一般的に、ユーザーが自分のマシンに合わせて変更できるカスタマイズ可能なグラフィックオプションを提供している。 プレイヤーの特定のハードウェアによっては、アンチエイリアシングのエラーによってグラフィックが粗くなるなどの問題が生じることがある。 これは、同社のテクスチャレンダリングと互換性のない一般的なグラフィックカードが原因である可能性がある。 正確な問題によっては、特定のデバイスでゲームを起動したときにシステムクラッシュが発生することもあります。
3.CRMクラウドシステム
顧客関係管理ソリューションは、主にクラウドストレージの助けを借りて、取引、ベンダー、およびビジネスの他の重要な側面に関する情報を取得するためにデータベースを多用している。 テスターは、このデータベースとそのクラウドサービスが、ユーザーがインターネット接続なしでアクセスする必要がある場合、3Gや4Gを含む異なるネットワーク上で動作することを確認する必要がある。 また、特定の不具合が Linuxデバイスにのみ現れる可能性もあるため、チームは幅広いOSを検査しなければならない。
互換性テストは手動か自動か?
自動化は互換性テストに非常に役立ち、チームは 手動アプローチよりもはるかに迅速に大量のデバイスをチェックできる。 しかし、限られた数のブラウザやデバイスでチェックを行う場合、例えば、2つのプラットフォームでしか利用できないビデオゲームなどでは、手作業によるテストの方が適切かもしれない。 ソフトウェアの使いやすさは、互換性テストの中核をなす要素であることが多く、通常、グラフィカル・レンダリングの問題をよりよく特定できる人間の視点が必要とされる。ロボティック・プロセス・オートメーションは、互換性テストに対する人間のユーザーのアプローチをより簡単に模倣できるソフトウェア・ロボットを実装することで、これを支援することができる。
モバイルアプリやウェブアプリなど、さまざまなデバイス向けに設計されたプログラムでは、自動化によってチームはより広範なテストカバレッジを確保できる。 ハイパーオートメーションを使って、これらのチェックをインテリジェントにアウトソーシングすることで、人間のテスターがこれらのプラットフォームでユーザー固有の機能を検査することを保証することもできる。 手動テストにおける互換性テストは、すべてのデバイスでUIが正しく表示されることを確認するなど、一部の作業では依然として必須である。 つまり、最適なアプローチは、自動化によって全体的により多くのデバイスをテストし、ユーザビリティの重要性を考慮しながらも、そのペースを上げることができるブレンド戦略である可能性がある。
互換性テストを開始するには何が必要ですか?
互換性テストの主な前提条件には通常、以下のものが含まれる:
1.有資格の検査スタッフ
互換性テスターは一般的に、他の品質保証の形態よりも高いスキルを要求されます。これは、より幅広いデバイスをチェックし、より多くのエラーに遭遇することが多いためです。 これには、問題解決、コミュニケーション、細部への注意などが含まれる。 チームリーダは、多くのプラットフォームで同じアプリケーションを検証した経験のあるテスターをアサインすべきです。
2.強力なデバイス・エミュレーション
チームの範囲内ですべての物理デバイスを調達してテストするのは難しいため、同じプログラムに対してさまざまなプラットフォームがどのように反応するかを確認するためにはエミュレーションが不可欠となる。 このプロセスが完璧であることはほとんどなく、テスターは利用可能な多くのエミュレーターや自動テストツールを見て、どれが最も精度が高いかを見極めなければならない。
3.明確なテスト範囲
チームはチェックを開始する前に、自分たちのスコープを理解しておく必要がある。特に、これによって作業のペースが決まる可能性があるからだ。 プログラムは多くのプラットフォームをカバーすることを目的としているかもしれないが、テスターは適切なカットオフポイントを特定すべきである。 例えば、ウィンドウズ7より前にリリースされたOSをテストしても、収穫が減るかもしれない。
4.時間管理
互換性テストは、品質保証の段階を通じてどの時点でも実施できますが、一般的には開発の最終段階、つまりプログラムが安定し、機能が完成した時点で実施されます。 しかし、テスターは時間がかかることが多いので、これよりずっと前に互換性を検討すべきである。 事前に綿密な計画を立てることで、チームはすべてのチェックに十分な時間を確保できる。
互換性テスト
チェックリスト、ヒント&トリック
以下は、品質保証チームが互換性テストを実施する際に留意すべきその他のヒントである:
1.絶対的なカバー率を目標にしない
どのようなテスト戦略も、テストカバレッジを最大化することを目標としているが、ごく少数のユーザーにとってわずかな改善しか得られず、収穫が逓減するため、100%に到達する前にやめてしまうのが一般的である。 互換性の観点から、チームは、このようなチェックを行う価値があるにもかかわらず、そのデバイスを使用する顧客が少なすぎる場合を理解すべきである。
2.クロスブラウザの組み合わせを優先する
クロスブラウザ互換性テストでは、各ブラウザをさまざまなオペレーティングシステムでチェックします。 テスターは、視聴者に関する包括的なアナリティクスを使用して、両者のうち最も人気のあるものを判断し、これをアプローチの指針にしなければならない。 ブラウザの互換性マトリックスを作成し、これらのチェックの範囲と多様な設定を確立することもできるだろう。
3.レイアウトの確認
一貫したエクスペリエンスを保証することが互換性テストの核心であり、これらのチェックは、プログラムの機能が異なるデバイスで動作するかどうかを識別することよりも深いものでなければならない。 チームは、フォームやテーブルの配置、プログラムのCSSやHTMLの整合性など、ソフトウェアの全体的なレイアウトも確認する必要があります。
4.APIのチェック
アプリケーション・プログラミング・インターフェースは、ブラウザがアプリを読み取る方法の核となる要素であり、チームのクロスブラウザ互換性テストには不可欠です。 ウェブブラウザはそれぞれ独自のAPIコールを持ち、時間の経過とともに更新されるため、互換性に影響を与える可能性があります。 テスターはこれらを定期的にチェックしなければならない。たとえ会社が各プログラムに同じようなAPIを使っていたとしても。
5.SSL証明書を調べる
SSL証明書はブラウザのセキュリティを高め、ウェブトラフィックを暗号化し、ユーザーがHTTPSプロトコルの恩恵を受けられるようにします。 ウェブサイトやウェブアプリは、特定のブラウザと互換性のない証明書を持っている可能性がある。 つまり、テスターはすべての主要プラットフォームで証明書を検証し、ユーザーが安心してウェブサイトを利用できるようにする必要がある。
6.ビデオプレーヤーの検証
ストリーミングサービスや広告付きのフリーミアムモバイルゲームなど、動画を表示するプログラムは、これらの動画が意図したすべてのデバイスで表示されることを確認するためのテストを受ける必要があります。 多くのアプリの場合、これらのチェックはデスクトップとモバイルデバイスの両方を含み、ビデオの品質、速度、フレームレートを調べることができる。
互換性テストツール&ソフトウェア ベスト5
互換性をテストするための最も効果的な無料・有料ツールには、以下のようなものがある:
1.ZAPTEST 無料版・エンタープライズ版
ZAPTESTはFree版とEnterprise版(有料)の両方で優れた機能を提供し、あらゆる規模(または予算)の企業の互換性チェックを支援します。 ZAPTESTのエンタープライズ版を選択した企業は、当初の投資の10倍ものリターンを享受することもできる。 このソリューションの1SCRIPT機能は、特に互換性テスターのニーズに適応しており、コードを修正することなく、まったく同じテストを複数のプラットフォームで実行することができます。 追加費用なしで最先端のRPA機能を追加すれば、あらゆるタスクの自動化ソリューションがワンストップで実現します。
2.ラムダテスト
LambdaTestは、3,000の自動化されたデバイスを提供するためにクラウドベースのアプローチを使用している。 このプラットフォームは継続的テストに特化しており、品質保証プロセスを開発により密接に統合している。 このアプリケーションのチェックでは、ユーザーが解像度を設定することもできるので、クロスブラウザの互換性テストがより簡単になる。 このソリューションはフリーミアムモデルを提供しているが、これにはアップグレードなしの限定的なテストと実際のデバイスが含まれていない。
3.BrowserStack(ブラウザースタック
LambdaTestと同様に、BrowserStackは3,000の実デバイスへのアクセスを提供している。彼らのカタログには、ブラウザのレガシーとベータ版オプションも含まれている。 人々はOSよりもブラウザをアップグレードする可能性が高いが、古いバージョンを使っている人も多いだろう。 また、ユーザーはジオロケーションテストを実施し、ウェブサイトやウェブアプリが異なる国でどのように見えるかを確認することもできる。 しかし、無料やフリーミアムのオプションはなく、実機テストには時間がかかる。
4.テストグリッド
TestGridは並列テストを可能にし、チームが複数の組み合わせを同時にチェックすることで、プロセスをスピードアップさせる。 このソリューションは、テストや開発のワークフローともうまく統合され、部門のスプリントの重要な部分を形成することで、アジャイル・アプローチを促進する可能性もある。 しかし、TestGridはクラウドデバイスやブラウザとの接続に苦労することがある。 その上、このプログラムは、負荷テスト、文書化、会社のセットアップへの新しいデバイスの追加という点で、かなり制限されている。
5.ブラウザ
Browseraは主に、ウェブサイトがさまざまなデバイス、ブラウザ、オペレーティングシステムで正しく表示されることを確認するためのテストに重点を置いています。 クラウドベースのアプローチであるため、品質保証チームはこの仮想テストラボを各自のデバイスにインストールする必要がない。 また、Browseraは出力を比較することで、人間のテスターでさえ見逃してしまうようなレイアウトの問題やJavaScriptのエラーをインテリジェントに発見することができます。 しかし、BrowseraはOperaを含むいくつかの一般的なブラウザをサポートしておらず、基本的なテスト機能のみを無料で提供している。
結論
互換性テストは、品質保証戦略を成功させるために不可欠であり、チームは幅広いデバイスでアプリを検証することができます。 このテクニックを取り入れなければ、企業は発売後まで、自社のソフトウェアがターゲットオーディエンスの多くに通用しないことに気づかないかもしれない。 これには、リリース前のテストに比べて多くの時間とコストがかかるが、ZAPTESTのようなアプリケーションを使えば、このプロセスをさらに効率化できる。 1SCRIPTをはじめ、並列テストなど多くの機能が無料で利用できるため、ZAPTESTをテストツールとして選択することで、チームにアプリケーションに対する全幅の信頼を与えながら、あらゆるプロジェクトを変革することができます。