testim io tutorial speed up authoring
このハンズオンチュートリアルでは、Testim自動化ツールを使用して安定したテストを数分で構築し、機械学習プロセスを使用して自動テストの作成、実行、および保守を高速化する方法を学習します。
「自動化ツール」というフレーズを聞いたとき、テストに関して頭に浮かぶ主な考慮事項は次のとおりです。
製品テストにサインアップする方法
- オーサリングと実行
- 安定
- 再利用性
- 拡張性
- メンテナンス
- トラブルシューティング
- 報告
- CI / CD統合
市場には、上記の要因の1つまたはいくつかに対処するツールが多数ありますが、すべてではありません。ここでTestim.ioが登場します。
Testim.io はツールではなく、自動テストのオーサリングと実行、メンテナンス、トラブルシューティング、レポートなどのほとんどすべての主要な要素を含むプラットフォームです。動的ロケーターの概念の導入により、機能テスト、エンドツーエンドテスト、UIテストなどの少数のテストタイプに焦点を当てています。
これにより、テストスイートの拡張性と安定性が向上します。また、チームと組織に、JavaScriptとHTMLを使用した複雑なプログラミングロジックを使用してプラットフォームの機能を拡張する柔軟性を提供します。
Testim.ioの詳細な洞察と、自動化中に顧客が直面するいくつかの課題を克服するのにどのように役立つかを次に示します。
学習内容:
このツールは他のツールとどう違うのですか?
Testimが他のツールとどのように差別化されているかを理解するために、過去10年間で自動化ツールがどのように進化してきたかを振り返ってみましょう。
過去10年間で、自動テストに関連するさまざまな問題に対処しようとしたいくつかのベンダーツールとオープンソースツールがありました。しかし、これまで誰も取り組んできなかった大きな問題の1つは、 静的IDの使用。
例えば 、 開発者がWebページ上の要素のID名または属性を変更するとします。自動テストは、古いID名を参照しているため、この変更によりすぐに中断します。これは不安定なテストにつながり、テスターはそれらの保守に多くの時間を費やす必要があります。
彼らはの概念を導入しました 動的ロケーター 。 プラットフォームの下にある人工知能(AI)は、ページのすべてのDOMオブジェクトをリアルタイムで分析し、オブジェクトとそのプロパティを抽出します。
最後に、AIは、この分析に基づいて特定の要素を見つけるための最適なロケーション戦略を決定します。
このため、開発者が要素の属性を変更しても、テストは引き続き実行され、より安定したテストにつながります。 この結果、自動テストの作成と実行がはるかに高速で安定します。
Testim.ioはプラットフォームであり、記録ツールでも再生ツールでもありません
まず第一に、これはツールではなくプラットフォームです。
テストの自動化に役立つだけでなく、ローカルおよびクラウド(プライベートグリッドまたはサードパーティグリッド)でのテストの実行、CI / CDとの統合など、テストの他の重要な側面も処理する堅牢な機能を備えています。システム、テスト実行のログとスクリーンショットをキャプチャし、グラフ、統計、およびその他の関連情報を使用してテスト実行の詳細なレポートを提供します。
そして最後に、広く使用されているバグ追跡ツールと統合することにより、バグのキャプチャとレポートを非常に簡単にします。
次に、JavaScriptとHTMLで複雑なプログラミングロジックを使用することにより、組織とチームがプラットフォームの周りに独自のラッパーを構築する柔軟性を提供します。このようにして、誰でもプラットフォームの機能を拡張できます。
最後に、プラットフォームは シフト-左パラダイム 開発者とテスターは、互いの変更を上書きすることなく、さまざまなブランチで作業することにより、最初からテストの作成を開始できます。また、チームのコラボレーションを支援し、組み込みの機能を介して誰でも自動テストを作成できる柔軟性を提供します。
このようにして、技術者以外のチームメンバーでも、自動テストに貴重な貢献をすることができます。プラットフォームは、次のような概念を浸透させるのに役立ちます。 自動化されたテストは、シンプルで効果的、安定的かつ協調的でなければなりません。
重要な要因への対処
Testimは、自動テストに不可欠な重要な要素にどのように対処していますか?
オーサリングと実行
自動テストは、いつでもどこからでも簡単に作成して実行できる必要があります。
Testimは、次の方法でこれを行うのに役立ちます。
1)テストの作成
をクリックして新しいテストを作成します 「新規作成」または「新規テスト」 。
2)テストの記録と再生
クリックしたら '記録' ボタンをクリックすると、アプリケーションでさまざまなユーザーアクションを記録できます。
さまざまなアクションを記録した後、をクリックします 「録音を停止」 ボタンをクリックして、テストの記録を終了します。使用 '演奏する' 記録されたテストを再生するボタンと 'セーブ' ボタンをクリックしてテストを保存します。
3)検証とアサーション
このプラットフォームは、要素のさまざまな属性と非常に単純なAPIの検証を行うのに役立ちます。
次のようなユーザー向けのさまざまなオプション:
- JavaScriptとHTMLを使用したカスタム検証の追加
- 要素の可視性を検証する
- 要素テキストを検証する
- ピクセルレベルの検証
- APIレベルの検証
4)スクリーンショット
各テストが記録されている間、プラットフォームはすべてのステップのすべての合格および不合格の結果のスクリーンショットを撮ります。その結果、ユーザーは問題のトラブルシューティングが容易になり、内部で何が起こっているのかを理解することが容易になります。
例えば 、 以下のスクリーンショットでは、の属性が 「目的地の選択」 ボタンは変更されましたが、AIが使用したツールのため、テストは引き続き実行されました ダイナミックロケーター 。また、システムの機能は変更されませんでしたが、要素の属性のみが変更されました。
また、期待される画像(ベースライン)と実際の画像を表示することで、テストの実行中に正確に何が起こったかのスクリーンショットを取得します。
((注意:下の画像をクリックすると拡大表示されます)
5)各ステップに関するフィードバック
また、ユーザーは、テストに合格したか失敗したかについて、各ステップに関するフィードバックを表示することで取得します。 '緑' または 「赤いアイコン」 以下に示すように、各ステップの左上部分に:
6)ラベリングテスト
Testimは、ユーザーが作成するすべてのテストにラベルを付ける機能を提供します。
テストにラベルを付ける理由は2つあります。
- そもそもテストが作成された理由を特定するのに役立ちます。
- CLI機能を使用して、同じラベルでテストを一度に実行するのに役立ちます。
ラベルを作成する方法は、 'ラベル' ボタンをクリックして、既存のラベルを選択するか、新しいラベルを作成します。
7)ユーザードキュメント
これらは、このプラットフォームのさまざまな機能を使用するために必要なすべてのドキュメントをユーザーに提供します。
このプラットフォームの使用に関するほとんどの回答は、をクリックして見つけることができます。 「教育する」 タブをクリックし、以下に示すようにドキュメントサイトにアクセスします。
上記の理由により、Testim.ioは、テストの作成と実行を非常に高速かつ簡単にするのに役立ちます。ほんの数秒で、ユーザーはテストを記録、再生、保存できます。
安定
テスト用途 動的ロケーター 静的IDの代わりに。このため、テストはより安定しており、テストを実行すればするほど、AIはよりスマートになり、自動テストの安定性が高まります。
ユーザーは、AIがIDE内の要素を見つけるために使用するさまざまなロケーション戦略を、 プロパティパネル 、自動テストを介して相互作用する要素ごとに。
お気づきのとおり、AIはすべてのDOMオブジェクトを解析し、その特定の要素のすべてのロケーション戦略のランキングとともに、プロパティパネルにそれらを一覧表示します。このようにして、要素の属性が変更された場合でも、AIはすでに解析されたDOMオブジェクトのリストとは異なるロケーション戦略を使用できます。
したがって、ユーザーは不安定なテストについて心配する必要はありません。
再利用性
自動テストを作成するための優れた方法の1つは、テストスイートのさまざまな部分で使用できる再利用可能なコンポーネントを作成することです。
何でこれが大切ですか?
再利用可能なコンポーネントを作成することは、次の理由で重要です。
- 自動テストの読みやすさを向上させるのに役立ちます。
- テストの異なる部分で同じ一連の手順を繰り返さないことにより、労力を節約します。
- 再利用可能なステップへの変更は、1つの場所でのみ行う必要があり、さまざまなプロジェクトにわたるテスト全体に反映されます。
- 自動テストをより拡張可能にします。
証言は、再利用性を確保するのに役立ちます 「グループ化」と「パラメータ化」。
1)グループ化
関連するステップをいくつでも1つの再利用可能なコンポーネントにグループ化できます。
例えば – 'ログイン' シナリオは、あらゆるアプリケーションで最も一般的に使用されるステップの1つです。再利用可能な「ログイン」ステップを作成する方法は、グループ化するステップを選択してからクリックすることです。 「新しいグループを追加」 以下に示すように:
2)パラメータ化
このプラットフォームには、パラメーター化によるさまざまな入力の組み合わせを通じてアプリケーションをテストするオプションがあります。
これはさまざまな方法で実現できます。
これを行う1つの方法は、以下に示すように、セットアップステップ(テストの最初のステップ)でJSONファイルの形式でアプリケーションをテストするために必要なすべての入力パラメーターを指定することです。
拡張性
このツールは、組織がJavaScriptとHTMLを使用してこのプラットフォームの機能を拡張するための柔軟性を提供します。このように、このプラットフォームが処理しない機能では、ユーザーは独自のコードを記述して、堅牢な自動化フレームワークを構築できます。
例えば –検証したいとします 「目的地の選択」 前の例のボタン。
これを行う方法は次のようになります。
- クリック 「カスタムアクションの追加」。
- 新しいステップに名前を付けて、をクリックします '確認'。
- この例では、「PARAMS」をクリックして「HTML」を選択します。
- カスタムコードを追加します。
- との新しいステップ カスタムコード 既存のステップのリストに追加されます。
メンテナンス
自動テストに関連する最も重要な要素の1つは、「 メンテナンス 」。
実際のテストを書くよりも、テストの維持に多くの労力が費やされます。これは、実際のアプリケーションのテストにその時間を費やすことができたはずのリソースからの貴重な労力と時間の浪費につながります。
Testimは、次の方法で自動テストを維持するために必要な労力を最小限に抑えるのに役立ちます。
1)バージョン管理
いつでも、特定のテストにどのような変更が加えられたかをログに記録しておくことが重要です。このようにして、必要に応じていつでも古いバージョンのテストに戻すことができます。このプラットフォームは、セットアップ手順の(プロパティ)パネルに移動してをクリックしてすべてのバージョン履歴を表示することにより、この機能を提供します 「古いリビジョンを見る」 。
2)分岐
の中に ' 左シフトパラダイム 」では、開発とテストの両方をソフトウェア開発ライフサイクルのできるだけ早い段階で並行して開始する必要があります。
これを念頭に置いて、チームメンバーごとに個別のブランチを作成し、同じプロジェクトとテストに取り組む機能をチームに提供します。このように、他のチームメンバーの変更を上書きすることはできず、チームはいつでも同じコードベースで作業できます。
選択する必要があります 'フォーク' 新しいブランチを作成し、既存のブランチを切り替えることもできます。
ユーザーは、テストをスケジュールするオプションがあります。これにより、手動による介入なしに、特定の日時にテストを自動的に実行できます。エラーが発生した場合は、メールで通知を受けることもできます。
トラブルシューティング
テスターとして、私たちは問題のトラブルシューティングにかなりの時間を費やしています。トラブルシューティングを支援するために、このプラットフォームは、問題の範囲を絞り込むためのさまざまなオプションをユーザーに提供します。
これらのオプションは次のとおりです。
1)スクリーンショット
「オーサリングと実行」セクションで説明されているスクリーンショット機能は、ユーザーがベースラインイメージと実際に見つかったイメージを知るのに役立ちます。
2)プロパティパネル
プロパティパネルは、エラーメッセージをキャプチャしてユーザーに表示するのに役立ちます。
例えば、 要素が表示されず、テストが失敗すると、パネルに以下のエラーメッセージが表示されます。
3)テストログ
ログは、UIの下で何が起こったかに関する豊富な情報源です。このツールは、ユーザーが当社のグリッドまたはサードパーティのグリッドでテストを実行したときにテストログを提供します。このオプションは、セットアップ手順のプロパティパネルにあります。
4)ドキュメント
Testimは、ツールのほとんどの機能を、の下にあるユーザードキュメントに文書化するために多大な努力を払いました。 「教育する」 タブ。
報告
これは、実行されたテスト、合格したテスト、失敗したテスト、実行期間、ブラウザーの組み合わせなどを可視化するための、テストの最も重要な側面の1つです。
Testim.ioは、次の2種類のレポート機能を提供します。
1)スイートおよびテスト実行のレポート
ユーザーがサイドメニューの(実行)オプションをクリックすると、以下に示すように、すべてのスイートとテスト実行が必要なすべての詳細とともに表示されます。これは、テスト実行の可視性を取得するのに役立ち、レポートを簡単にするのに役立ちます。
2)バグの報告
バグの報告には、1日にかなりの時間を費やしています。これは、テストの最も重要で時間のかかる部分の1つです。
Testim.ioは、バグをすばやくキャプチャして報告するためのChrome拡張機能を提供することにより、バグ報告時間を短縮し、生産性を向上させるのに役立ちます。この拡張機能を使用して、バグのスクリーンショットやビデオをキャプチャし、実際の自動テストを記録できます。広く使用されているバグ追跡システムのほとんどと統合されています。
欠陥をキャプチャしてクリックした後 「公開」、 バグの説明に必要なすべての手順が自動的に入力されます。また、スクリーンショット、ビデオ、および欠陥のある自動テストを追加します。
((注意:下の画像をクリックすると拡大表示されます)
CI / CD統合
このツールは、Jenkins、Travis CI、Circle CI、その他のビルドツールなどのさまざまなCI / CDシステムと統合されます。また、独自のプライベートクラウドをホストするサードパーティのグリッドと統合して、テストを実行します。これはすべて、プラットフォームで提供されているCLI(コマンドラインインターフェイス)を介して行われます。
をクリックします '設定' サイドメニューのアイコンでCLIを開きます。
CI / CDシステム、サードパーティグリッド、またはそれらのグリッドでテストを実行するために必要なコマンドが事前に入力されています。クリックするだけです 「コピー」 文字通り、組織が使用しているビルドツールまたはグリッドにコマンドを貼り付けます。
CLIは、特定のテストを実行したり、テストを並行して実行したり、ベースURLやその他の多くの機能をオーバーライドしたりするために、他のパラメーターも受け入れます。
=>使用できるすべてのパラメータはここにリストされています このユーザーガイド 。
結論
一言で言えば、Testim.ioプラットフォームは、上記のセクションで説明した自動化の主要な課題のいくつかを克服するのに役立ちます。これにより、自動化をより簡単かつ安定させることができます。
このプラットフォームは次のことに役立ちます。
- 自動化に関与し、確実なテストを作成するための非技術チームメンバー。
- 技術チームのメンバーは、複雑なプログラミングロジックを使用して、このプラットフォームの機能を拡張します。
- テストの作成と実行は非常に高速です。
- テストは、を使用するとより安定します 「ダイナミックロケーター」 。
全体として、これはテスト自動化のさまざまな側面に役立つプラットフォームであり、アジャイルチームや組織がのモットーと協力するのに役立つ機能をさらに構築する過程にあります。 1つのチームと1つの目標。
=>できます このツールの詳細については、こちらをご覧ください
自動化で直面している課題とその解決方法を知りたいので、質問があるかどうかを質問したり、コメントセクションで考えを共有したりしてください。
推奨読書
- Appiumテストの大規模な実行を並行して実行する方法
- IDEに統合して、Appiumテストを実行します
- AndroidアプリのAppiumテストを作成する
- Appium Studio forEclipseを使用してAppiumテストを並行して実行する
- Eclipse用のepochsStudioを使用したエポックテストの作成
- Spockフレームワークを使用したユニットテストの作成
- Specflowレポート:テストレポートを生成して選択テストを実行する方法
- Javaデプロイメント:JavaJARファイルの作成と実行