Customer Stories

「自動化する時間がないのは、自動化していないから」スタートアップがテスト自動化に初期投資する理由とは?

代表取締役 福田 涼介 氏
Company
株式会社Appify Technologies
https://www.pa-consul.co.jp/
Industry
IT・ソフトウェア
Their Services
Appify
Autify’s Service
Autify NoCode Mobile
Size
200~499名
Purpase
リリースサイクル維持・短縮
Publish Date
March 26, 2021

ステイホームが続くなか、オンラインショップは暮らしに欠かせないライフラインになってきた。一人ひとりの異なるニーズに応える、D2Cビジネスも盛り上がりを見せ、多様化が進んでいる業界だ。『BASE』や『Shopify』といったECプラットフォームも充実し、利便性とデザイン性を兼ね備えたECサイトが個人でも簡単に作れるようになった。

人気の『BASE』や『Shopify』などで開設したオンラインショップの“公式アプリが作れるプラットフォーム”『Appify(アッピファイ)』が、この潮流をますます後押しする。Appifyはショップオーナーがアプリを月額1万円以下で作成・運用できるサブスクリプション型のサービスだ。

『Appify』を提供する株式会社Appify Technologiesの代表取締役 福田 涼介 氏に、現在取り組んでいる品質保証と、テスト自動化について聞いた。

(Appify Technologies, Inc. 代表取締役 福田 涼介 氏)

— まずは事業内容について教えてください。

福田さん: 弊社はBASEやShopifyなどのECプラットフォームを使ったECショップを持っているユーザー向けに、ショップの公式アプリを作成できるプラットフォームAppifyを提供しています。ノーコードで誰でも簡単に、レゴ感覚でアプリを作成できるのが特徴です。最近では、ECプラットフォームだけに限らずCAMPFIRE communityとの連携も発表させていただきました。

— 現在、Autifyを導入いただいています。以前は、どのような課題があったのでしょうか?

福田さん: 私たちの会社は3人のエンジニアで運営しています。Appifyは数多くのショップが利用しているので、バグを1度出してしまうととても厄介。APIのテストで問題がないことを保証するテストを行っていましたが、E2Eでも担保して、さらに品質を高めたいと考えていました。

最初は『Cypress』というテスティング・フレームワークを導入しようと動いていました。でもCI(継続的インテグレーション)にすごく時間がかかり、メンテナンスも大変。テストにおけるベストプラクティスを考える時間をとることができませんでした。そのときにAutifyを見つけて「これならいいんじゃない」と使い始めることになりました。

「ユーザーのビジネスに直結するからバグは出せない」という危機意識

— エンジニア3人の体制で、すでに品質に投資されているのが素晴らしいです。品質保証への意識は、最初からあったのでしょうか?

福田さん: サービスを使ってくださるショップでは、月間1000万円以上売上が出ているショップもあります。ちょっとしたバグが、大きな損害に繋がるという危機意識がもともとありました。なので品質に関して「可能な限りバグを出さない」というのを、最初から意識しています。

見た目や使いやすさは、最初から気にしていました。スタートアップでよく「β版を出すまでデザインはあまりこだわらないほうがいい」みたいな話があると思います。確かに「最小限で出す」というのは大事なことです。でもそれ以上に「最小限をいい状況で出す」ことが正しいと思っているので、デザインも作り込みました。

β版をリリースして半年くらい経ちますが、我々のサービスを利用して作成されたアプリ上で数億円もの売り上げが立っていて驚いています。それは、僕らが成長しているということではなく、使っているショップの方々の成長がすごいということ。

ショップオーナーさんの目線で言えば、顧客が100人いたとしたら、10人くらいコアなファンがいる。Appifyで作る公式アプリは、そのコアなファンの人たちにより良い購入体験を提供できるアプリであるべきです。だから大前提として使いやすくないと意味がないですし、サクサク動いてほしいといったニーズがあります。

外部連携のためのスクリプトも不要。スムーズな自動化が実現した

— 実際にAutifyをご導入いただくと決めてから、どのように導入を進めていったのでしょうか?

福田さん: もっともバグりやすそうな、登録フローのテストをまずは自動化しました。Appifyはアプリケーション全体で外部連携が絡みます。例えばユーザーがShopifyから来たら、Shopifyの登録ページに遷移するというように、登録フローがやや複雑です。そのため「BASEの登録フロー」、「Shopifyの登録フロー」、「CAMPFIRE Communityの登録フロー」に分けて、それぞれテストシナリオを組みました。

トラブルはとくになく、とてもスムーズでした。外部連携のフロー、例えばBASEのサインインといった手順もすべてAutifyで自動化できました。外部連携のためのスクリプトなどは一切入れていませんが、きちんと全画面を辿ることができています。

外部連携やバグが出やすいところは、Autifyでシナリオを組んでいますが、登録フローは2020年12月から2021年1月にかけて大きな変更があったため、Autifyでテストしながら開発を続けることができました。

稼働できるメンバーがまだ少ないので、あまり凝ったことができないですし、幅広く気を使うのも難しいです。ちょっとした仕様の変更が、想定していないバグを起こす可能性もあると思うのですが、それを防ぐためにAutifyでテストを自動化して今の開発の体制を作りました。

— まずは登録フローから自動化を始めたとのことですが、今後はどのように自動化を進めていく予定でしょうか?

福田さん: 最終的には全ページ自動化したいと思っています。ただ今のフェーズは、サービスの仕様変更も予定していて、すごく変化の多い時期なんです。ちゃんとテストを構築しても、次のリリースで大きく変わってしまいかねない。そういう理由もあり今、一気に全部を自動化する必要はないかなと思っています。

リソースが少ないとはいえ「登録フローくらいは設定できるかな」と思ってやってみる。すると「次はこっちもAutifyで設定してみようか」というマインドになっていく。作業をポチポチ積み重ねていくと、ちゃんとしたテストが出来上がっていきますよね。このマインドで仕様変更が落ち着いてきた部分から、徐々にE2Eテストを自動化して「エラーが出たら都度、修正していく」という運用に替えていこうと思っています。

— デプロイの前にテストを実行しているんですか?

福田さん: 現状は、コミットごとに都度テストを実行しています。コミットごとに回す問題点は、回数が増えてしまうこと。それを今後は変えようと考えていますが、基本的にはCIが稼働するタイミングで、毎回実行しています。

自動化したら、余計なことを考えず、思い切った変更ができるようになった

— 実際に導入してみてどうでしたか?

福田さん: 思いきった変更ができるようになりましたね。バグが出ているかどうかが動作確認をするまで判断できない状態だと、開発面でもやっぱり慎重になってしまい手を加えるコードの全体像を意識する必要がある。テストが落ちることで、バグっていることが判明するので、思いきって変更を加えてみて、テストが落ちているところを見直すというやり方ができるようになったのはいいですね。

たとえば「アーキテクチャを考えないといけないアーキテクチャは駄目だ」という話があります。何か機能を加える時、最初にやることがその機能を実装するためのアーキテクチャを考えることなのであれば、そのプロジェクトのアーキテクチャ自体が意味を成していないと言えます。エンジニアは機能開発に集中すべきであり、アーキテクチャを考えることに集中すべきではない、という話なんですね。

テストも同じで、テストをどう設計するかを考える必要がない状況が理想です。Autifyを使うことで、Autifyの制限内でどうやってテストを組むかだけ考えればいい。

自分たちでプログラムして自動化する場合、まずテストのフレームワークを作って、次にコードをどう書くか考えて、ようやく「何をテストするか?」と考えるものが、Autifyを使うと「何をテストするか?」から、いきなり入れる。

余計なことを考えず、慎重になりすぎず、進めることができるようになりました。どこが壊れているか分からないと、全パターン検証をしなければならなかったのですが、その必要がなくなった今はとてもラクです。

目指すは、専属のQAがいらない状態

— 今後どのように進化させていきたいか、展望をお聞かせください。

福田さん: Autifyのネイティブアプリのテスト対応に期待しています。Appifyの管理画面とCSツールはWebなのですが、それとは別にモバイルアプリを複数リリースしています。モバイルアプリのE2Eテストは現状あまりできていないので、そこもこれから自動化していきたいです。

もうひとつは、「QA専属がいない」という状況を目指したいです。もちろんQA(品質保証)の専任が必要な場面もありますが「専任者がいなくても大丈夫な状況」も実現できる気がするんです。

特にスタートアップでは、インフラエンジニアが必要ではなくなってきていますよね。それは、GoogleやAWS(Amazon Web Services)がどんどん進化して地ならししてくれているからこそだと思います。テスト自動化も同じようになるのではないかと個人的には思っています。

QAは、見た目と、動作的な品質があると思いますが、見た目のバグに関しては、人がやる必要はないんじゃないかと思っています。これまで見た目を重視してきた感覚がありますが、おそらく本当に重視すべきは、そこじゃないように感じています。

QAエンジニアが本当にQAしないといけないところは、APIのインターフェイスのように後から戻せない部分だと思います。ある企業では、APIのインターフェイスだけを専属にQAするチームがあり、そのチームがリリースの最終決定権を持っているそうです。QAがリジェクトしたら、どんな機能でも出せない。それくらいこだわる部分なのだと個人的には思います。そこに負債がなければ、どんな不具合も問題なく直せるはずなので。

— 最後に、これからテスト自動化に取り組む方へメッセージをお願いします。

福田さん: 僕がいつも思うのは「自動化する時間がないのは、自動化をしていないからだ」ということです。

テストの自動化は複利が効きます。自動化をしないことには、自動化をする時間さえ確保できないんですよね。そして、テストは1番面倒なところなので、テスト自動化に初期から投資したほうがいいと思います。これはすべてのソフトウェア開発において共通すると思っています。

(聞き手: オーティファイ株式会社、CEO & Co-Founder 近澤 良)