自動化されたAPIテストによるテスト戦略の最適化

自動化されたAPIテストによるテスト戦略の最適化|  mabl

※こちらのページは、mablのページを翻訳したものです。

ごく最近まで、APIテストは専用のツールで実行されるため、他のタイプの自動テストとは区別されており、テスト戦略全体への影響は限られていました。APIテストは、クロスブラウザテストやエンドツーエンドテストと重なることが多いため、多忙なQAチームは、より速く、より簡単に実行できるテストに優先的に取り組まなければなりません。

しかし、モノリシックアプリケーションからの脱却により、ソフトウェア開発中にAPIがはるかに普及しました。その結果、ソフトウェア組織は、ソフトウェアの構築方法とソフトウェアのテスト方法の間に知識と実現可能性のギャップを生じさせるリスクがあります。APIが、顧客がアカウントへのアクセスからオンライン購入まですべてを行う方法で主要な役割を果たす場合、すべてのテスターは、品質戦略の一環としてAPIテストを作成、実行、および維持できる必要があります。そうしないと、ソフトウェアチームは製品のパフォーマンスとユーザーエクスペリエンスに深刻なギャップを生じ、特定と修正が困難な顧客向けの欠陥のリスクが飛躍的に高まります。 

幸いなことに、ローコードテストの自動化は、APIテストの実行をより使いやすいものにし、QEチームの自動テスト戦略に組み込むことができるように、だんだんと実現可能なものとなってきています。

自動テスト戦略におけるAPIテストの位置付け

APIテストを行うことで、品質管理チームはテクノロジースタックのUIレイヤーとAPIレイヤー全体にテストカバレッジを拡張できます。自動化されたAPIテストは、単一のAPIを単独でテストするだけでなく、より大規模なエンドツーエンドテストのテストの一部としてテストすることも可能であるため、短縮された開発サイクルの中で複雑なアプリケーションをテストする必要があるアジャイルおよびDevOpsチームに特に適しています。時間とエネルギーに効果的に優先順位させるために、APIテストを品質工学の取り組みに統合しようとしている品質リーダーは、その可能性を理解する必要があります。

クロスブラウザテスト 

自動テストをできるだけ効率的に行うにはブラウザベースのテストをAPIテストで補完することで、時間のかかるブラウザテストを短縮し、テスト全体の時間を短縮することができます。API テストは、テスト環境の設定やテストデータの入力に使用することができます。これにより、エンドツーエンドの作業をメインに作業することができます。また、APIテストは、テスト環境が適切に作成されているかどうかを迅速に検証するためにも使用でき、欠陥のある環境によってテストに影響が出ないようにすることができます。また、APIテストのより的を絞った性質は、テストチームがテスト環境を破壊したり、クリーンアップしたりして、下流のテストが失敗しないようにする際にも役立ちます。

クロスブラウザテストと組み合わせることで、自動化されたAPIテストは、テスト対象のアプリケーションの安定性に関する迅速かつ一貫したフィードバックをすることができます。ユーザーは、アプリケーションやウェブサイトの問題をUIの欠陥やAPIのバグとして分類するのではなく、単に動作しない製品を見ているのです。APIテストとクロスブラウザテストが1つの自動テストプラットフォームに連携されていれば、失敗したテストから推測を排除し、コーディングの経験に関わらず、品質チーム全体が課題を迅速に特定することができます。

エンドツーエンドのテスト

エンド・ツー・エンド・テスト
最高のカスタマー・エクスペリエンスを実現するためには、E2Eテストが不可欠です。しかし、アプリケーションやカスタマージャーニーがより複雑になるにつれ、E2Eテストも複雑になっています。数年前までは、エンド・ツー・エンドのテストを実行するにはいくつかのステップが必要でしたが、今では完全なE2Eテストを実行するには、増え続ける顧客のタッチポイントを考慮する必要があり、その多くがAPIに依存しています。

ここでは、ある銀行のE2Eテストに必要な手順を見てみましょう。

  • メールリンクをクリック
  • ログイン
  • 残高確認
  • 残高が正しいことを確認する
  • アプリケーションのブラウザを使用して、サードパーティのプロバイダに送金する
  • APIコールを使って送金が受理されたことを確認する
  • APIの検証
  • PDFの検証

このエンド・ツー・エンドの一環としてAPIテストを使用することは、QEチームがサードパーティのアプリケーションやウェブサイトのUIをテストしないことを意味します。その代わり、サードパーティのAPIを使用してカスタマージャーニーを検証することができます。これにより、テストの対象を自社のアプリに限定することができ、E2Eテストをより安定したものにすることができます。このエンドツーエンドテストにAPIテストを組み込むことで、テストの正確性、安定性、そして十分なテストカバレッジを確保することができます。

サードパーティのリスクを軽減する

同様に、API テストは、サードパーティのソフトウェアを介して欠陥が持ち込まれるリスクを管理するためにも使用できます。大規模なエンド・ツー・エンドのテストを開始したり実行したりする前に、API テストはすべての社内およびサードパーティの API が利用可能かどうかを検証し、テストが失敗した場合はパイプラインを停止することができるため、ソフトウェアチームより迅速に問題を検出して対処することができます。

ブラウザベースのテストは非常に簡単に作成できるため、多くの品質管理チームがサードパーティのサイトとのやり取りをテストするために使用しています。一般的な使用例として、顧客が自分のアカウントにアクセスするためにSSOツールを使用する場合があります。ソフトウェア・テスターは、ID プロバイダの Web サイトにログインしてトークンを生成し、それをスクレイプするためのブラウザベースのテストを作成する代わりに、ID プロバイダの API と連携してトークンを生成する API テストを単純に追加することができます。サードパーティの ID プロバイダは、API よりもその Web サイトを変更する可能性がはるかに高いため、これによりテストはより速く、より安定したものになります。

QEチームは、APIのバグを捕らえるために大規模で時間のかかるテストに頼るのではなく、日常的に迅速なAPIテストを実行してテスト自動化戦略に取り組むことで、時間や労力を減らすことができます。また何か問題がが起こったときに、APIテストが課題を早期に発見し、顧客に影響を与える前にQEが課題への対処を進めることができます。

一元化されたテストは効率的な品質戦略の鍵となる

APIテストは、特に効率的かつ効果的な自動テスト戦略を開発する際に、アジャイルQAチームにさまざまなメリットをもたらします。しかし、テスト活動が信頼できるテスト自動化フレームワークに連携されないと、ユーザー・エクスペリエンスの重要な側面を見逃す冗長なテストを行う可能性が高くなります。APIテストが採用され、自動テストを連携しない限り、その可能性は大きく制限される。効果的なAPIテスト戦略は、テストカバレッジを向上させるだけでなく、テストチームがクロスブラウザやエンドツーエンドのテストに費やす時間を節約し、さらにサードパーティのソフトウェアによる混乱のリスクを低減します。

mablのような連携テストプラットフォームは、ブラウザとAPIのテストを連携し、より効率的なテストを実現するだけでなく、品質チームと開発チームのより良い関係を実現します。通常、ブラウザベースのテストを実行するための自動テストツールはQA専用と見なされ、開発者は組織の広範なテスト自動化戦略に関与したり、参加したりすることを躊躇します。しかし、テスト自動化プラットフォームが幅広い自動テストを可能にすると、その傾向は変わります。APIテストを作成したり開発したりすることが多い開発者は、テスト自動化プラットフォームを使用する理由ができ、ソフトウェアテストの可能性を十分に探り始めることができる。APIテストとブラウザテストが連携テスト戦略に組み込まれると、QEと開発チームの両方が、ブラウザベースのテストを簡単に作成するためにどのようなAPIエンドポイントを使用できるかを議論することができ、一般的なテスタビリティに関するさらなる議論を喚起することができます。テスタビリティが皆の頭の片隅にあれば、品質の文化はよりいっそう可能になるのです。

【mablお問い合わせ、トライアル】

mablに関するお問い合わせ、トライアルのご要望は下記からご連絡ください。

Posted by IMAMURAMai