207 Tech Blog

テクノロジーで物流を変える 207 (ニーマルナナ) 株式会社のテックブログ

QA組織の立ち上げから7ヶ月でテストを自動化したお話

207でQAを担当している西田(@1031riki)です。巷でよく話されているひとり目のQAです。QAになる前はスキマ便のオペレーションマネージャーを担当していたのでQAは未経験からのスタートでした。今回は207で提供している配送員の方向けのアプリ TODOCUサポーター のWAUを2桁から4桁へ成長させるにあたって207のQAが取り組んできたことをお話したいと思います。

QA組織の立ち上げ

2021年の2月ごろにQAチームを立ち上げました。それまでは品質に対する意識は非常に低く、E2Eテストも行わずbizサイドの手が空いたメンバーが軽く動作チェックをするだけでリリースをしていました。

初めに、機能ごとにテストを行うFeature Debug(単体テストとリリースビルド毎にテストを行うRelease Debug(結合テストの2つのQAフローを導入しました。一般的なリリースフローですね。Feature DebugではPDMやエンジニアとコミュニケーションをとりながら探索的テストを行います。バグが検出された場合でもユーザーへの影響範囲の少ない不具合に関しては修正は行わず、別のスプリントにて修正を行う形をとっていました。PMF達成に向けて爆速で機能をリリースし、ユーザの体験を向上させることを最優先としていた為です。

探索的テストのメリット

  • テスト設計の時間を省ける為、テストにかかる工数を減らすことができる
  • 仕様変更による無駄な工数が発生しにくい -> 仕様変更しやすい

f:id:nishida_0128:20210817112429p:plain

リリースフロー

Feature debugをクリアしたものでrelease buildを作成し、E2Eテストを行うRelease Debugを行います。QAフローを導入した最初の頃は、Release DebugでのみE2Eテストを行っていた為、Release Debugでバグが検出され、全体のリリースが遅れてしまうことが多々ありました。Feature DebugでもE2Eテストを行うことで解決し、うまくスプリント内でリリースできるようになりました。

テストの自動化の経緯

Feature DebugでもE2Eテストを行うことで、開発速度は保たれるようになりましたが、QAリソースはどんどん圧迫化されていきました。E2Eテストの肥大化も進んでいた為、人的なミスを犯してしまいバグを本番に流出させてしまうことが増えてきました。そこでE2Eテストを自動化し、コスト削減と効率化を計りました。

Seleniumなどのオープンソースを利用したテスト自動化も検討しましたが、私は非エンジニアであった為、テスト自動化ツールを利用することにしました。また属人化を排除し、誰でもテストが作成できる状態にしたかったという経緯もあります。オープンソースとテスト自動化ツールの特徴については簡単にまとめてるのでよければ参考にしてください。

f:id:nishida_0128:20210817143311p:plain

テスト自動化ツール

オープンソースとテスト自動化ツールの特徴

f:id:nishida_0128:20211220133744p:plain

自動化の結果

TODOCUサポーターとテスト自動化ツールの相性はとてもよく、前述した通りサクサクとテストケースが作成できました。テスト自動化ツールは誰でも1時間くらい触れれば使えるようになると思います。ただ、実際に運用に載せるのは難しく開始から運用スタートまで約2ヶ月程度かかりました。メンバーがツールに慣れていた(ツールマスターレベル)のでスムーズにいきましたが、私だけだと少なくとも3ヶ月はかかったと思います。

テスト自動化でE2Eテストに要する時間が短縮されたかというとそうでもありませんでした。デグレ等によって本来はうまくいってたテストが止まってしまったり、修正前のバグがある場合も毎回テストが止まうため調整や再始動させる必要があります。現在、一部のテストをコメントアウトしたりすることができない為、E2Eテストをノンストップで回すにはプロダクトの熟練度が高くなってくる必要があります。バグが発生する部分を回避するためのテストケースを作成するのもおかしな話ですからね・・・w

E2Eテストを自動化したことで手を動かせる時間が圧倒的に増えました。探索的テストに費やせる時間が大幅に増えたり、TODOCUサポーターで利用しているジオコーディングAPIの精度調査を行えたりと「攻めのQA」ができるようになりました。結果としてプロダクトの品質の向上することができた1年だったと思います。勿論反省点の方が多い1年でした...!!

おわりに

QAチームの立ち上げについてまとめてみました。改めて振り返ってみるとすごく当たり前のことをただしているだけなんですが、当時は色々考えながらやってたなぁと懐かしくなりました。

テスト自動化の目的は品質向上(効率化やデグレ防止など)であり、工数削減のためにやるのではないということを忘れずに、来年も「攻めのQA」ができるようにしていきたい思います。

We're Hiring

207株式会社では、一緒にレガシーな物流業界の変革に挑む仲間を大絶賛募集中です!

もし少しでもご興味がありましたら、以下のnotionをご覧ください!

 

www.notion.so

 

 副業からの関わりも大歓迎なので、少しでもこの記事が琴線に触れた方はぜひお気軽にお声掛けいただけると嬉しいです。一緒に「いつでもどこでもモノがトドク」をつくりましょう!!