blog

DeNAのエンジニアが考えていることや、担当しているサービスについて情報発信しています

2019.09.19 技術記事

DeNA品質管理部 検証自動化の取り組み

by shuhei.furuya

#swet #android #ios

DeNA品質管理部 リリースサポートグループ 古屋秀平です。
DeNA品質管理部では今期よりQA主体で検証自動化に取り組んでいます 。

DeNA品質管理部での自動化

リリースサポートグループ QA Evolution(QAE)チームが中心となり、E2E(End to End)テスト領域における検証自動化を進めています。

複数の端末を連携させての自動実行

当社では様々なジャンルのアプリをリリースしているため、 自動化を進めていくには端末単体での自動化だけでなく、 複数の端末を連携させての自動化への対応も必要になります。 そこで、QAEチームでトライして意図した動きを実現できましたので、動画に収録してみました。


当社がリリースしているMOVにおいて自動実行をさせた際の動画です。
  • 右側・・・MOVがインストールされた「ユーザー端末」
  • 中央・・・タクシー車内の後部座席に設置される「後部座席タブレット」
  • 左側・・・タクシー車内で乗務員の方が操作する「乗務員端末」

「配車依頼-迎車-乗車-支払」までのフローを自動実行しています。

0:01 ユーザー端末から「タクシーを呼ぶ」をタップし配車依頼リクエストを実行
0:10 乗務員端末で「OK」をタップし配車依頼リクエストを承認
0:18 乗務員端末で「現着」をタップ
0:26 乗車状態となり後部座席タブレットの「ご乗車ありがとうございます」などの
        表示を確認
0:30 支払状態となり乗務員端末で「OK」をタップ、後部座席タブレットの金額等を確認
0:36 乗務員端末で「決済する」をタップし決済を実行
0:45 ユーザー端末で「OK」をタップ
0:48 ユーザー端末で評価操作を実行
0:54 後部座席タブレットの「ご乗車ありがとうございました。」等のメッセージを確認

上記のようにマニュアル操作での検証と同様に各ステップでの 各端末における期待結果をスクリプト内でチェックしながら処理が進んでいます。

実現方法について

Airtest(https://github.com/AirtestProject/Airtest)で実現しています。
(画像認識ベースのUI自動化フレームワークです)

特徴的な点は同一スクリプト内でシーケンシャルに実行できていることです。2台を連携させた実行事例はあるかもしれませんが、3台を連携させた実行例は珍しいかと思います。

また、iOS端末・Android端末が混在する形での実行も可能で、動画内では

・ユーザー端末(iOS端末)
・後部座席タブレット(Android端末)
・乗務員端末(Android端末)
を組み合せて実行しています。

複数端末での自動実行を実現できることで、DeNAの他プロダクトでの展開も期待できます。

今後について

複数台実行も可能な技術確立はできましたが、定期実行環境の構築なども必要になりますので引き続きトライしていきます。

最後に

今後も自動テストを活用してMOVをはじめとしたDeNA全プロダクトの品質向上に貢献していきます。

最後まで読んでいただき、ありがとうございます!
この記事をシェアしていただける方はこちらからお願いします。

recruit

DeNAでは、失敗を恐れず常に挑戦し続けるエンジニアを募集しています。