LoginSignup
0
0

More than 3 years have passed since last update.

(テスト自動化) 自動操作のシナリオを作るにあたって

Posted at

背景

社内のシステム開発者向けにテスト自動化システムを構築・運用している。(SikuliX + Testablish)
その中で日常的に出てくる技術課題ややりたいことをメモ書き。

テストに限らず自動化はいろいろと難しい。

課題

RPAもテスト自動化も『今やっている作業が自動化されたらなんてハッピー』という感じで始めるのだが、実際は『あれ、なんか思ってたのと違う…』と我に帰るタイミングがあるものである。それは、以下のような時に特に強く感じる。

・ 作った自動操作が思ったように動かないとき
・ 文章で書けばワンセンテンスなのに、自動化させるための工程に直すと10倍以上の量を記述する必要があるとき
・ 業務やシステムに仕様変更があって、自動化した操作の多くが動かなくなったとき

いずれも実際遭遇すると『やっぱり止めておこうかな。人類に自動化は早すぎる』と諦めたくなるのだが、諦めてしまっては先がない。
地道に一歩ずつ対策を練りたい。

対応

操作シナリオの作り方について、使い回しが効いて、メンテナンスが最小となるようなお作法を考える。

目的

自動化を楽にする。

内容

自動化にあたってのお作法は色々とあるのだが、今回はその中でもシナリオの区切り方についてメモする。

シナリオの区切り方
次のようなシナリオがあったとする。

新しい部署および紐づく社員を登録し、対象社員へパスワード変更メールが飛ぶことを確認する。
また、メールからシステムへアクセスし、パスワード変更できることを確認する。
繰り返し実行できるよう登録したデータは最後に消す。

これを単純にシナリオ化すると次のようになる。

1.担当がシステムへログインし、部署画面へ遷移し、部署データを登録して、社員画面へ遷移し、社員データを登録する。
2.社員がメールを開いて、メール中のLINKからシステムへアクセスし、社員画面へ遷移し、社員データを更新する。
3.担当がシステムへログインし、社員画面へ遷移し、社員データを消して、部署画面へ遷移し、部署データを消す。

ただ、上記のシナリオはできれば以下のように分割したい。

※以下シナリオの入力データはすべて外部INPUT
システムへログインする
部署画面へ遷移する
部署画面で部署データを登録する
社員画面へ遷移する
社員画面で社員データを登録する
システムをログアウトする
メーラを開く
メールを開く
リンクをクリックする
システムへログインする
社員画面へ遷移する
社員画面で社員データを更新する
システムをログアウトする
システムへログインする
社員画面へ遷移する
社員画面で社員データを削除する
部署画面へ遷移する
部署画面で部署データを削除する
システムをログアウトする

整理すると以下のようになる。

※以下シナリオの入力データはすべて外部INPUT
ログイン・ログアウト
 システムへログインする
 システムをログアウトする
メニュー
 社員画面へ遷移する
 部署画面へ遷移する
社員画面
 社員データを登録する
 社員データを更新する
 社員データを削除する
部署画面
 部署データを登録する
 部署データを削除する
メーラ
 メーラを開く
 メールを開く
 リンクをクリックする

何が言いたいか。

シナリオは使い回すために以下工夫をしましょう。

・シナリオは一連の操作を一括りで作らず、単操作に切り出す
 (単操作を組み合わせて1シナリオを作成するイメージ)
・データは外部INPUTにする

何が良いか。

・テスト全体で見たときの記述量を減らすことが出来る。(冗長的な記述を省くことができる)
・仕様変更による影響を最小限に出来る。
・単画面テストでの自動シナリオを、シナリオテストでも流用できる

結果 or 気付いた点

手動テストの場合は、一連の動作で頭からお尻までシナリオを記述するため、自動テストでも同様の記述をしてしまいがちだが、上記のような工夫はやはり不可欠に感じる。

結論

何事もやり方次第

0
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
0
0