どのような完全な自動テストプラットフォームが含まれている必要があります

  自動テストは、非常に一般的な誤解は、最も広く知られているセレンなどの自動テスト自動テストツールのいくつかの種類に同一視することですが、これは狭い意味で理解され、言及しました。実際のプロジェクトの練習では、コンテンツが自動化されたテストではなく、自動テストツールのほんのいくつかの並べ替えの多くが含まれている、私は、これらは、次の側面が含まれている必要があり、洗練された自動テストプラットフォームを理解します:

  • テスト中の自動化ツールフレームまたはオペレーティングシステム:例えば、白セレンのWebプログラム、携帯端末のAppium、Windowsアプリケーションプログラム、AutoItを、同様QTP。彼らは唯一の自動化フレームワークであることに注意してくださいテスト中のシステムの自動運転が可能な機能を提供し、彼らは基本的な使用例試験組織の枠組みを持っていないので、テストフレームではない、チェックや他の関数の結果は、それが基本的に必要とされ、実際のAでください。使用を統合するためのフレームワークをテストします。
  • テストフレームワーク:統合と自動化の枠組みは、そのようなJavaのJUnitの、TestNGの、PythonのPytest、RubyのRSpecの、そしてキュウリや他の言語の多様性に適応する能力のようなユースケースのソート、分類、スケジューリング、結果の検証、レポート出力などの機能を提供します。
  • テスト環境の構築:ビルドするには、VMware、AWSおよびその他の仮想化とクラウド技術を使用して、オペレーティング・システム・レベルのサーバーを管理し、ビルドや、ドッキングウィンドウコンテナ技術の使用など、アプリケーションレベルのサービスを管理します。複数のコンテナ等ドッキングウィンドウのCOMPOSE、ドッキングウィンドウの群れを、使用することができた場合kubernetesは、より複雑な場合は、環境全体を管理し、維持するために使用することができます。テスト環境は、理想的には、バージョン管理システム制御下で、完全な展開スクリプトで、ワンボタンの展開を自動化する必要があります。トレーサビリティができ、すばやく、テスト担当者は環境を保護する能力とともに、環境を制御するための独自の排他的なテスト環境を持っているローカルテスト環境で構築することができ、簡単にゼロから構築することができ、ロールバックすることができます構築したり、破壊する必要に応じていつでも。
  • テストデータの準備:テストを自動化された支持体として、完全な、制御されたテストデータを必要とし、または自動テストが提供されていますが、チームへの負担になります実装の結果を予測することはできません。このように必要な正確な準備、および対応するデータベースに対応するAPIフィールド業務やデータなどのデータへの人間の能力と権限管理、業務やシステムのためのテストスタッフに必要が深い理解を持っていることを主な障害の事実は、(どのテーブル)。ボトムアップデータベースに直接組み込むことができる(典型的にはより困難達成するために、データベースへの権利を有し、およびテーブル構造に精通して、それが最も効率的な方法である)からのデータを作成、データを作成するAPIメッセージは被試験システムに精通する必要がある(APIを呼び出します)(UI自動化スクリプトを通じて最も目に見えるが、少なくとも効率的な、最も安定性を作成するための構造、および権限を持っている)は、自動テストを実行した後もデータをクリーンアップするための適切な方法を持っている必要があります。もう一つの方法は、両方の問題を解決するには、システムに依存しているように、モックサーバを介してですが、また完全なデータ依存への準備ができて、しかしモックサーバーの開発は、特定の作業量、およびシステムやサービスに精通する必要があり、モックサーバ意志を使用する必要がありますテストの信憑性へのリードは、実際のシステム統合の間に問題を検出することはできません。Javaの春ブーツ、wiremock、Pythonのフラスコ、Rubyのシナトラとそうではモックサーバーを作るために使用することができます。
  • 同時実行:同時実行は、のMavenの確実なフェールセーフ、実行機能のGradleの複数のスレッド、キュウリ、JVMなどのツールを構築するような並列テスト機能の使用などの同時実行を実装するための異なる方法が、存在する、テストの実行速度の向上に有効な方法であります同時実行。あなたはまた、複雑な多くのそのような並列テストのルビーとして、達成するために他のツールやライブラリを使用して、することができます、あなたはBATや他のトップのインターネット企業では、異なるドッキングウィンドウコンテナ上で実行するために、分散テストに特別なプログラムやサービスを書くことができますテストでのシェアは、このようなAのケースを持っていました。もう一つの課題は、干渉が互いに同時発生を避けるために良いテストケース、テストデータ、問題分離テスト環境の同時実行に対処する必要があります。各テストまたはテストシナリオはすべて、単独で、相互依存不在のうち実施形態と同様に行うことができるため、これは、設計のテストをデカップリングで良いが必要です。テストデータの作成、独自性とデータの独立性を行うためには、データは実装後に不要なデータを消去し、実行する前に、事前に準備するだけでなく、マルチスレッドのデッドロックを実行するときにいくつかのシナリオは、共有データを同期考えます他の問題が、このようなマルチスレッドプログラミングを処理することは非常に成熟したアプローチを持つJava、Pythonなど現在主流のプログラミング言語と。テスト環境の準備について、プロジェクトシナリオに応じてさまざまな方法がありますが、複数のテスト環境で実行することができ、また一つだけの環境で実行することができますが、着陸やその他の問題は、事前に、または回避するために検討する必要がある一方で、いくつかのシステムでは、アカウントを存在しないかもしれません。ここで私は、互いに分離し、急速に同時テストを実行するために構築し、テスト環境にように、適した容器の間、広告、軽量ドッキングウィンドウコンテナ技術、低オーバーヘッドのスタート破壊のためのドッキングウィンドウを作りたいと思います。
  • CIとの統合:、自動化された唯一のテストと最大の総合CIプレーに、または缶は唯一のマシンテスター上で実行された場合、そこに、チームの目に見える結果になることはありませ標準化されたスケジューリングポリシーの欠如、他の問題にチームの注目につながることができないだろう無用な自動テストになります。そしてまた、単語に自動テスト、アジャイル哲学を含める必要がCIの完全なラインは、CIのない自動テストはCIコールすることはできませんがあります。自動テストとCIの統合を達成するのは技術的に困難ではない、本質的には、CIにローカルで実行される実行マシンで実行されるまでテストすることです、などCircleCIジェンキンス、竹、現在主流のCIツールは、簡単に設定を完了することができます。まだテスト環境は二つの部分、環境やテスト環境下で自動テストシステムの実装で構成されたテスト環境であり、注目されるべきです。環境は、JavaやPythonの環境として、webdriverを、ブラウザなどをCIマシンの実装では、一般的に自動化されたテスト環境を実行し、アクセスすることができCIの実行マシンであることを、システムのニーズをテストし、あなたはCI環境を実行するためにマシンを構成する必要があります。これは、一般的にLinux環境は、グラフィカルインタフェースを実行することはできませんされているCI執行メカニズムなどの詳細の多くを伴うだろう、あなたは、全体のテスト実行環境をカプセル化するには、ブラウザのヘッドレスモード、まだ強く推奨ドッキングウィンドウを使用する必要があるので、CIの実装マシンがあるため、このような多くの問題をもたらしたの依存関係などの環境での回避の違い、に、唯一のドッキングウィンドウプル、その上にドッキングウィンドウの実行が必要です。それは別のポストに私の記事に記載されているか自動テストドッカコンテナを実行します
  • そして、統合されたユースケースマネジメントシステム:我々はケース管理システム、実装の自動注釈結果を統合して使用することができた場合、自動テストの実行は、テストレポートを生成しますが、さらには、それがより簡単であり、多くのプロジェクトで一般的に行われています。ユースケース管理システムは、我々が分析し、実際の状況に応じて使用される様々な企業やプロジェクトを解決する必要があり、そのうちのいくつかは、社内システムを開発している、大きく異なります。しかし、一般的なユースケース管理システムは、APIのラベルの結果を提供できる必要が、収集したテストレポートにテストの実行後、その結果をラベル付けする場合の管理システムとAPIを呼び出す特別なプログラムがあります。業界で最もよく知られJIRAにより、例えば、これだけ、それはAPIの規定に従って達成することは困難ではない、呼び出すことができるメッセージフォーマットの結果を整理する必要があり、クエリへのAPIを提供し、テストケースの結果をマーク。

  それが含まれる必要があるとどのようにこれらの機能を実装するための機能の一般的な自動化されたテストプラットフォームを説明の上。テストプラットフォームのモバイル終了した場合、複数のこのような異なるデバイスの互換性などの問題、どのように同時実行し、複数の異なるデバイスをスケジュールがあり、BATは、これらのトップのインターネット企業で、この分野における私自身の経験を慣行を証明していると、あまり、まだ探査の学習段階インチ 本質的には、より完全なテスト自動化プラットフォームを構築するには、テスト中のシステムの深い理解を持っている必要があり、CIやDevOpsチームに精通している少なくとも1つのプログラミング言語に精通し、ソフトウェアのテストとプログラミングのための強固な基盤は、そこにある、幅広い知識を持っています表面テクノロジー・スタック、問題を解決するための適切なツールとフレームワークを選択する方法を知っています。

おすすめ

転載: www.cnblogs.com/tuochao/p/11959105.html