こんにちは、かとあず(@kato_az)です。弥生でQAエンジニアをしています。
好きな勘定科目は未払金です。
テスト自動化ツールMagicPodを導入しましたので、紹介をします。
導入目的
私が担当している「スマート証憑管理」は、2週間スプリントで開発を進めています。
2022年にサービス運用を開始した直後は搭載している機能が限定的で、全機能を対象としたリグレッションテストをすることが開発スケジュールに影響することはありませんでした。
毎回手動でテストをすることで、機能を理解する、お客さまが実際に使っている操作を知ることにつながるというメリットもあったように感じています。
しかし、機能が増えるにつれて、テストする内容も増え、「テストが間に合わないのでリリース日を調整する必要がでてきそう」という状態になってきました。
また、レトロスペクティブの中で、アジャイルテスト4象限のQ3やQ4のところに力を入れていきたいという話題があがることがありました。
引用元:https://www.scrum.org/resources/blog/how-the-four-agile-testing-quadrants-support-scrum-teams-jp
アジャイルテスト4象限のQ3やQ4を推進するために、Q2領域のテストを自動化して手離れをしなければ新しい取り組みには着手できないと感じるようになってきました。
そこで、ローコードでテストシナリオが作成できるMagicPodを導入することにしました。
ちょうど他のサービスを担当しているQAエンジニアもテスト自動化ツールを検討していたため、一緒に協力してMagicPodの導入を進めることになりました。
導入に向けて
本番環境を使ってシナリオを作成する
まずは利用ができるかの確認です。本番環境で「基本機能」と位置付けている動作シナリオをツールで実行できるかを確認する作業に着手しました。
シナリオの作り方がわからない場合は、画面右下に配置されている「お問合せ・ヘルプ」に入力して問い合わせをします。
何度かお問合せをしました。すべて翌営業日に回答をいただくことができました。回答の速さと回答内容の適切さに救われました。
私たちのチームが予定しているテストシナリオの作成が可能であることがわかりました。
テスト環境でシナリオを作成する
まずは、ローカル実行から
本番環境からURLやログインアカウントを変えるだけでテスト実行できそうではありましたが、本番環境と異なりテスト環境は社内からしかアクセスができないよう制限をかけています。
私たちのチームでは、テスト環境で毎日リグレッションテストができることを目標にしていたため、「ローカル端末」を使ってテスト実施をすることにしました。
そして、日々テスト実行を続けながら、シナリオのパターンを増やしていきました。
テストを実行するという点では目的は達成できていますが、「ローカル端末」を使うとテスト実行開始は手動で行わなければならず、事前にスケジュールを設定しての定期実行ができません。
このため、テスト実行担当者が不在だとテスト実行が行われないことや、「MagicPodDesktop」をインストールしているPCでしかテスト実行ができないといった不便さがありました。
また、「ローカル端末」での実行では、CIサービスを使用して定期的にテストを実行するということができません。
これらの問題点は、テスト環境においてもクラウド実行ができるようになることで解消できます。
そして、クラウド実行へ
テスト環境でクラウド実行をするには、「接続元IPアドレス制限」の対応が必要です。また、「ユーザー固定IP」も設定したいという希望がありました。これらの対応は、必要になっていた他のチームが先に対応着手していました。
チーム間協力、万歳!
契約プランをスタンダードプランからエンタープライズプランに変更したり、インフラチームに協力を仰いで「接続元IPアドレス制限」の対応を進めてくれていました。
私たちのチームがスケジュール実行を開始したかったタイミングではすでにこれらの対応が完了していたため、追加の作業をすることなく、テスト環境でのクラウド実行を始めることができるようになっていました。
対応してくださったみなさん、ありがとうございます。
現在の状況
スマート証憑管理チームでは、テスト環境で毎朝5:00からシナリオを流して実行結果をSlackに通知するようにしています。
出勤したらSlackの通知を確認することで、テスト環境に意図しない変更が入っていないかをチェックできます。
また、日中にテスト環境にデプロイをしたら、追加機能に関して手動でテストを開始するとともにリグレッションテストはMagicPodで実行をすることで、テストの期間を短縮することができるようになりました。
ヘルススコア
2024/09/09のスマート証憑管理チームのMagicPodヘルススコアです。
99点!けっこうがんばっています。
不足している1点は、「安定したロケータの使用」です。テストシナリオの見直しや、エンジニアとの協力によって、残りの1点を取りに行きます。
また、ヘルススコアが高いからといってテストの内容がシステムを網羅できているというわけではないということは注意しなければいけません。
作成を予定しているテストシナリオはまだすべて作り終わっていません。
メンテナンスして運用を続けながら、引き続きテストシナリオを増やしていきます。
MagicPodで検出した事象
デプロイごとのリグレッションテストを目的にしていること、開発者自身でもしっかりと動作確認をしているチームであることから、デプロイしたらMagicPodのテストがまったく動かなくなったということは発生していません。
安心安全のチームです。
それでも、意図しない変更が入ってしまうことはあります。
「スマート証憑管理」では、はじめて利用するお客さまにチュートリアルを表示する機能があります。
このチュートリアル画面の動画の位置がなぜか突然左に寄ってしまうといった事象が発生しました。
この事象をMagicPodのテストで差分として検知しました。
手動のテストでは「はじめて利用するお客さま」の観点を省略してしまうことが多く、毎回チュートリアルの表示詳細までは確認していません。
このため、手動テストだけを実施していたら検知が遅れたことと思います。
ちなみに、このチュートリアル、「スマート証憑管理」にログイン後、画面右上にある「?」をクリックして、「使い方ガイド」を開くメニューからいつでも表示することができます。
「スマート証憑管理」でできることにどんなことがあっただろう?という方がいらっしゃいましたら、ぜひご覧ください。
導入目的は達成できている?
いろいろと試行錯誤をしているところなので、別の記事で紹介できればと考えています。
おまけ
MagicPodを使った自動テストは、QAエンジニアだけではなく、チームみんなで運用して育てていきたいと感じています。
開発者も開発者以外も知らず知らずのうちにMagicPodが身近な存在になったらいいなと思い、「ソフトウェアテスト関係者くらいしか使わない絵文字」を社内Slackのスタンプとして登録しています。
magicpod.com
「mp-」から始まるスタンプ名で登録しています。
登録する・しないの選別は完全に私の好みです。
もうすでに弥生全員がMagicPodユーザーになり始めています。
弥生では、一緒に働く仲間を募集しています。