弥生開発者ブログ弥生開発者ブログ2024-10-16MagicPodで自動化したシナリオの実行時間が手動実行時間より長くなってしまったので改善した話QAこんにちは、かとあず(@kato_az)です。弥生でQAエンジニアをしています。好きな勘定科目は未払金です。先日、MagicPodを導入したブログを公開しました。今回は、自動化したシナリオの実行時間が本気を出した手動実行実行よりも遅かったことと、それに対応したお話しです。判決「要改善」......?リグレッションテストを自動化ひとこと「リグレッションテスト」と言っても想像するものは人それぞれです。「あなたが言っているEndはどこのこと?」となると理解がずれてしまいます。今回は、システムテストのリグレッションを自動化しました。具体的には、「テスト対象のスマート証憑管理にデータが入ってくる処理」から「スマート証憑管理がデータを送信する処理(と、確実に送信できたことを確認する)処理」を範囲としています。CONNECTに仕訳情報を連携するシナリオがあります。CONNECTに仕訳情報を連携するシナリオをもう少し具体的に書いてみます。CONNECTの「未確定の取引」に仕訳データが連携されていることを確認するここまでが目的としている連携のテストです。この後、繰り返しテスト実行ができるよう、データの片付け処理をしていきます。オンラインからログアウトするMisocaにログインするMisocaで作成した証憑を選択し、ゴミ箱に入れるMisocaからログアウトする連携を少し待つスマート証憑管理にログインするスマート証憑管理でMisocaから連携された証憑が、「削除済みの証憑」に移動していることを確認するスマート証憑管理からログアウトする連携を1パターン実行するのにこれだけの操作が必要になります。手順で記載している「連携を少し待つ」は、システム間の連携です。連携が完了するまでにかかる時間は、各システムの負荷状況によるため一定ではありません。手動でテストしている際は、様子を見て画面更新しながらしばし待つという対応をしています。自動テストでは「様子を見ていい感じのタイミングで次の確認を始める」という手順が作れず、どうしても「一定時間の待機処理」に頼ってしまっています。Misocaからスマート証憑管理への連携方法は全部で11パターンあります。Misocaからスマート証憑管理へ連携するパターン手動で実行しているリグレッションテストでは、テストのたびにランダムにパターンを選んで確認をしていますが、自動テストでは全11の連携パターンを作成しました。全11パターンを作成したら毎回全パターンの実行をしたくなりました。実行!11パターンのテストを実行し終えるのに、約120分かかりました。して?なんとか改善をしなければ......自動化したことで、早朝や深夜、昼休み、ミーティング中、他の作業をしながらテスト実行ができるため、人が作業をする時間は実行結果を目視確認する1分程度になり「ほぼゼロ」と言えます。こんな時にもテスト実行できるのが自動化の強みただ、11パターンを私が本気を出して手動で実行したら120分もかからないのです。一つ一つの処理は、手動実行するより自動実行した方が確実に早いにもかかわらず、全体の実行時間が長くなっている主な原因は以下2点です。ログイン処理について弥生のサービスでは、前回ログイン情報のセッションが残ってしまったときに、重複ログインの確認画面を表示します。この重複ログインの確認画面を表示した場合、処理を続行する選択をしてから進まなければなりません。ほとんどのテスト実行では発生しないのですが、テスト実行前に正常終了できていなかった場合やセッションが残ってしまった場合、重複ログインの確認画面でテスト実行が進めなくなってしまいテストがFailで終わってしまいます。このため、「重複ログイン画面が出た場合」の分岐処理を入れる必要がありました。これにより、手動のログイン実行よりも時間がかかってしまっています。今後改善できるかもしれませんが、すぐに対応できる解決策がみつからないため、ひとまずテストが安定してPassするために処理の変更は入れませんでした。システム間連携の待ち時間について確実にシステム間のデータ連携が完了してしてから次の処理に進めるように調整をした結果、「60秒待機」「120秒待機」といった待機時間が入ることになってしまいました。「画面更新がされたら次のステップに進む」という設定にすることで待機を最小限まで短縮することも考えましたが、自動で描画が更新されないこともあり、手順の作成が複雑になってします。そこで思い切ってテストケースの実行順序を変更し、まとめて確認できる内容については、1回ずつ確認するのではなく、まとめて確認をするようにケースを組み替えることにしました。Misocaからスマート証憑管理への請求書連携を例にして、具体的に説明していきます。変更前は、連携方法ごとにケースを作成していました。請求書の連携では4つのケースになっています。計画したシナリオのとおりになっています。CONNECTにデータ連携されたことの確認以降のケースを分離しました。これにより、テストケースは1つ増えて請求書連携テストを完了するには、4ケースから5ケースが必要になりましたが、「連携待ち」の回数が減りました。変更後のケース例示した、Misocaからスマート証憑管理への請求書連携と同じような組み替えを、Misocaからスマート証憑管理への納品書連携とMisocaからスマート証憑管理への見積書連携でも対応しました。まとめ11パターンのMisocaからスマート証憑管理への連携確認が約120分かかっていたところから、改善により約45分に短縮することができました。手動で実行するよりもはやく正確にテスト実行ができるようになり、デプロイ完了から結果の確認までの短縮といったチーム内でのメリットと、「クラウド端末(テスト一括実行)」の専有時間が短くなるといった社内のチーム外へのメリットもありました。自動テストのシナリオは、作成して終わりではありません。日々運用することで効果をもたらします。テストの網羅率をあげることも大事ですが、作成したシナリオを運用し続け改善することも大事な対応の一つです。今回は、はじめての自動化で手探りだったため、一度作成してから実行順序を組み替えるという方法をとりました。今後は実行する時間のことも考えてテストシナリオを検討し、テストケースを作成していきます。弥生では、一緒に働く仲間を募集しています。11:00関連記事2024-09-13MagicPod導入しましたこんにちは、かとあず(@kato_az)です。弥生でQAエンジニアを...2023-04-07隣のチームのQAエンジニアとペアテストをやってみましたこんにちは、カトです。弥生でQAエンジニアをしています。クラウド見...2021-06-11Androidアプリのテストを自動化こんにちはmisocaアプリの評価が3.5になって嬉しいtijinsです。3日目)今日はちょっと曇り空。いえ気持ちいい天候ですね。弥生は第23回Quesに協賛します。弥生は第23回Quesに協賛します。引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。