既存のWebサイトのテスト自動化をどこから始めればよいですか?

アンドリューは尋ねます:

私は最近、最初のQAメンバーとしてWebベースの会社に参加しました。ウェブサイトは過去5年間に開発されており、この間、開発者や他のチームメンバーがテストを行っていました。

正式なQAまたはテストプロセスが実施されていないため、すべてのテストは大部分がアドホックになっています。


現在、ソフトウェア配信を担当しているマネージャーは、チームが新しい機能を開発するたびに実行できる自動回帰テストパックを作成することを望んでいます。

私の質問は、5年以上運用されているWebサイト用にこの回帰パックを構築するために、テスト自動化からどこから始めればよいのでしょうか。


任意のアイデア/提案をいただければ幸いです。

私の反応:

ウェブサイトが何年もの間機能し、ライブの顧客にサービスを提供していると、それは成熟した状態になります。成熟しているということは、システムに明らかな重大なバグがないことを意味します。バグがある場合は、誰もが簡単に見つけられない微妙な問題やエッジケースの問題になります。

私たちが何を すべきではない 行うことは、すでに開発され、システムの一部となったすべてのストーリーのテストを遡及的に作成しようとすることです。ただし、必要なのは、システムをエンドツーエンドで実行して、将来の開発によって既存の機能が危険にさらされないようにする一連の主要なシナリオです。


以下の手順は、主要なシナリオを見つけるために既存およびすでに確立されているWebサイトに使用できるいくつかのガイドラインと、これらを拡張して機能的な回帰パックを作成する方法です。

関連:

1.探索する

まず、Webサイトとその機能をよく理解する必要があります。サイトの探索から始めて、その動作を学びます。その際、ウェブサイトの構造、ページの種類、各ページの機能のマインドマップを作成することもできます。

マインドマップは、Webサイト全体の高レベルのスナップショットと概要を取得するための優れた方法です。マインドマップをいつでも参照して、ページがどのように接続されているかを理解できます。


2.指標を収集する

マーケティングチームや分析チームからサイトの使用状況の指標を収集します。ほとんどの企業は、ユーザーがサイトをどのように使用しているかを追跡できるように、GoogleAnalyticsなどの「追跡タグ」をWebサイトに埋め込んでいます。ユーザーの行動や一般的な情報については豊富な情報があります ユーザーの旅 これらの追跡システムから取得できます。

この情報を収集する必要がある理由は、最初に自動化するテストシナリオに優先順位を付けて、最短時間で最大の価値を得ることができるようにするためです。

3.主要なシナリオ

Webアプリケーションを介してコアエンドツーエンドシナリオを自動化することから始めます。これが「煙回帰パック」の基礎となります。たとえば、一般的なeコマースWebアプリケーションの場合、コアエンドツーエンドシナリオは次のとおりです。

ホームページ–>検索結果–>製品の詳細–>顧客のログイン/登録–>支払いの詳細–>注文の確認


まず、ホームページから注文確認ページに至るまで、ページを通過できることを確認するだけでよいことに注意してください。目的は、各ページの機能を詳細にチェックするのではなく、購入フローが壊れていないことを確認することです。

最も単純で最も一般的なユーザーフローをカバーしたら、さらにバリエーションを調べることができます。機能とページの組み合わせは多数ありますが、考慮する必要のあるシステム内のユーザーの移動は実際にはほんの一握りであることに気付くでしょう。

分析データを精査すると、ユーザーの80%が同じパスを通過しますが、データが異なることがわかります。したがって、これらのシナリオに基づいて煙回帰パックを作成する必要があります。

4.カバレッジを増やす

カバレッジについてのメモ。ここでは、テストカバレッジについては話していません。焦点は 機能カバレッジ


マインドマップを利用し、状態遷移テスト手法を適用してシナリオを構築することにより、煙回帰パックを拡張して、より広範な関数回帰パックを作成します。

エントリポイント -まず、システムへのエントリポイントを見つける必要があります。これらのエントリポイントは、ホームページ、製品詳細ページ、または SEM(検索エンジンマーケティング) 特定のページ。

特定のランディングページを特定したら、そのページにユーザーが操作できる機能を確認する必要があります。ここでマインドマップが非常に役立ちます。ページとその機能の概要を説明します。

ここでの機能の意味は、並べ替えオプションのプルダウンボックスのような単一のコンポーネント、ユーザーの詳細フォームへの入力、またはリンクをクリックするだけの簡単なものです。

初期状態 -アプリケーションのエントリポイントに最初に到達すると、そのページに関連付けられた状態があります。それをアプリケーションの初期状態として記録します。そのページの機能のいずれかを操作するときはいつでも、その初期状態を変更する可能性があります。

引き金 -一部の機能は、操作されると、同じページをロードするか(たとえば、並べ替えオプションは同じページを保持しますが、データは並べ替えられます)、または別のページに移行します(たとえば、有効なユーザー資格情報を送信します)。同じページまたは別のページへのこの遷移を引き起こすものは、送信ボタンなどのトリガーと呼ばれます。

アサーション -次に、アサーションがあります。アプリケーションの状態が変更されるたびに、機能を操作することにより、新しい状態のステータスを確認するためにアサーションを作成する必要があります。たとえば、有効なユーザーデータを含むログインフォームを送信する場合、ユーザーがログインしていることを表明する必要があります。

新しい移行でも同じ方法で続行するか、初期状態に戻って、マインドマップのすべての重要な機能をカバーするまで別の機能と対話することができます。

時間の経過とともに、より多くのシナリオが自動化されて定期的に実行されるため、新しいコードのデプロイに対する信頼度が高まります。