自動テストは繰り返し実行だけのためじゃない。MagicPodを使って大量データ登録をやってみた。

この記事は弥生 Advent Calendar 2024のシリーズ2、15日目の記事です。

クリスマスまであと何日?
こんにちは、かとあず(@kato_az)です。弥生でスマート証憑管理のQAエンジニアをしています。好きな勘定科目は未払金です。
「未払金」は、「みらいきん」と読みます。私は本名の漢字が読みにくく、よく読み間違えが発生します。「みらいきん」と読まれがちな「未払金」に同族意識を持っています。
他にも未払金が好きな理由はいろいろあるのですが、それはいつかまた別の機会に。
今回はMagicPodを使ってデータ作成をしたお話しです。

それはある日突然に

とある金曜日のこと。私は朝9時頃にPC起動して業務を開始。
前日私が退勤したあとにSlackのメンションがいくつか入っていたため、内容を確認し始めました。

すると、1通のメッセージが目に入ってきました。

スマート証憑管理に取引先をたくさん登録したいです。700件とか1,000件とか。
(実際のメッセージは、きちんと書かれていました。私のフィルターを通した理解はこんな感じです。)

単純作業、繰り返し作業が大好きな私は、「今日の仕事はデータ登録か?」と、さっそく肩をあたため始めました。

日頃の筋トレはデータ登録に役立つ?
そして、当日の自分のスケジュールを確認しました。
あれ?あまり作業時間がない……
こうなる未来はすでに見えている
依頼者は木曜日の夜に依頼しています。たくさんデータ登録がされている画面を鑑賞することがゴールではなく、たくさんデータ登録した先にやりたいことがあります。
当日のスケジュールを見ると、私が集中して作業できる時間を確保できるのは午前中の少しと、金曜日の夜の時間帯です。とすると、データ作成が完了して、データをつくった環境で次のステップに進めるのは翌週月曜日になってしまいます。
依頼者は別に「私に」データをつくってほしいわけではありません。すでに条件を満たすようなテストデータを持っている可能性や、はやくデータを作る方法を考えられるだろうということで連絡がきたのです。
「誰が作った」は関係しない
手元に、取引先が大量に登録されているデータは存在しません。ではどうする?選択肢はいくつかありそうです。

  • 私が作成する。
    • 金曜日の夜に作成に着手、月曜日の朝までにデータが登録されたアカウントを渡すことをお伝えする。
      • 遅い。
    • ミーティングに参加しながらデータ作成をする。データ作成完了時間は未定。
      • ミーティングの内容を聞き漏らすのでよくない。
  • チーム全員で作成する。
    • 手分けして作成をする調整をする。何人の調整がつくかは未定。10人集まったとしても1人あたり100件程度の作成が必要。
      • 調整に時間が必要で、他の開発作業に遅延が発生する。
  • テスト自動化ツールを使う。
    • 自動実行の準備をして、ミーティング参加中に実行する。
      • デメリットはなさそう。

選択肢は天使と悪魔……ではない。

MagicPodを使ったデータ作成

私は「テスト自動化ツールを使う」ことを選択しました。MagicPodで作成した、「取引先を3件登録する」シナリオはあります。
この時までMagicPodで実行するシナリオは毎日動かすテストを作るものだと思っていました。しかし、繰り返す目的ではなくてもテスト自動化ツールが使えそうです。
継続的に使うシナリオは可読性やメンテナンス性を考慮する必要がありますが、今回はデータがたくさんある状態をなるべく早く作ることを第一目標としました。

既存のシナリオをコピーして、シナリオを作り変えること約30分。

シナリオの変更概要
決してきれいなやり方ではないことはわかっていますが、データを180個つくるシナリオができました。

さっそく実行開始。
無事に動き始めたので、実行の様子をたまに確認しつつ、予定通りにミーティングに参加します。
データを180個作成しシナリオ実行が完了したら、再度実行ボタンを押します。
午前の業務時間終了時間が近くなってきたタイミングで600件を超えるデータが登録されていることを確認し、この後の作業を相談しました。
「1度この件数で挙動を確認したい」というコメントだったのでテストデータ作成をストップしました。そして、データを作成したアカウントを引き渡します。
しばらくすると「予定の件数よりは少ないが、やりたかったことは確認して達成できそう」ということで、追加のデータ作成はせずここで作業完了です。
できた。

まとめ

作ったシナリオはきれいとは言い難く、そして、もっと効率的なやり方があったとは思っています。
それでも、「自動テストは繰り返し実行してリグレッションテストに使うもの」という思い込みを捨て、今チームが必要なことを実現するための手段として考えられたことはチームにとってよかったことでした。
手動でデータ登録をした場合、データ作成完了が金曜日の夜になりデータ登録したアカウントを使った確認開始が翌週月曜日になっていたはずですが、MagicPodを使って自動化したことで金曜日の午前中にデータ登録対応が完了し、金曜日の午後にはデータ登録したアカウントを使った確認ができました。データ登録の完了を半日分早めることができました。 そして、データ登録したアカウントを使った確認は、金曜日のうちに完了しました。週をまたがずに確認を終えられ、チームはすっきりと週末を迎えられました。

MagicPodで必要なテストを作って運用し続けるとともに、デプロイごとのテスト以外にもMagicPodを利用できるタイミングで活用することを考えていきます。



弥生 Advent Calendar 2024を引き続きお楽しみください。
qiita.com
弥生では、一緒に働く仲間を募集しています。
herp.careers
弥生のエンジニアに関するnote記事もご覧ください。
note.yayoi-kk.co.jp