Customer Stories
badge

改修内容をAIが検知して、テストを自動修正。Autify導入でメンテナンスから解放

CREグループリーダー 衛藤 勇次氏

single page image
Company
コインチェック株式会社
https://coincheck.com/ja/
Industry
FinTech, BtoC
Publish Date
Oct 28, 2021

コインチェック株式会社が取り組む品質保証の業務改善とは?

2009年から取引されている仮想通貨ビットコインは、その値動きの激しさから投資・投機などで世界的にも注目を集めた。2021年6月には、中米エルサルバドルがビットコインを法定通貨とする法案を可決するなど、現在まで話題に事欠かない存在だ。

マネックスグループ傘下で、ビットコインを主要とした仮想通貨取引サービス『Coincheck』を提供しているのがコインチェック株式会社。

2012年8月までは、人生のストーリーを投稿するサービス『STORYS.JP』を提供していた同社(旧社名:レジュプレス株式会社)は、2014年8月から仮想通貨交換業に参入し、『Coincheck』の提供を開始し、現在は、アプリダウンロード数「国内No.1※、ユーザー数284万以上を有するサービスへと成長している。

同社で、顧客リレーションのための開発や社内の業務改善をミッションに、CREグループリーダーの衛藤 勇次さん(以下、衛藤さん)に、E2Eテスト自動化へのプロセスや、Autify導入の効果について話を聞いた。

※対象:国内の暗号資産取引アプリ期間:2021年1月〜2021年6月 データ協力:App Tweak, 2021年6月末時点

エンジニアがコードを書き、メンバーが片手間にテストする体制を変えたい

― まず最初に、衛藤さんとCoincheckのご紹介をお願いします。

衛藤さん: コインチェック株式会社は、仮想通貨取引サービス『Coincheck』を手がけている会社です。『Coincheck』はシンプルで使いやすいデザインを強みに、主に若年層から支持されてきたサービスです。2020年からは新たに「Coincheck NFT (β版)」やバーチャル株主総会支援サービス「Sharaly(シェアリー)」などのサービスも提供しています。

私は、CRE(Customer Reliability Engineer)を担当しています。チームのミッションは顧客対応に加え、社内ツールを最適に使えるようにすることです。

― E2Eテストにどのような課題がありましたか?

衛藤さん: 弊社にはQA部門がないため、開発するたびに、エンジニアがテストシナリオを書き、カスタマーサポート部門や法務部門と協力して互いにテストを行ってきました。

私が入社した2018年12月、当初はE2Eテストを担当していましたが、どういうわけか「マネーロンダリング対策」のプロジェクトマネージャーとしてアサインされました。我々が「KYC」(Know your customer、顧客管理措置)と呼んでいる、お客様の本人確認の情報を取り込む機能を作っています。お客様の情報を詳しく取得して、より安全なサービスに改善するほか、疑わしい取引をモニタリングするシステムや、改正犯罪収益移転防止法に関わるシステムの改修にも取り組んできました。

その時のテストシナリオは、イチから作る必要がありました。AML(Anti-money laundering)対応をしていたとき作ったシナリオを、犯収法のテストにも機能拡張する形で構築しました。カスタマーサポート部門や、法務部門、エンジニアがみんな集まって、スプレッドシートに、職業、年齢、国籍などユーザー想定ごとにシナリオを作成し、ウェブとモバイルのテストを手動で行っていたんです。

QA部門が存在すればお任せできる部分もあると思いますが、エンジニアが普段の業務のなかで、テストを作り実行してきたので、残業時間も増えてしまいます。リグレッションテストをしっかり行うのは、時間的に難しいと感じました。そんな中、Autifyを見つけ、自動でテストできるようにしたいということで導入しました。

― リグレッションテストは結構大変そうですが、どのくらいの頻度でリリースされてるんですか?

衛藤さん: 大きめの案件だと、3カ月〜半年に1回くらいです。細かいリリースも1日に1回、多い時は1日に数回あります。その場合は差分の部分だけテストしているのですが、機能追加によるデグレは避けたいです。

差分を検知してシナリオを自動修正。メンテナンスコストが大幅削減

― Autify導入の決め手はなんですか?

衛藤さん: 前職で同僚だった、今は株式会社GA technologiesにいらっしゃる柿崎さんが、Autifyの導入事例をTwitterで紹介しているのを見たことかきっかけです。E2Eテストを自動化したいけど、Seleniumを使って自分でコードを書くのもハードルが高い。柿崎さんも言われているように「誰でも簡単にテストが作れる」という点が、導入の決め手になりました。

― Seleniumも検討されたんですか?

衛藤さん: 以前の会社でSeleniumを使っていたことがありますが、苦労しました(笑)。UIやスタイルシートの仕様が変わると、その都度コードを書き直す必要があり、メンテナンスが大変だったんです。その点でAutifyの場合は、ちょっとUIが変わると「ここが変わりましたね」と差分が画面に表示され、シナリオを自動で修正してくれる。そういうところが本当に便利だなと思います。

― 実際にAutify導入を決めてからの課題や、どのように運用に乗せていったかを教えてください。

衛藤さん: 弊社のサービスでは、セキュリティを高く設定しているので、ログインの際にいきなり二段階認証で躓くことがあります。TOTP(Time-based One-Time Password)なりSMSでログインする必要がありまして、僕はこの本人確認のフローで、テストを作りたかったんです。

前段階で躓いてしまったためやむを得ず、テスト環境だけは、そこをスキップするような処理を入れて回避しています。そこから先は、ただシナリオを追加していくだけになるので、とくに問題はありませんでした。

― 実はワンタイムパスワードをジェネレートするエンドポイントを作ったんです。それを活用いただければテストできるかもしれないですね。

衛藤さん: それがあるとありがたいです。スクレイピングした時にTOTPで、シークレットキーの値を入力できればいいので。AutifyもJSを入れることはできますが、どうすればいいのかなと思っていました。

― エンドツーエンドテストにはこのような躓きポイントが共通してありますね。ワンタイムパスワードや二段階認証も、Autifyで解決できるようにしたいなと思います。メール認証はAutifyでできるようにしました。

衛藤さん: 弊社のサービスはなにかとメール認証を挟むので大変助かります。自分で検証はしますが、まだシナリオに組み込めてはいません。これから、そこも追加したいなと思っています。

― 衛藤さんが主導されて、導入を進めていったのですか?

衛藤さん: はい。当時のチームメンバーは3名だったので、その3名で本人確認システム回りのテストを追加するべくチームでシナリオ作成に取り組みました。それから週1回、定期的にテスト実行しています。検証環境を作ったあと、テストを自分で行うのも大変で、そこはURLの向き先を変えて、Autifyでとりあえずテストしてもらうという選択もあります。疎通確認をAutifyでできるのはラクでいいですね。

― 検証環境を作ることは頻繁にあるんですか?

衛藤さん: 週1の時もあれば、月1回ぐらいの時もあります。開発部門だけであれば、自分たちでローカルでテストすればいいんですけど、法務部門やカスタマーサポート部門にもテストしてもらいたい時は、検証環境を構築しています。

カスタマーサポート部門でOKでも、法務部門でNG、またはその逆のケースもあります。法令的に問題がないかどうか確認が必要な案件は、必ず法務部に見てもらっています。こういうところはこの業界ならではかもしれないですね。

明日の安眠を得るために、テストに向き合う

― 導入・運用時点で工夫している点を教えてください。

衛藤さん: テストのステップグループを作って、共有できる部分は共有しているところです。定期実行することや、いろいろな環境でリグレッションテストをするのは、工夫と言うか、自分たちとしては使わせていただいてありがたいなと思う部分です。

— 運用で課題に感じているところはありますか?

衛藤さん: もう少し自分の時間を捻出して、細かいテストをどんどん追加していきたいと思っています。項目にタグをつけて管理するなどすればもっと円滑に環境を整備できるのではないかと考えていますが、現状はまだできていません。今はCREチームがテストしていますが、法務部門にも使ってもらえたらいいなと思います。

新しい案件が始まったりと、常に優先順位をつけなければならない中で、なかなかテストのほうの充実ができてこないことも課題です。開発に追われているので、できれば週に1度、時間を決めてテストに向き合うようにしたいです。明日の安眠を得るためにテストを作る。テストによって1分後の自分が助かっている可能性もあるので、やっぱりテストは重要だと思っています。

新しい案件のリグレッションテストをする時、Autifyのおかげで本当に助かっています。もっと自分以外にもどんどん使って欲しいです。

スプレットシートを睨む時間が減った

― 実際にAutifyを使う中でどのような変化や、効果がありましたか?

衛藤さん: 画面の途中に差し込みで違う画面が入ってくることがあるのですが、そのテストが本当に助かっています。本人確認の前段でも、何回か実は画面が変わっている。そこも、Autifyでテストを流せば「あれ?ここ違うよね」というメッセージが出てるので、それに対してシナリオを変えることができます。

メンテナンスにかかるコストもだいぶ下がりました。ステップとステップの間にちゃんと新しいステップを差し込めるようになっているので、テストの修正がとてもラクです。視覚的にわかりやすい画面で、ポチポチやってテストを作り直せるというのは非常にラクだと思っています。

また、マイナーチェンジするたびに、テストを書き換える作業がなくなり、test specificationsスプレッドシートを睨む時間が減りました。これはつまり、平穏でいられる時間がだいぶ保たれているということ。人間が忘れがちなテストも、登録したものはAutifyが忘れずに動いてくれるのでラクですね。

新しい派生のテストが必要になったときは、Autifyのテストを複製して新しいシナリオを作れる。そういう部分もラクになっていると思います。

管理画面のほうのテストがまだ残っているのですが、こちらもAutifyに追加すれば、いよいよ人のテストが要らなくなるような気がするので。マニュアルで人間が見ないといけない部分はあるにせよ、基本的な部分は、全部自動で任せられる。テストデータの作り方も変えつつ、テストを根本的に見直したいと思っています。

― テストデータがうまく整備できると、もっとカバレッジが広げられそうですね。最終的に目指したいAutifyでのテスト自動化はどのくらいでしょうか。

衛藤さん: データを作るところから始めれば、かなりカバーできる気がします。本人確認システムだったら100%に近づけられるのではないかと。いろいろなユーザーのデータを初期投入して、投入し終わったら、APIでAutifyのシナリオを叩いてテストを回して。入力が終わったら、管理画面側のテストをまた走らせて、とすれば、カバーできるんじゃないかなと思います。

自動テストできている/できていないは、心もちがだいぶ違います。翌日もストレスをためずに起きられるのですが、さらによく眠れるようにはなりたい気持ちはあります。

また、テストに係る業務のオペレーションも効率化できていますね。新しいメンバーが入る時に「こういうテストしないといけないんだよ」と教えるより、「こういうシナリオで今テストを流しているんだよ」と伝えられる。URLとAutifyのアカウント情報を伝えるだけで、各自のブラウザでステップ実行を動かせるから、シナリオのステップを全部自動でスクリーンショット撮ってくれているのは本当にありがたいです。すぐに人に説明できますし、それを見れば説明するまでもなくマニュアル代わりにもなりますね。仮にバグが起きた時も結果のURLだけ渡せば全て終了します。

― 今後の展望についてお聞かせください

衛藤さん: Autifyは画面をポチポチ押して、ただ遷移するだけで確実にテストが作れるので、とにかく、自分の時間を捻出して、テストを追加したいです。簡単なテストでも、どんどん足していくと、自分も他のメンバーも、新しく入社する人もみんなが助かると思います。

暗号資産の価格が上がったり下がったり、市場は活性化していますし、「NFT」(Non-fungible token、非代替性トークン)のニュースも話題です。新規顧客がつまづくことなく、本人確認などを完了できるように、UIを直して、直した部分をAutifyで自動テストして、品質を担保していきたいと思っています。

これから自動化する人へ向けて

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

衛藤さん: 簡単なシナリオをAutifyで作ってみて、テストが通る瞬間はとても気持ちがいいものです。そういう成功体験が増えていくと、どんどんテストを作ることができて自動化が進んでいきますよ。おすすめですし、自分でもどんどんやっていきたいです。

人がリグレッションテストをやると、なにかと抜け漏れがあります。体調悪い日にスプレッドシートを見ていると、もっと体調悪くなるんじゃないかとも思う(苦笑)。Autifyはそういうのをなくしていけると思います。

コインチェックを一緒に作りたい方を募集

― 御社からお知らせがあればぜひ。

衛藤さん: 弊社では今、いろいろな部門で人材を募集しています。暗号資産だけでも面白い業界ですが、そこに「NFT」が乗っかってきて、より熱い業界になってきたと思います。

どこの部門がいいか分からない場合、とりあえずオープンにカジュアル面談をさせていただきたいです。面談を通じて、我々の楽しさも苦しさもお伝えして、それでも一緒にやっていきたいと思っていただき、ご縁のある方がいれば採用したいと思っています。よろしくお願いします。

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

導入事例

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

デモを申し込む
company illustration