4.4 互換性テスト (Compatibility Testing)
「互換性(Compatibility)」 とは、同じハードウェアやソフトウェア環境を共有しながら、プロダクトやシステムが、他のプロダクトと情報を交換したり、それぞれの要求された機能を正常に実行したりできる度合いを指します。
ISO/IEC 25010 (2023) の最新のプロダクト品質モデルにおいて、互換性は以下の2つのサブ特性に分類されています。
- 共存性 (Coexistence)
- 相互運用性 (Interoperability)
かつての旧シラバスや古い規格では、相互運用性は「機能性」のサブ特性に分類されていましたが、最新の規格およびテストアナリスト(TA)シラバス v4.0 においては 「互換性」 の下に配置されています。TAはこれら2つの側面から、システムが外部環境や他システムと調和して動作するかを検証します。
4.4.1 共存性テスト (Coexistence Testing)
Section titled “4.4.1 共存性テスト (Coexistence Testing)”共存性テストは、テスト対象のソフトウェアが、同じ環境(同じハードウェア、OS、ネットワークなど)に存在する 「他のアプリケーションやシステムに悪影響を与えることなく、かつ自身も悪影響を受けることなく」、リソースを分け合って効率的に動作できるかを検証します。
TAが焦点を当てるべきポイント
Section titled “TAが焦点を当てるべきポイント”- リソースの競合の排除: テスト対象がメモリ、CPU、ディスク領域、ネットワークポートなどを独占(リーク)した結果、同じ端末で動いている別の重要なアプリがクラッシュしたり、極端に重くなったりしないかを確認します。
- 共有領域の安全性: 共通のテンポラリフォルダ、レジストリ、共有データベースなどを不正に上書き、あるいは削除してしまい、他システムのデータを破壊しないかを検証します。
- 副作用の監視: ソフトウェアのインストール時やアンインストール時に、他のアプリケーションが必要としている共有ライブラリ(DLLなど)を勝手に削除・変更してしまわないかをテストします。
4.4.2 相互運用性テスト (Interoperability Testing)
Section titled “4.4.2 相互運用性テスト (Interoperability Testing)”相互運用性テストは、2つ以上の製品、システム、またはコンポーネントが 「互いに情報を交換し、さらに交換されたその情報を正しく利用(解釈)できるか」 を検証します。
現代のシステムは、単体で完結することは稀であり、多くの外部API、サードパーティのサービス、あるいは古いレガシーシステムと複雑に連携しています。そのため、相互運用性はシステムの価値を担保するための極めて重要なテスト項目です。
TAが焦点を当てるべきポイント
Section titled “TAが焦点を当てるべきポイント”- データ交換の正確性: 送信側のシステムから出力されたデータ(JSON、XML、CSVなど)が、受信側のシステムで構造や意味を歪めることなく正確にパース(解析)され、処理されるかを検証します。
- データフォーマットと規格への準拠: 業界標準の通信プロトコルや、あらかじめ合意されたAPI仕様(スキーマ)に厳格に従っているかを確認します。
- エンドツーエンド(E2E)のデータ整合性: 単一のシステム内だけでなく、複数のシステムをまたぐ一連のビジネスプロセス(業務フロー)を実行した際に、全体のデータの整合性が保たれているかをテストします。
TAとしての適用ガイドライン
Section titled “TAとしての適用ガイドライン”互換性テストを効果的に進めるため、TAは以下の戦略を持ってアプローチします。
- 運用プロファイルの活用: ユーザーが実際にどのような環境(どのような他アプリが同時に動いているか、どのような外部システムと連携しているか)でシステムを使用するのか、現実的な 「運用プロファイル」 を特定し、それに基いてテスト環境とテストシナリオを設計します。
- 組み合わせテスト技法の適用: すべてのOS、ブラウザ、他アプリ、外部連携先の組み合わせを力技で網羅することは不可能です。そのため、「ペアワイズ法(オールペア法)」 などの組み合わせテスト技法を適用し、テストケースの数を現実的な範囲に抑えつつ、高い網羅性を確保します。
- テクニカルテストアナリスト(TTA)との連携: 相互運用性のテストにおいて、通信プロトコル自体の詳細な挙動の解析や、APIテストの自動化、あるいは共存性テストにおけるメモリ・CPUのモニタリングなどは、より技術的なスキルが求められます。TAはシナリオの設計やデータの整合性検証を担当し、技術的な評価やツールの運用については 「TTAや開発者と緊密に協力(コラボレーション)」 して進めることがベストプラクティスとなります。