ノーコードテスト自動化のコツのお話
はじめに
こんにちは。SHIFTのERPサービスグループに所属するゆあさです。前回の記事ではノーコードテスト自動化のキャッチアップの感想についてお話しをしました。今回はノーコードでテスト自動化するときのコツや考え方についてお話ししようと思います。
ノーコードでのテスト自動化のコツをお話しする前に、今回も前回同様にノーコードのテスト自動化プラットフォーム「Autify」の実例からお話していきます。今回お話しする内容は、ノーコードでテスト自動化する際の作りやすさやメンテナンスのしやすさにフォーカスした内容となります。
どんなテストをどうやってテスト自動化するか?など、プロダクト特性、テスト戦略などに基づくテスト自動化のお話はしません。(SHIFTで「失敗しないソフトウェアテスト 実践ノウハウ」という書籍を出しているのでこちらのテスト自動化事例の参照をお勧めします。)
ノーコードでのテスト自動化のコツ
では本題についてお話します。
ノーコードでのテスト自動化のコツですが、主にこちらに記載していることを心掛けしました。
①シンプルなテストシナリオにする
テスト戦略にもよりますが、自動化する際の操作手順とか、確認する観点や内容を無理に追加しすぎないことです。
ノーコードのでテスト自動化は容易に操作の録画ができます。そのため、あれも確認したい、これも確認したいと確認する項目の追加が起きやすく、操作手順や確認項目が多くなる可能性があります。操作手順や確認項目が多くなると、ソフトウェアの更新によって記録した操作と差分が発生する対象が増え、意図しないNGが発生する確率も高くなります。
NGの結果通りに変更前と変更後の差分の確認が出来ればテストとしてはOKと、柔軟なテスト活動で進められれば問題ありませんが、その後はメンテナンスが発生しますし、自動テストも作成しやすく数が増えるので、メンテナンスコストは増えていきます。
操作手順や確認項目の数は、プロダクト特性、テスト観点やテスト内容にもよるので一概に全てシンプルに作るのは難しいと思います。アジャイルなど変化の多い開発プロセスやソフトウェアの変更に対する自動テストの耐性、メンテナンス容易性を重視する場合は、シンプルなテストシナリオと確認項目だけのが運用しやすいです。
※ただ、シンプルにしすぎて本来意図する条件でのテストが出来なくなるのは本末転倒なので、さじ加減は求められます。。
自動テストを作ると、その分メンテナンス工数は増加する事を認識し、後続のメンテナンス運用まで考慮したテストシナリオの作成を心がけると良いです。
②メンテしやすく作る
では、ノーコードの自動テストにおけるメンテナンスのしやすさとは何か?どうやってメンテナンスしやすいノーコードの自動テストを作るか?自動化したいテスト全てに当てはまるとは限りませんが、以下の事を意識して作るとメンテナンスしやすい自動テストになると思います。
繰り返し前提でつくる
1回しか使わない、再実行で毎回メンテナンスが必要な自動テストシナリオにしない
(※メンテが必要な場合もあるので、機能テストよりの考え方かもしれません)CSVで入力値、期待値が更新ができる
期待結果の値が毎回変わる自動テストなら、データ機能を利用して期待結果の更新を容易にする
(※データシート等からCSVインポートする準備は必要になります。)他の人でもメンテナンスできるテストにする
自動テストの内容や手順などをAutifyのテストシナリオに記載する(メモレベルでも記載する)テストデータはしっかり準備する
CSVインポート用のデータは勿論、テストで作成する入力値やアップロードファイルの内容も次回テスト実行で利用しても問題ないか? (※作りこむところは作りこむ!簡略化してよいところは省略する)自動テストの並行実施でテスト環境を複数用意
1つのテスト環境で自動テストを行うと、重複操作でNGになる場合があります。複数のテスト環境が用意できる場合は、分散して自動テストが回せるようにすると次回テストに向けたテスト環境のメンテナンスがしやすくなると思います。プラスアルファで実務上でやってみたこと
UIの変更頻度が多くて対象画面へ遷移できない、確認したい機能がテストできない場合は、URLで直接画面遷移する(※但し、対象項目をクリックして一連の動作を確認したい場合は推奨しません。)
ここまでがメンテしやすく作るの話です。 もしかしたら、取り組むには作業コストは上がりそう? と感じるかもしれません。 ただ、継続的な自動テストへの投資として考え、取り組めば以降の自動テストが楽になると思います。
③効率よく自動化
自動化するテスト項目の優先順位を決める
運用面では効率を意識し、自動化するテスト項目の優先順位を決めて、戦略的に自動化していきました。自動化テスト前にUI変更箇所をメンテナンスする
UIだけに限らないのですが、テスト前に新しい画面や機能、変更箇所が開発環境に反映されるなら、開発環境でのメンテナンスもしてきました。ただ、テスト環境と開発環境が区別されていること。また、UIや画面、機能の更新箇所を把握する必要があり、テスト前に仕様が確定している事も前提となります。
ちなみに軽微なUIの変更だけなら自動テストの影響は少ないのでメンテナンスしなくても大丈夫だと思います。(例えばボタンの文言やデザインが変わるなど、配置箇所が多少変わってもOK)
最近はテスト実行結果のエビデンス画像から操作するUI要素の更新が出来るようになったので、自動テストを回しながらすぐにメンテナンスができます。(クイック要素更新という機能で、ゆあさも重宝してます。便利です。)
というわけでここまでがノーコードでのテスト自動化のコツのお話でした!
さいごに
ゆあさがここで書いた事以外にもノーコードでのテスト自動化のコツは沢山あると思います。実践を通じて探してみてください。(ゆあさもまだまだ探し中です)
また、今回はお客様である株式会社LayerX様でもノーコードテスト自動化への取り組み記事を執筆しておりますので参考にリンクを共有いたします。
LayerXのAutifyを利用したテスト自動化への取り組み
次回は実際に私がキャッチアップしてノーコードテスト自動化をしたお話をしようと思います。 (※ここで書いたコツも意識して自動化してみました)
お問合せはお気軽に
https://service.shiftinc.jp/contact/
SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/
SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/
SHIFTの導入事例
https://service.shiftinc.jp/case/
お役立ち資料はこちら
https://service.shiftinc.jp/resources/
SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/
PHOTO:UnsplashのChristopher Gower