すべての Web 開発チームは自社の製品に対して一連のテストを行っていますが、後で提供される Web ソリューションには欠陥があります。
最初のリリース前に品質保証チームが欠陥を発見しようと努めたにもかかわらず、最も綿密な手動テストを行ったとしても、欠陥が忍び込み、再出現することは避けられません。
ソフトウェア テストの効率と範囲を拡大するには、自動化された Web テストが最良の選択です。
オンラインテストの場合、Python プログラミング言語 は、Selenium などの外部ライブラリを利用できるロボット フレームワークを提供します。
この記事では、Python ロボット フレームワークに関連するテスト ケースとその他の用語について説明します。
ロボットフレームワークとは何ですか?
ロボットフレームワーク は、Python で書かれた柔軟なオープンソースの汎用自動化フレームワークで、自動ソフトウェア テスト、ロボット プロセス オートメーション、受け入れテスト、および受け入れテスト駆動開発に使用されます。
簡単に言うと、Python ベースのキーワード駆動のテスト自動化フレームワークです。
これにより、テスターは複雑なプロセス スクリプトを効率的に自動化および保守できるようになります。 このフレームワークは、ユーザー インターフェイスとアプリケーション プログラミング インターフェイスのテストに使用できます。
これにより、テスト エンジニアは、他の多数の統合に加えて Selenium を利用できるようになります。 Selenium は、ユーザーの動作を自動化し、あらゆる Web サイトでのユーザーベースの Web ブラウザー操作をスクリプト化するための業界標準ツールです。
受け入れテストとは何ですか?
これはシステムの容量を判断する方法です。 受け入れテストの目的は、ビジネス ニーズに関連したシステムの機能を評価することです。
ロボットプロセス自動化とは何ですか?
RPA (ロボティック プロセス オートメーション) は、ロボット プロセス オートメーションを組み込んだソフトウェアを使用して人的労力を最小限に抑える方法です。 機械学習 そしてAIの能力。 RPA は、高レベルの反復的なプロセスを自動化するために使用されます。
受け入れテスト駆動開発とは何ですか?
ATDD として知られる受け入れテスト駆動開発は、企業顧客、開発者、テスター間のコミュニケーションに依存する開発手法です。 彼らは協力して、機能を展開する前に受け入れテストを実施します。
ロボット フレームワーク – 高レベルのアーキテクチャ
ロボット フレームワークは、アプリケーションやテクノロジーに依存しないフレームワークです。 下の図に見られるように、そのアーキテクチャは非常にモジュール化されています。
テスト データは、シンプルで編集可能な表形式で表示されます。 Robot Framework は、開始時にデータを分析し、テスト ケースを実行し、ログとレポートを作成します。
コア フレームワークはテスト対象のターゲットについての情報を持たず、ライブラリがターゲットとのすべてのやり取りを管理します。 ライブラリは、下位レベルのテスト ツールをドライバーとして利用したり、アプリケーション インターフェイスを直接使用したりできます。
特徴
- さまざまなテストの自動化を可能にすることで、データ駆動型テストを容易にします。 データ型.
- 大量のコードの使用を回避し、代わりに動作駆動型のテスト戦略を使用します。
- サードパーティのライブラリや関数と連携できます。
- キーワード (事前定義またはユーザー定義) は、テスト ケースを作成するために表形式で使用されます。
- ユーザーはキーワードを作成できます。
- 変数の使用が許可されています。
- このフレームワークは、キーワード駆動方式を採用しており、スクリプトは、(事前定義またはユーザー定義の) 簡単に理解できる小さな用語を使用して記述されます。
- 各ビルド後にレポートが作成され、
- そしてログが作成されます。
- スクリプトの実行ステータスの詳細なレポートとログが生成されるため、スクリプトが失敗した場合に特に役立ちます。
ロボット フレームワークのチュートリアル
さあ、ダイビングしましょう。
1. ロボットフレームワークの設置
Python にロボット フレームワークをインストールするには、pip パッケージが推奨されます。 フレームワークをインストールするには、次のコマンドを実行します。
-version オプションを使用してインストールが成功すると、インタープリタとロボット フレームワークの両方のバージョンを表示できるようになります。
2。 図書館
- 組み込み – これは、自動的にインポートされ、いつでも使用できる、一般的に使用されるキーワードのセットを含む標準ライブラリです。
- コレクション – Python のリストと辞書を操作するためのキーワードのセットを提供します。 ライブラリのキーワードを使用して、リストや辞書の値を変更したり、値を作成したりできます。
- ダイアログ – 実行を停止し、ユーザーのフィードバックを取得するための標準ライブラリです。 テストが実行されているかどうかに応じて、ダイアログは少し一貫性がありません。
- DateTime を使用すると、日付と時刻の情報を生成および変更できます。
- オペレーティング システム – ロボット フレームワークが、実行中にシステム内でオペレーティング システムに関連するさまざまなタスクを実行できるようにします。 とりわけ、命令を実行したり、データを直接生成および変更したりできます。
- プロセス – このライブラリは、Python サブモジュールとオープン クラスを使用してプロセスを実行するために使用されます。 run process キーワードは、システム内で実行中のプロセスを待機し、それをコンパイルするために使用されます。
- XML は、ロボット フレームワークが XML ドキュメントを検証および変更するために使用するテキスト ライブラリでもあります。
- string は、文字列を操作および検証するためのパッケージです。
- Telnet が適用され、Telnet を介して対話できるようになります。 Telnet ライブラリを使用すると、通常の TCP/IP 接続経由で Telnet サーバーに接続し、コマンドを実行できます。
3. 組み込みツール
ロボット フレームワークでは、主に次の XNUMX つの組み込みツールが使用されます。
- Rebot – XML 出力からログとレポートを作成し、多数の出力を同時にマージするためのツール。
- Testdoc — テスト ケースに基づいて、Robot Framework は高レベルの HTML ドキュメントを作成します。
- Libdoc – ライブラリとリソース ファイルのキーワード ドキュメント ジェネレーター。
- Tidy – データ ファイルをクリーニングして別の形式に変換するためのロボット フレームワーク ツール。
4. テストケース
自動化されたテスト ケースの代わりに、ロボット フレームワークのテスト ケースは基本的な英語で作成できます。 次のテストを使用して、テスト シナリオを分類できます。
- ワークフローのテスト
- より高度なテスト
- データ駆動型テスト
ワークフローのテスト
ロボット フレームワークのテスト ケースは、表形式の構文で記述されることがよくあります。 テスト ケース テーブルの最初の列にはテスト名が含まれており、テスト ケースは列内の任意の文字で始まり、次のテスト ケース名またはテーブルの末尾で終わります。
これがどのように機能するかを理解するために、実際の例を見てみましょう。
- ユーザーはアカウントを作成してログインできます。
- パスワードが間違っていると、ユーザーはログインできなくなります。
高度なテスト
XNUMX 番目の列には通常、キーワードが書き込まれた値を持つ変数の設定を除き、キーワード名が含まれます。
ロボット フレームワークのテスト ケースは、位置パラメーターを使用せず、高レベルのキーワードのみを使用して構築できます。 高レベルのテストをさらに理解するために、次の例を検討してください。
データ駆動型テスト
データ駆動型テストでは、手順をシミュレートするのではなく、テスト データを分離します。 ロボット フレームワークでは、[テンプレート] 設定によりデータ駆動型テストのテスト ケースが定義されます。
5.キーワード
ロボット フレームワークでテスト ケースを構築するには、XNUMX つのソースからのキーワードが使用されます。
- ライブラリのキーワード
- ユーザー向けのキーワード
ライブラリのキーワード
標準ライブラリは、すべての最下位レベルの用語を定義します。これらは、次のようなコンピューター言語を使用して実装できます。 PythonとJava.
ロボット フレームワークで使用できるテスト ライブラリには、標準ライブラリ、外部ライブラリ、およびカスタム ライブラリがあります。 コア フレームワークには、組み込み、スクリーンショット、OS、およびその他の標準ライブラリが含まれています。
ユーザー向けのキーワード
既存のフレーズから独自の高レベルのキーワードを生成する機能は、ロボット設計の最も重要な機能の XNUMX つです。 それがどのように機能するかをさらに理解するために、例を見てみましょう。
6.変数
変数は、ロボット フレームワークのすべてのテスト ケースの重要な部分です。 変数は、変更または変動する可能性のあるテスト ケース内のデータを指定するための優れた方法です。
テストケースで変数を定義する方法を見てみましょう。
変数の指定
ユーザー定義変数とは別に、ロボット フレームワークには、前の例で使用した $TEMPDIR や $/ などの組み込み変数があります。
変数の利用
変数はテスト ケース内のどこでも使用できます。
ただし、最も一般的にはキーワード引数として使用されます。 私の言いたいことを説明するために、次の例を考えてみましょう。
7. テストケースの整理
テスト ケース ファイルはロボット テスト ケースの構築に使用されますが、ディレクトリにグループ化してテスト スイート階層を作成することもできます。 テスト スイートはテスト ケースをグループ化したものです。 テスト スイートは、テスト ケースを含むすべてのファイルで構成されます。
ディレクトリを使用すると、テスト ケースを階層構造にすることができます。 これらのディレクトリはすべて、ディレクトリ名から派生した名前を持つ高レベルのテスト スイートを提供します。
セットアップとティアダウンの使用
設定テーブルの「テストセットアップ」および「テスト分解」オプションを使用して、テストの終了前または後にテスト内の特定のキーワードを実行できます。 「スイート セットアップ」および「スイート ティアダウン」を使用して、テスト スイートの前後にキーワードを実行することもできます。
[テンプレート]と同様に、テストケース内にカスタムの[セットアップ]と[ティアダウン]を作成できます。 これをよりよく理解するために、次のシナリオを検討してください。
タグの使用
ロボット フレームワークでは、タグを使用してテスト ケースに無料のメタデータを提供できます。 「強制タグ」と「デフォルトタグ」を使用してファイルにタグを設定できます。 [タグ]は、[テンプレート]と同様に、単一のテスト ケースにタグを割り当てるために使用できます。 タグの使用方法を確認する例を見てみましょう。
レポートには、タグにリンクされたテスト ケースを含むタグと、実行後のタグに基づく統計が含まれます。
メリット
- ロボットフレームワークのセットアップは簡単です。
- それはキーワードの使用に基づいています。
- これにより、Gherkin を使用できるようになります。
- 両方で動作します モバイルおよびウェブベースのアプリ.
- Robot Framework の基本は簡単に理解できます。
- ローコードアプローチを使用します。
- Windows、Mac OS X、Unix、Linux がすべてサポートされています。
- Python、IronPython、および PyPy はすべてサポートされているプログラミング言語です。
- すべての主要な Web ブラウザで動作します。
- Robot Framework は、無料で使用できるオープンソースの自動化ツールです。
デメリット
- 並列テストの実行は、ロボット フレームワークではサポートされていません。
- ロボット フレームワークについていくのは困難です。
- Robot Framework の HTML レポートは変更が困難です。
- 一部のロボット フレームワークの問題のデバッグは難しい場合があります。
- Robot Framework ではインデントが厳密に適用されます。
まとめ
ロボット プラットフォームは、無料のオープンソースの受け入れテストおよび受け入れテスト主導の開発フレームワークです。
ロボット フレームワークのテスト ケースは、表形式で表現されたキーワードに基づいて構築されているため、理解しやすく、テスト ケースの意味について正確な情報が得られます。
本当に便利で使いやすいです。
以前に使用したことがある方もいると思います。テストを設定し、Android / iOS アプリの準備ができている場合は、ぜひ試してみてください。
物事がいかに順調に進み、受け入れテストがいかに早く完了するかに驚かれることでしょう。
コメントを残す