オートメーションテストチュートリアル:はじめに

目次

オートメーションテストテストテストテストテストテストテストテストテストテストテストテストテストテストテストテストテストテストテストテストテストテストテストテストテストテ

その名の通り。 自動化テストは、ソフトウェアのテスト活動を受け取り、自動化ツールセットまたはフレームワークを介して実行します。 簡単に言えば、ツールが定義されたパターンで一連のタスクを自動的に実行するテストの一種です。

それは手動テスターを離れて圧力を取り、それらがより価値の高い仕事に焦点を合わせることを可能にする-探索的なテスト、試験結果の検討、等。 基本的に、マシンは、回帰テストなどの日常的で反復的で時間を混乱させるタスクを引き継ぎ、実装します。 自動化テストは、より短いタイムライン内でより大きなテストカバレッジを達成し、結果の精度を高めるために不可欠です。

ソフトウェアライフサイクルで自動化テストが重要なのはなぜですか?

これを想像してみてください。

QAとしての最初の日に、入力が必要な約100のフィールドを含むアプリケーションをテストする必要があります。 探索的テストを行う場合は、各フィールドに手動で入力を挿入する必要があります。 これはあなたが本当に速い場合に行うには約10分かかります。

送信を押します。 エラーメッセージが表示されます。 未処理の例外のように見えます。 あなたはバグを報告し、よくやった仕事について本当に良い感じ。 あなたは、プロセスを繰り返し、いくつかのより多くのバグを見つけ、一般的に生産的な最初の日を持っています。

次の日、開発者は問題を修正し、前日と同じ手順を繰り返して新しいバージョンのソフトウェアをテストする必要があります。 バグを修正しました。 仕事はよくやった。 あなたの努力のおかげで、優れたユーザー体験が保証されました。

三日目、開発者は新しい機能を備えた新しいバージョンをリリースしました。 しかし、新しい機能が古い機能を壊れていないことを確認するには、プロセスを再度繰り返す必要があります。 問題は見つかりませんでした。

一ヶ月後、開発者は継続的に新しいバージョンをリリースしているので、毎回同じプロセス(フィールド入力の挿入)を繰り返し、ソフトウェアのテストを続 あなたは退屈で疲れています。 あなたの正確さは揺れ始め、その結果、最終的にはバグが見つからなくなります–おそらくかなり明白なものです。

信じられないかもしれないが、これはほとんどのQaにとってかなり一般的なシナリオである。 同じことを何度も何度もやり、毎回完璧にすることはできません。 これが自動化テストの出番です。

ソフトウェアは別のソフトウェアをテストできますか?

はい。 それが自動化テストの全体のポイントです。 回帰テストに関しては、手動の努力を投資することは無駄で無駄です。 人間が同じ速度、正確さ、エネルギーで同じ手順を繰り返すことを期待するのではなく、同じことを行うようにマシンをプログラムする方がはるかに理

どのようなテストを自動化する必要がありますか?

テスト自動化戦略を作成する前に、どのテストが自動化に最も実行可能であるかを見てみましょう:

  • 回帰テスト:回帰スイートは増え続けており、新しい機能が古い機能を改ざんしないようにするために、同じ変数を何度も入力する必要があります。 これは簡単に自動化できます。
  • 複雑な機能のテスト:複雑な計算を必要とするすべてのテストを自動化します。
  • : 自動化されたスイートを実行して、主要な機能の品質を検証します。 これにより、ビルドがより詳細なテストを必要とするかどうかを迅速に分析することで、時間を節約できます。
  • データ駆動型テスト:多数のデータセットで繰り返しテストする必要がある機能を検証するためのテストを自動化します。
  • パフォーマンステスト:さまざまな状況下でソフトウェアのパフォーマンスを監視するテストを自動化します。 これを手動で行うことは非常に骨の折れると時間がかかるでしょう。
  • 機能テスト: 開発者がPRを提出するたびに、機能テストを迅速に実行し、すぐにフィードバックを提供する必要があります。 これは、特に組織がスケールアップするにつれて、自動化なしで達成することは不可能です。

自動化テストの概要

手動テストから自動化テストに移行するときは、次の点に注意してください:

  • 100%のテスト自動化を目指しないでください。 すべてのテストを自動化できるわけではありません。 自動化できるテストの中でも、完全な自動化の初期目標を設定しないでください。
  • 現実的な目標を設定します。 たとえば、いくつかのテストを自動化に移動することから始めます。 同じソフトウェアの将来のテストで簡単に再利用できる小さなテストケースを作成します。 対応する関数を使用してテストケースをマップし、テストカバレッジを向上させます。 テストケースにラベルを付けて、チームが何を自動化するかを明確にし、より効果的に報告できるようにします。
  • 自動化でアプリケーションの新しい領域を探索します。 自動化戦略を説明するときは、ビジネス要件が技術的な考慮事項と同じように真剣に取られていることを確認してください。
  • 自動化しないことを知っています。 これは、構想プロセスの早い段階で自動化の範囲を決定するのに役立ちます。 次のテストは手動適用範囲に最もよく残っています:
  1. ユーザーエクスペリエンステスト:ツールは、ユーザーの旅全体を複製することはできません。 個々のユーザーがアプリケーションとどのように対話するかをアルゴリズムで予測することは不可能です。 実際にユーザーエクスペリエンスの品質を判断するためには、人間のテスターに固執します。 BrowserStack Liveのような手動の対話型テストツールを使用してみてください。
  2. アクセシビリティテスト: アプリケーションがどのようにアクセス可能であるかをテストするとき、人間の使用に代わるものはありません。 人々は多くの場合、アクセス可能としてカウントするものについて異なる意見を持っているので、ツールは、アクセシビリティを測定することはできません。 ソフトウェアワークフローが実際の人間に簡単にアクセスできるかどうかをツールが認識することはできません。

  • 適切なツールを選択自動テストはツールに完全に依存します。 適切なツールを選択する際に考慮すべきことは次のとおりです:
  1. ソフトウェアの性質:アプリケーションはwebベースまたはモバイルベースでテストされていますか?
    前者をテストするには、Seleniumのようなツールを使用してテストを自動化します。 後者のために、Appiumは、自動化のための最良のツールの一つです。
  2. プログラマの経験:テスターの快適さと経験に合ったフレームワーク、言語、ツールを選択してください。 自動化テストに使用される最も一般的な言語には、Java、JavaScript、Ruby、C#などがあります。
  3. オープンソースかどうか:予算の制約に応じて、自動化の目的でSeleniumやAppiumなどのオープンソースのツールを使用することを選択することができます。 しかし、すべてのオープンソースのツールは、市販のツールよりも劣っていないことを覚えておくことが重要です。 たとえば、Selenium Webdriverはオープンソースのツールであり、世界中の自動化されたテスターによって最も高く支持されています。
  • 適切なテストグリッドを選択

テストグリッドは、すべての自動テストが実行されるインフラストラクチャを指します。 これは、ソフトウェアがテストされる一連のデバイス、ブラウザ、およびオペレーティングシステム(複数のバージョン)で構成されています。 実際のデバイスやブラウザでのテストを自動化することが常に最善です。 これにより、ソフトウェアが実際のユーザー条件でテストされることが保証されます。

さらに、理想的なテストグリッドは並列テストを可能にする必要があります。 これは、テスターが複数のデバイスで同時に複数のテストを実行できることを意味します。 これはテスト時間で削減し、結果を促進し、そしてより短い締切内の結果を提供する。

テストグリッドをオンプレミスでホストするのか、クラウドでホストするのかを決定する必要があります。 オンプレミスインフラストラクチャは、ほとんどの場合、セットアップと保守に費用がかかることに注意してください。 これは、新しいデバイス、ブラウザ、およびオペレーティングシステムを追跡し、それに応じてそれらを更新し、維持する必要があります。 それぞれの複数のバージョンが毎月リリースされているので、これは挑戦です。

逆に、クラウドベースのグリッドでのテストは、グリッドを提供する組織によって更新とメンテナンスが行われるため、より簡単です。 たとえば、BrowserStackは、テストのために2000以上の実際のデバイスとブラウザに接続されたcloud Selenium gridを提供しています。 ユーザーは、サインアップして、可能な限り最高の結果を得るために常に更新されている堅牢なSeleniumグリッドでテストを開始するだけです。

BrowserStackのreal device cloudは、2000以上のリアルブラウザとデバイスを提供し、瞬時にオンデマンドテストを行います。 クラウドは、Jira、Jenkins、TeamCity、Travis CIなどの一般的なCI/CDツールとの統合も提供します。 さらに、テスターがすぐにバグを特定して解決できる組み込みのデバッグツールがあります。 BrowserStackはまた、30以上のブラウザバージョンでのCypressテストを容易にし、手間のかからない並列化を実現します。

自動化テストを無料で試す

テスト自動化の例

ソフトウェアを手動でテストする場合、テスターはマウントとキーボードを使用して対話します。 自動化スクリプトとツールは、この相互作用を段階的に複製します。

この例では、電卓が2つの数値を追加して結果を表示できるかどうかを確認するためにテストされています。 手動で行う手順は次のとおりです。

ステップ1:電卓を起動
ステップ2:2を押す
ステップ3:を押す+
ステップ4:を押す3
ステップ5:を押す=
ステップ6:画面が表示されます5
ステップ7: Close Calculator

自動化ツールは、次のスクリプトを使用して同じ手順を実行できます:

//the example is written in MS Coded UI using c# language.public void TestCalculator(){//launch the applicationvar app = ApplicationUnderTest.Launch("C:\Windows\System32\calc.exe");//do all the operationsMouse.Click(button2);Mouse.Click(buttonAdd);Mouse.Click(button3);Mouse.Click(buttonEqual); //evaluate the resultsAssert.AreEqual("5", txtResult.DisplayText,"Calculator is not showing 5");//close the applicationapp.Close();}

上記のスクリプトを実行すると、まったく同じ結果(5)が表示されます。 手動の手順を実行するのではなく、単にスクリプトを記述し、ツールが残りの世話をしてみましょう。

手動テストから自動テストへの移行方法

まず、二つの質問をしてください。

  1. 何を自動化するのですか?
  2. 自動化するには?

何を自動化するのですか?

  • これには、煙試験、回帰試験などが含まれ得る。 基本的には、テストサイクル全体を高速化するテストを自動化します。 覚えておいて、より低い手動介入は、より速い結果に等しい。
  • 技術的およびビジネス上の優先順位に基づいてテストを自動化します。 このように考えてください:このテストの自動化はビジネスに役立つでしょうか? このテストを自動化すると、技術的な複雑さが簡素化されますか? いずれかの質問に対する答えが「はい」の場合は、自動化します。
  • クロスブラウザの互換性テストなどの一部のテストは、手動で実行すると単純に機能します。 ツールの依存関係は、特定のテストチームまたは組織の自動化の可能性を制限することもできます。

続きを読む:10テスト自動化のベストプラクティスを自動化するには、

に従うには?

まず、すべてのテストを自動化できるわけではないことに注意してください。 前のセクションの3つの戦略を遵守することで、実用的な方法で自動テストを開始することが容易になります。

  • 100%の自動化は目標ではなく、不可能でもありません。 テストケースの保守と再利用が容易になるため、テストケースを小さく記述します。 少数のテストを自動化プラットフォームに移動し、テストを実行し、結果を分析し、プロセスがソフトウェア開発プロセスに有益であることが判明したかどうかを判断します。
  • 操作から大きな利点が得られる場合は、より多くのテストを自動化に移してください。 テストの量を増やすだけでなく、自動化されるテストの種類を増やすこともできます。 これはまだ実験段階であることを忘れないでください。 特定のテストは自動化で非効率的であることが判明し、手動テストに戻す必要がある可能性があります。
  • テストカバレッジを向上させるために、各メソッドまたは関数でテストケースをマップします。 テストケースにラベルを付けて簡単に識別できるようにすると、チームはどのテストを自動化するかをすばやく知ることができます。 これはまた、より良いレポートを実装するのに役立ちます。
  • 自動化テストを開始するときは、アプリケーションの新しい領域を手動で探索することから始めます。 次に、ビジネス上および技術上の優先順位に基づいて、自動化する必要があるものを詳細に説明するリスク計画を作成します。
  • analyticsを使用してエンドユーザーの設定を決定します。 ユーザーがソフトウェアにアクセスする可能性が最も高いブラウザとデバイスのリストを作成します。 これは、自動化テストが適切なインターフェイスをカバーし、適切なユーザーの道でソフトウェアのパフォーマ

Real Device Cloudで自動テストを試してみてください

テスト自動化メンテナンス

細工したら、自動化テストスイートを維持する必要があります。 ソフトウェアが進化し、コードベースが拡大するにつれて、自動化スクリプトを変更し、新しい機能を組み込むために更新する必要があります。 UIのごくわずかな変更でさえ、テストが中断され、失敗する可能性があります。 テストケースを設計する際には、自動化テスターは保守作業とコストを考慮する必要があります。

テスト自動化保守アプローチは、二つの主要な視点から作業します:

  • テストの失敗:失敗したテストをデバッグするときに、可能性のあるメンテナンスの問題を探します。 テストスクリプトは適切に更新されませんでしたか? ソフトウェアコードの変更がテストスクリプトに干渉しましたか? これはどの区域が維持の努力を要求するか識別する簡単な方法である。
  • 依存関係やツールの変更: チームや組織がApi、レポートツール、データベースなどを変更しましたか。? その場合、新しいツールセットに合わせてテストを変更または更新する必要がある場合があります。 これを達成するためには、開発者とテスターは明らかに、将来のメンテナンス作業に追いつくことができるように、新しいインフラストラクチャで訓練される必要があります。

効果的なテスト自動化戦略の重要な要素は何ですか?

自動化テストは、あらゆるテストエコシステムの不可欠な部分です。 自動化の設定に移行しないと、包括的なテストは困難になり、期限が短縮されることもあります。 したがって、手動テストのバランスをとり、補完する方法で、可能な限り早期に自動テストプロトコルを開始することが重要です。

上記の手順を試して、どのアプローチが最適な結果をもたらすかを調べるのに十分な実験をしてください。 人間の検証を損なうことなく効果的な自動化を可能にするスイートスポットを見つける前に、数回失敗することを心配しないでください。

Write a Comment

メールアドレスが公開されることはありません。