Luup QAの自動化について
はじめに
こんにちは、LuupのQAチーム所属のかすみです。
手動でQAを行っているといつかは「自動化」という観点が出てきます。
品質を担保するにはQAの範囲は広い方がいいと思っています。
ただ、手動で全てをやるには限界があります。(物理的にもそうでなくても)
そこで、その負担を軽減できる「自動化」を導入するQAチームは少なくありません。
Luupのモバイルアプリの自動化チームも立ち上げ期間を経て最近運用フェーズに入ってきましたので、今回は自動化について紹介したいと思います。
そもそもの背景
モバイルアプリの手動QAチームはFeatureテストとRegressionテストを7〜10営業日で行っています。
ただ、Featureテストを行っている間はRegressionテスト、つまり全体的な連携テストは行えていませんでした。
本来なら、毎日でも基本機能のテストは行った方がアプリの品質は担保されます。
しかし、手動チームのメンバーでそこまで範囲を広げるのも難しいです。
そこで、テストピラミッドの上の部分をより厚くしようと自動化チームが発足しました。
何をしているのか
環境やツール
- バックエンド:GCE上にLocal Emulator Suiteをホスティング
- モバイルアプリ:アーティファクトとテストコードをFirebase Test Lab上にアップロードし実行
参考:https://firebase.google.com/docs/test-lab?hl=ja
自動テストのプロセス
- 手動チームの作成したRegressionテストの項目をベースにBDDフレームワークを使いテストシナリオを設計する
- テストシナリオをモバイルアプリのUIテストとして実装する
- Localでテストファイルをビルドする
- Test Labにパッケージをアップロードする
- UIテストを実行する
動かした際に上手く動かなかったなど想定外の動きをしたら、テストコードを見直し修正します。
もし修正しても動かない場合はエンジニアに不具合として報告します。
対象機能
- アカウント新規登録
- アカウント情報更新
- マップ操作
- ライドの一連の流れ(自転車、キックボード)
- クーポン登録 + 利用
このような基本機能を定期実行することで、手動テストでは毎日確認するのが難しい動きも確認できるようになりました。
難しいこと
自動化テストでは担保ができない箇所も出てきます。
例えば以下のようなことです。
- QRコードの読み取り
- 年齢確認書類の撮影
- オートスキャン
- 回線OFFの時の挙動
このように、実際の端末の設定に依存してしまう箇所は自動テストでの担保が難しくなっています。
また、回線がOFFになっても自動テストが動かせなくなるので、このようなテストも行えません。
ただ、自動テストで難しい部分を手動チームのテストで補って行くことで、品質を担保しています。
終わりに
今回は自動化についてさらっと記載しました。
やれることはまだまだたくさんありますが、今後の目標としてもっと広いQAを行いたいというものがあります。(車両との連携部分とか)
自動化は運用フェーズに入ったとはいえ、スコープを広げていきたいと思っていますし、
手動QAについてもまだまだできることがあると思っています。
もし、Luupの自動化や手動といったQAに関して興味を持った方、そうじゃなくてもLuupに興味をお持ちの方はカジュアル面談からでもお気軽にご応募ください。
Discussion