6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

READYFOR Advent Calendar 2024Advent Calendar 2024

Day 17

Autify NoCode七転び八起き~コケにくいテストシナリオの作り方~

Last updated at Posted at 2024-12-16

READYFORアドベントカレンダー2024カバー画像.png

はじめに

READYFOR株式会社へ業務委託で参画させていただいている @terraphic です。
この記事は READYFOR Advent Calendar 2024 の17日目の記事になります。:santa_tone1:

優秀な仲間たちの記事もぜひぜひご覧あれ :arrow_down:

ちなみに、本日わたくしの誕生日です(目出鯛)

こんな方へ最適な記事です

  • Autify NoCodeを利用してテストケースを作成し始めたばかりの方
  • Autify NoCodeを導入検討している方

ちなみに、"案件"ではありません(FREE)

Autify NoCodeでの困りごと

作成したテストシナリオがFlaky(不安定)

ノーコードでテストシナリオが作れるAutify NoCode。
「簡単にE2Eテスト作れるんやろ?サクっと作って、サクッと運用始めよ。」
と思っていざ作り始めてみると...意外とね。大変よね。

何が大変て、作ったテストシナリオが不安定でコケちゃうこと。
あまりにコケすぎるとオオカミ少年🐺になってテストが形骸化してしまうっ!

原因は様々...だけど、こんな作り方するとコケにくいよ!なTIPSを集めてみました。

  • 使用するユーザーを使いまわさない
  • 同じような要素が多い画面はAIに頼らず"ロケータ"を使う
  • 複雑な画面操作には"JSステップ"を使う
  • どのステップでコケても再実行できるよう"クリーンアップステップ"を活用する

深堀りしてみましょう

使用するユーザーを使いまわさない

複数のテストシナリオで同じユーザーを使いまわしていると、
テストを同時実行した際にユーザーの状態が変わって想定した結果と異なってしまい、コケることがよくあります。

「え~?じゃあたくさんテストユーザーを作っておかなくちゃいけないの??」

答えはNO。
Autify NoCodeにはランダムなメールアドレスを発行してくれるメールテスト機能があります。
メールアドレスでユーザー登録をするステップを追加してテストを実行すれば、どんなタイミングであっても想定した結果となることでしょう。
2024年12月現在、どの契約プランでもメールテスト機能は使えるので大活用していきたいですね。

image.png

注1: テスト環境から@testmail.autify.comドメインへメール送信ができるよう設定変更しておきましょう

同じような要素が多い画面はAIに頼らず"ロケータ"を使う

AIを用いたノーコードテスト自動化ツールであるAutify NoCode。

「え?AIがシナリオのメンテナンスを自動でしてくれるんじゃないの??」

それが"ウリ"な訳ですが...何事にも限界ってものがありまして。
多くのテストシナリオを作成した経験上、同じような要素(プルダウンやテキストフィールド)が多い画面だとAIの要素特定に時間がかかったり、要素特定できずにコケる場合が多い印象です。
Autify社のカスタマーサポートへ問い合わせ相談もしましたが、2024年12月現在の対応策としてはロケータを追加して要素を指定するのが最善策だそうです。

この機能を利用すると、そのステップはAIによるメンテナンスが効かなくなります。
つまり、ロケータの設定如何ではさらにコケやすくなる可能性もあるということです。

ロケータ設定のコツ

  • CSSセレクターで要素内の不変そうな属性値を利用する
    例: button[aria-label="close"], div[role="switch"]
    スクリーンショット 2023-07-04 1752242.png

複雑な画面操作には"JSステップ"を使う

AIを用いたノーコードテスト自動化ツールである(略

「え?JavaScript書くなんて聞いてないよ!!」

前項と同じ理由ですが、何事にも限界ってものがありまして。
ロケータ設定でも埒が明かない場合は、JSステップ機能を利用し、自らJavaScriptを書いて画面操作をすることになります。
Autify社からはAutify JavaScript Snippetsとして、よく使われるコードテンプレートが公開されていますのでこちらを利活用してみてください。

「それじゃあテストにならんやろ!」
というシチュエーションもそこそこあるかと思います。
READYFORではあくまでも最終手段として、またはテストの補助的操作で使用しています。

AIがより賢くなることをサンタさんにお願いしておきましょう :santa_tone1:

どのステップでコケても再実行できるよう"クリーンアップステップ"を活用する

例えば"アイテムを編集する"というテストシナリオを作成した場合、次回テスト実行用にアイテムのデータを元に戻しておきたいですよね。

データを元に戻すステップをテストシナリオの最後に追加して
「よーし!これで大丈夫!!」

ちょっと待って。テストの途中でコケてしまったら...?

そんな時は2023年9月にリリースされたクリーンアップステップ機能を活用しましょう。
テストが途中でコケても、最後に必ず実行されるステップが書けます。

最近リリースされた機能の中でも個人的に激アツで大活用中◎
将来的にクリーンアップステップの途中でexit 0できたり実行タイミングを選べたら嬉しいなと期待しています!

注2: 2024年12月現在、こちらの機能はAdvancedおよびEnterpriseプラン、および同等のプランのみ利用可能だそう

まとめ

いかがだったでしょうか?
たかが、テスト。されど、テスト。

システムの安心・安全と、より良い機能の早期提供を実現すべく、こういった素晴らしいツールをどんどん利活用していけたらと思います:christmas_tree::santa_tone1::christmas_tree:

明日12月18日は @shmokmt さんの担当です。お楽しみに!

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?