API /および/またはUnitテストを含むUIからの自動テストを下位層にもたらすテスト戦略?

Background/Problem Statement: Recently I came
across a project team, which is having thousands of UI automated
tests covering all kind of manual tests including positive,
negative etc., and obviously struggling to maintain them with every
release with very high execution time. There is a rest API based
backend to support multiple application platforms.

Possible Solution: I am thinking to bring a
substantial number of tests on lower layers to reduce maintenance
and execution time.

Help required: In similar scenarios, what is
the strategy my fellow QA experts follow without impacting
agile tempo.

ベストアンサー

私のための重要な戦略は、何をテストする必要があるかをビジネスに納得させることです。それ以外の場合は、UIを介してすべてをテストすることになります…テスト自動化の必要性は、次の2つの重要な要素の点で優れています。

  • 速度

  • 信頼性

ソフトウェアテストの自動化でスピードと信頼性の両面で成功するのは難しく、ほとんどのテクノロジー企業は両方とも苦労しています。

スピード:
ソフトウェアテストの自動化の全体的な目標は、開発チームから各レベルで適切に要約されたさまざまなレベルの管理まで、あらゆるレベルのビジネスに迅速なフィードバックを提供することです。

ソフトウェアテストの自動化では、UIを使用してテストデータを作成したり、アプリケーションの状態を設定することは非常に遅く、場合によっては可能でもなく、必要なタイムリーなフィードバックを提供しません。
これはテストスピードの面で10倍以上の(そしてしばしば100倍以上)要因であり、自動化の開発とテストの両方の能力に劇的な影響を与えます。
7秒ではなく、ワークフローの特定の箇所にオートメーションが20分かかると、品質自動化の開発が実際的ではありません。また、同じテストを20種類のデバイスブラウザで実行しようとすると、その7秒間のテストで20×7
= 2 +時間がかかることを意味します。 10種類の変更を試してみたいと思っています(共通)。
信頼性:
当社は、顧客のデバイス、ブラウザ、バージョン、または異なるJavaScriptやレンダリングエンジンなどのクライアント側の特性を管理または選択することはありません。顧客デバイスは現在、バックグラウンドで毎日更新され、通信は非同期であり、ネットワーク接続は変更される可能性があります。これにより、信頼性の高い自動UIテストを行う能力が大幅に制限され、最善の努力をしても100%の信頼性が得られなくなります。これは、1つの会社が作成した問題ではなく、1つの会社が解決できる問題ではありません。主な影響の1つは、数時間と数日ではなく数秒で実行されるユニットテストと統合テスト(テストピラミッドとアイスクリームコーン)を可能な限り少数のUIテストで行うことです。私たちが持っているいくつかの自動化UIテストは、重複を避け、フロントエンドを通じてデータの組み合わせをテストするために注意深く選択する必要があります。

Internally, for test automation development, it is essential to
observe and structure testing based on the test pyramidenter image description here

アジャイルテストの四分円

enter image description here

開発プロセス全体を通じて迅速なフィードバックを得ることができます。

解決すべき2つの重要な技術的問題があります:

  • setting up test conditions and state without using the
    UI
  • controlling test and application state through APIs

従来、テスト自動化の必要性は、これらの2つの重要な技術的課題(十分な努力と決断で解決可能)に対処するために、実際にアプリケーションの開発、時間と費用を費やすことを正当化する重要なビジネス成功要因ではありませんでした。これは現在変更されており、テストの自動化は今日のビジネスの他の多くの努力と計画を支える非常に重要なビジネス成功要因でますます認識されています。

単体テストと統合テストとUIテストを分割する詳細</​​
em>戦略について、いくつかの考えが浮かび上がってくるでしょうか?

  • テストピラミッドの実際の動作を示す(例)60ユニット、12統合、4UIテストによる機能の例をいくつか作成します。
  • 単体テストのモックとスタブの依存関係を確認する
  • アプリケーションとオートメーションのエンジニアが作業のコードレビューを共有するようにします。
  • アプリケーション/オートメーションチームスペース領域で機能テストのアプリケーション環境の安定性を絶えず公開する
  • アプリケーションとオートメーション開発領域で絶えずテストステータス情報を公開する
  • アプリケーション開発者がユニットテストを作成し、コードカバレッジと品質測定ツールを継続的な統合コード開発プロセスの必須部分として使用するようにします。
  • アプリケーション開発者とUIオートメーションの開発者が物理的に接近しているため、簡単にドロップインチャットができます。
  • 少なくとも本質的に行うことができるまで、(単位、int、およびuatテストの点で)何をテストするかを決定するために、正式なトリアージシステムを作成することを検討します(例:バックログの洗練化中)。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です