Customer Stories
badge

テスト頻度を高めて品質を守り続けるZOZOテクノロジーズ。Seleniumから「Autify」に移行して実現したクロスブラウザテストの威力とは

ZOZOテクノロジーズ CTO室 月岡 誠治 氏・BtoB SRE 重永 弘 氏・BtoB SRE 田村 誠基 氏

single page image
Company
株式会社ZOZOテクノロジーズ
https://corp.zozo.com/
Industry
Eコマース
Publish Date
Nov 5, 2020

日本最大級のファッション通販サイト「ZOZOTOWN」—そのサービス運用・技術開発を担うのが、株式会社ZOZOテクノロジーズ(以下、ZOZOテクノロジーズ)だ。

「70億人のファッションを技術の力で変えていく」を理念に掲げるZOZOテクノロジーズには、ZOZOグループに所属するエンジニア・デザイナー・アナリストなどの技術者が集結。社員数は400名のうちエンジニアは300名を超える。

実店舗が一時休業や閉鎖に追い込まれるなど、新型コロナの影響が続くアパレル業界において、ECサイトのニーズは高まり、同時に利便性も求められている。より良いサービスを提供するために奮闘する技術者たちは、どんなジレンマを抱えているのだろう。

今回、ZOZOテクノロジーズでシステム部門を担う、CTO室 月岡 誠治さん (写真、中央) 、BtoB SRE 重永 弘さん (写真、右) 、BtoB SRE 田村 誠基さん (写真、左) に、ECサイト運用の課題や、テスト自動化プラットフォーム「Autify」導入による成果について話を聞いた。

「コードを書かない人でも自動化できる」を実現したい

— 皆さんがご担当されている業務内容についても教えてください。

月岡さん僕らはもともと株式会社アラタナという会社に所属していたのですが、2020年4月にZOZOテクノロジーズと合併しまして、現在はシステム部門を担っています。

私はCTO室に所属しながら、BtoBのSRE(Site Reliability Engineering)チームのチームリーダーも兼務しています。CTO室では主に、全社における技術戦略や、エンジニア組織の最適化などに取り組んでいます。そしてBtoB SREでは現在、自社EC支援としてインフラや運用系、テストの仕組化や最適化を進めているところです。

重永さん私はBtoB SREに所属しておりまして、テストの自動化を含め、運用面や品質面に注力しています。

田村さん私もBtoBのSREに所属しており、自社ECの運用保守を主な業務としています。例えば自社ECとかにエラーが立った場合、調査や改善に向けた運用を行っています。内製ツールとして、自動テストを作ることで品質を高めることにも取り組んでいます。

— ありがとうございます。Autifyを導入される前に抱えていた課題について教えてください。

月岡さん各アパレルブランドの自社ECの支援や開発運用を担っているのですが、開発後にテスト、リリース後にテストなど、必要なプロセスがいくつかあります。テストに関しては、手動の部分ももちろんありますが、テストフレームワークとしてはSeleniumを使って、内製で運用していました。

すると、プログラムの改修が入るたびに、Seleniumも同様に手直しが必要になります。Seleniumの稼働環境のサーバー保守だったりを含め、管理運用コストがかなりかかるうえ、それを行う人が限定されてしまいます。つまり、属人的なテスト環境下になっていることが大きな課題で、どうにか解決したいと常々考えていました。

田村さん私が社内サーバーにテスト環境を置き、シナリオを作って、ほかのメンバーに共有してお願いするという動きはもちろんありました。

ですが、結局共有に時間がかかり、誰も続かない、間に合わない…。結局自分一人でやることになってしまっていました。

主にLinuxのChromeで動かしていて、サービスの特性上クロスブラウザでの自動化も実装できたらと思っていましたが、それに取り組むには時間もリソースも足りない、といった状況でした。

— コードは書かないQA(Quality Assurance=品質保証)も自動化ができるようツールを開発されてたと聞いていますが詳しく教えてください。

田村さんSelenium WebDriverを使っていたんですけれど、プログラム言語を覚えなければなりません。誰でも書きやすくするために、プログラム言語ではなく、Excelでコマンドを書いて取り込んだ設定ファイルでSeleniumを動かすという改修をしました。

「コードを書かない人でも自動化できる」を実現することで共有にも繋がると考え、ベースは作ってみたのですが、運用はまだ回っていない状態でした。

Autifyを使ったテスト自動化をグループ内で横展開

— それからAutifyを導入してくださったということですが、導入までのプロセスを教えていただけますか。

月岡さんまずはAutifyを理解するために、「SeleniumでできていることがAutifyで再現できるのか」について検証を始めました。抱えていた課題がAutifyでは解決できるのかについても評価軸としては大きかった。現場の開発メンバーにも「こういうツールがある」と共有する場を設けました。

— Seleniumで行っていたことがAutifyで代替できるかについて、実際の検証結果はいかがでしたか?

田村さんSeleniumで動かしていた時のシナリオをそのままAutifyで同じようにできるか、レコーディングしてテストしました。結果は、全く問題なく動作できたので「いけるな」って思いました。

月岡さん:先ほどお伝えした課題のひとつ「属人的」については、田村くんがSeleniumを職人的にやっていたため、そこは改善したいと思っていました。非エンジニアのメンバーでもGUI(Graphical User Interface)上でシナリオを作って実施することが、もっと簡単にできて実運用できる状態を作りたかった。その点が、僕らが抱えていた課題とAutifyでできることが、うまくマッチングしたと思っています。

— ありがとうございます。今は、普段コードを書かない人にも使ってもらえる運用まで進んでいるのでしょうか?

月岡さん本番運用を始めたのはここ最近というのもあり、まだこれからかなと思っているのですが、実はAutifyを使った運用をグループ内で横展開していく流れがあります。

自社EC支援やFBZ(Fulfillment by ZOZO)に関与するECサイトだけではなく、ZOZOTOWNやファッションコーディネートアプリ「WEAR」など。チームが違っても、抱えている課題は同じだったりしますので、一旦僕らが解決できたことは、効率よく再利用していくのがいいと思っています。

1時間に1回、1日1回の定点観測で品質を守る

— 導入後に気になることはなかったですか?

月岡さん本番導入において、一部パフォーマンスの面で気になる点がありました。ZOZOTOWNチームのほうからもいくつかフィードバックがあったので、Autifyのカスタマーサクセスエンジニアチームと連携して「並列実行」のオプションを追加させていただくことで今は解消できています。

ある環境下において、テストの時間が2時間所要しているところがあったんですが、並列実行を活用したら80%くらい改善できました。効果はかなり大きかったです。

— よかったです。我々としても、パフォーマンスの向上は今後もずっと改善し続けていくポイントです。ECサイトならではの運用時の工夫などはありますか?

月岡さん商品をカートに入れる、会員登録をする、購入する、キャンセルができる、など、ECサイトとして一連のルーチン的な処理プロセスがあります。それがちゃんと動いているかを定点観測的に監視して、品質を保っています。

cronによるテストを、スケジューリングできる点はかなりありがたいです。

— Autifyの定期実行のスケジューリング機能ですよね?どのくらいの頻度で回されているんですか?

月岡さん今は1時間に1回です。ですからテストは「処理時間内にちゃんと収める」というのが重要で、先ほどの「並列実行」 がキーになっています。

重永さんシナリオは大きく分けると、本番環境で使うものと、開発環境で使うもので分かれていて、それぞれチェックする項目が少しずつ違います。開発環境で使うものを1時間ごとに回しています。

本番環境では、コンバージョンなどの問題が出てきますので、そんなに回数を増やすことができません。そのため、1日1回、本番環境にソースが反映されるタイミングに実行するようにしています。

各ECサイトにおいては、いろんなカスタマイズがあるので。そのカスタマイズによって、フロントの表示の仕方とか、アクションが変わってきます。デグレが発生していないかを確認するために、基本的なシナリオが今までどおり正常に動くかというところに注意して、自動テストを流しています。

月岡さんプログラムの改修後に、思わぬところで予期せぬエラーが発生することもゼロではありません。極端な話、カートではないところを改修したのに、なぜかカートに影響しちゃうといった不具合が起こることも。

ある程度のシナリオを網羅的に流せると、ECサイトとしてきちんと機能してるという動作保証も兼ねているイメージに近いかもしれないですね。

— 確かに。規模の大きいサービスだと、短時間でもカートに不具合が出ると大きな損失になってしまう。テストの頻度をあげ、要求する時間内に完了させられるということは、非常に重要になりそうです。Autifyでもその辺のニーズもどんどん汲み取って、鋭意改善を続けています。ご要望をどしどしお寄せいただけたらと思います。

24/365で稼働できる基盤とテスターを採用できた

— Autify導入後は、どんな成果がありましたか?

月岡さんサービスを大きくスケールさせるためには、仕組み化や自動化がマストだと考えています。「属人化」やサーバーの環境のメンテナンス、プログラム改修時の問題点はAutifyを使うことによって改善されました。24時間365日、稼働できるテスト基盤とテスターを採用できたと僕は思ってます(笑)。

— それはまさしく我々が目指しているところです。人では24時間365日、毎時間テストというのはなかなか難しいですからね。

月岡さんそうなんですよ。サーバーのメンテナンスレスでかつ稼働できるテスターさんをうまく採用できた状態になっていて、費用対効果も高いと言えます。

田村さんブログ記事にも書いたのですが、例えばiOS 13、12など、特定のOSバージョンで確認できるのがいいですよね。Chrome 80のアップデートでcookieのデフォルト仕様が変更されるというのがあり、改修内容によってはiOS 12のSafariに影響が出ることがわかりました。その改修をしたときに、iOS 12のSafariでも正常に動かせるかをAutifyでパパッと確認できました。

仮にAutify導入前だったら、iOS 12のiPhoneの実機を用意して、手動でポチポチ、テストして確認していくという作業が発生します。Autifyならダッシュボード上でポチッて押せば確認できるというのが、格段にラクになりましたね。複数のブラウザ、クロスブラウザでのテストが簡単にできるのが、Autify最大の利点なのかなと思います。

重永さんつい最近、本格的にテストのスケジューリングを組んで実行したところ、Autifyのおかげでバグを見つけられて、すでに解決済みです。有効に活用できているように思います。

月岡さん技術的な観点でサポートしていただける点も大きいですね。自分たちで構築していたら、調査だけで数時間、場合によっては数日かかるようなこともAutifyに任せられます。

それから、ダッシュボード上のチャット機能でカジュアルに問い合わせしても、即レスしていただけるのは助かっています。通常のサポートだと、テンプレートみたいな回答になりがちですが、Autifyの場合、弊社が実現したいことに寄り添った適切なアドバイスをしてもらえるので安心できます。

環境構築が不要で、低コスト。利便性を体験してみて

— これからテスト自動化に取り組む方々へメッセージをいただけますか?

田村さんテスト自動化は、今だとSelenium IDEとかCypressでできなくはないですが、実行環境を構築したり実機を用意したりといろいろなコストがかかってしまいます。その点、Autifyだったら環境構築する必要もないですし、Selenium IDEのように簡単にレコーディングができるので、利便性の高いサービスだと思います。

重永さん私も以前はSeleniumを使っていました。ブラウザのバージョンが上がるとドライバがマッチしないなど、大変苦労した記憶があって……。Autifyだと、簡単にシナリオが作れて、実行もドライバ更新も不要なので、すぐに完結できます。

月岡さん我々は実際にAutifyを使って24/365で自動テストできるようになりラクになりました。やっぱりツールは触ってみないと分からないですよね。Autifyは2週間無料トライアルを提供しているとのことですし、とりあえず一度試してみるというのが重要なんじゃないかなと思います。

— ありがとうございます。ZOZOテクノロジーズさんは、採用の取り組みが話題になっていますよね。エンジニアを積極的に採用中とのこと。

月岡さんオフィスのオンライン化も進んでいますが、採用イベントなどもオンライン化して、「SpatialChat(スペチャ)」やバーチャルSNS「cluster(クラスター)」などのツールを使ってアプローチしていますね。コロナの影響で、実際にオフィス訪問などが難しいので、cluster上でオフィスを再現。会社説明などを行っています。

現在、ZOZOTOWNという巨大なプラットフォームをリプレイスする大きなプロジェクトが走っていて、創意工夫しながらプロジェクトを進めています。こういうプロジェクトに関与できる機会ってなかなかないと思います。技術の面でも楽しめますし、一緒に働いているメンバーもいい人ばかり。会社もプロダクトも技術者も一緒に成長していきたいなと思っています。

もしご興味ある方は、ZOZOテクノロジーズのコーポレイトサイトにアクセスしていただいて、エントリーしてもらえると嬉しいです。ぜひ一緒に、世の中に付加価値を提供していきましょう。

導入事例

Autifyのデモをご希望ですか。 こちらのフォームよりご連絡ください。

デモを申し込む
company illustration