メルペイに所属するエンジニアが集い、それぞれの視点から技術的な知識やノウハウを共有するmerpay Tech Talk。2021年9月15日には、メルペイのQAエンジニアたちによる「merpay QA Tech Talk 〜メルペイQAのリアル vol. 1〜」を開催しました。
「全員品質」というミッションを掲げ、日々業務に取り組むQAエンジニアたちの本音に迫ります。
アーカイブはこちら! https://youtu.be/X6Z1Nyyh3PY
私たちがメルペイQAです!
@Gaku:実はメルペイというプロダクトはマイクロサービスの集合体で、各チームによってQAの考え方は異なります。今回のイベントでは、メルペイ各チームの仕事の進め方、考え方の違いなどを聞いていきます。まずは各メンバーの業務内容を自己紹介がてらお願いします!
@nakayama:私は大学卒業後、Web開発やQAの経験を経て、2018年にメルペイへ入社しました。現在は、スマート払いなどの機能を担当するチームでQAをメインに、UIやバックエンドなども担当しています。
@kim:自分は10年間ソフトウェアエンジニア、QAエンジニアとして働いて、2019年にメルペイへジョインしました。現在はお金の動きやポイント残高のデータ管理をする決済基盤を担当しています。エンジニアは13名なのに対して、QAは僕1名。今日は、エンジニア13名の組織でQA1名がどう働いているのかをお話ししたいと思います。
@satomasa:僕は第三者検証会社でさまざまなQAを経験したのち、メルペイへジョインしました。現在は社内向け管理画面を開発するチームでQAを担当しています。具体的には、メルペイを利用する加盟店さまを管理する機能を持つツールのQAです。社内向けの機能なのであまり馴染みがないかもしれませんが、そのあたりもお話しさせてください。
@Genki:僕も第三者検証会社から2018年にメルペイへジョインしました。QA歴は10年以上になります。現在担当しているのは、アンチマネーロンダリングの不正を検知するシステム「AML」と、本人情報などを扱うシステム「KYC」、あとは加盟店さまが売上金を入金する際に計算する「セトルメント」などを担当しています。いずれも、お客さまの目に触れることのない裏側のシステムです。最近はメルコインも兼任しています。
チームによって異なる、QAの業務内容と立ち位置
@Gaku:続いて、それぞれのチームにおけるQAの特徴について話していきます。ひと括りに”メルペイのQA”と言っても、品質保証の考え方やQAのやり方が違うと思うので…まずは@kimさんのチームからお願いします。今、ペイメントプラットフォームというメルペイのコア機能を担当していますよね。
@kim:先ほどお伝えした通り、今はQA1人なんです。いかにして1人でスケジュールを守ってリリースまで持っていくか。答えは「自動化」です。自分がジョインしてから自動化に力を入れてきて、リグレッションテストだけのリリースなどはある程度できるようになりました。あと、エンジニアの存在は大きいですね。QAのナレッジを有している人が多いので、学べることも多い。作成したテストケースを、エンジニアにレビューしてもらい、漏れをチェックすることもできます。それが1人でもきちんとカバーできている秘訣です。それに1人だと、ガチガチのプロセスはないんですよね。柔軟に対応できる点も特徴だと思います。
@Gaku:QAをするうえで、気をつけていることはありますか?
@kim:しいて挙げるなら、「マイクロサービス間の情報共有」ですね。テストで不具合に気付いても、自分が担当しているサービス以外に原因があると、究明に若干労力を費やしてしまうことがあります。そうならないよう、週に1回QAだけではなくビジネスパートナーさんも含めた定例会を開き、各自が実施していることを情報共有しています。
@Gaku:@nakayamaさんは、フロントエンドもバックエンドも担当していると話していましたよね。どのような点が難しいのでしょうか?
@nakayama:一番苦労しているのは、時間によって挙動や表示が変わる点ですね。時間帯によって見られないQAが多発しているので、開発者に協力してもらいながらツールを使うなどの工夫をしています。スピードと品質を担保することが重要なので、バックエンドから順次テストしていったり、UIができたところからフロントのテストを進めていったり。
@Gaku:ちなみに、チームの規模はどのくらいですか?
@nakayama:いろいろなマイクロサービスのプロジェクトが同時並行で走っているので一概には言えないのですが、QAだけで20名以上所属していますね。かなり巨大なチームだと思います。
@Gaku:コミュニケーションで課題は感じていませんか?
@nakayama:すごく難しいですね(笑)。ただ、各チーム内で小チーム単位に分かれているので、その中でフォローしたり、1on1をしたりして、コミュニケーションを図っています。プライベートな話題や雑談を通じた関係性づくりができるよう、ティータイムのような時間も設けていますよ。
@Gaku:リモートが主流だからこそ、意識的に雑談の機会を設けないとコミュニケーションの活性化にはつながらないのかもしれませんね。続いて、@satomasaさんに聞いてみましょう。加盟店さまが使う機能だからこそ気をつけていること、QAとしての考え方などがあったら教えてください。
@satomasa:僕自身「テスト実施中に発見される不具合は少なくしたい」と思っていて。そのために仕様検討段階からQAが入ってフィードバックするようにしています。あとは特に力を入れているのが、2つ。1つは、テスト設計の部分です。テスト設計の精度が高ければ、QA中に見つかる不具合が減らせるはずなので。テスト設計のタイミングで気づきがあれば開発側にフィードバックして、不具合の発生を未然に防ぐようにしています。もう1つは、リグレッションテストの自動化です。最近、いいワークフローが回るようになって手応えを感じています。
@Gaku:リグレッションテストの自動化で、どのくらいの工数が削減できたんですか?
@satomasa:僕の担当しているサービスだと、リリース前のリグレッションテストにだいたい半日くらいかかってたんですけど、今はSlackのコマンドで実行できるので、その半日分の工数が削減されましたね。
@Gaku:ほぼ毎週リリースしているので、半日分の工数削減は大きいですね。自動化自体はエンジニアにお願いしているんですか?
@satomasa:以前はテストコードをフロントエンドエンジニアの方にお願いしていました。現在は僕がテストケースをつくって、テストコードも実装して、レビューだけフロントエンドエンジニアの方にやってもらっています。
@Gaku:いい流れですね。最終的にQAエンジニアがテストコードまで書けるようにしていきたいですね。一方で@Genkiさんはパートナー企業さんに協力してもらう機会が多いと思うのですが、気をつけていることは?
@Genki:特別なことはしていません。ゴールを共有して、お願いしたいこと、期待していることをきちんとすり合わせることで、認識の齟齬が起きないようにしています。
@Gaku:へえ〜。ただ、すごくチームビルディングが上手な印象を受けるんですよね。何か意識していることはありますか?
@Genki:必要最低限のコミュニケーションはとるようにはしていますね。自分はそこまでマメなタイプではないので(笑)。あとは、人によって接し方、伝え方は工夫しています。「この人は大枠の情報でお願いしても大丈夫だな」「この人はもう少し細分化して伝えて、途中の段階にも声をかけないとダメだな」とか。「なるべく負担がかからないように、かつスムーズに進められるように」という点は意識しているかもしれませんね。
メルペイQAの魅力は「チャレンジの多さ」「評価制度の明文化」
@Gaku:テーマを変えましょう。メルペイでQAとして働く中でよかった点があったら教えてください。
@kim:正直、山ほどあるんですよね。いや、社交辞令ではなく(笑)。まずは、仲間ですね。すごく働きやすい環境なんですが、そのうえで仲間の存在は大きいです。なんなら面接のときから魅力的に感じていましたね。メルペイは採用時にスキルだけではなく、ミッションやバリューに共感することを大切にしています。自ずと同じゴールを目指している仲間と働くことになるので、議論は建設的になるし、人間関係でストレスが溜まることはほぼゼロ。
それ以外だと、英語学習できる点です。ちょうど自分は何年か前から英語ができるようになりたいと思っていて。まだメルペイのQAチームは英語必須ではないので、プレッシャーを感じることなく勉強できる。しかも、社内の英語学習プロジェクトや外部の英会話サービスなども利用できるので、すごくありがたいです。
@Gaku:ありがとうございます(笑)。@nakayamaさんはいかがですか?
@nakayama:私もたくさんあるんですが、まずはチャレンジできる機会がいろいろなところに散らばっている点ですね。私が「これやってみたい」「こういうツールを導入したい」と手を挙げて企画書をつくると、「じゃあやってみましょう」となれる。世の中には提案してもチャンスに巡り合えない環境も少なくないので、責任を持ってチャレンジできる点は魅力的です。チャレンジに溢れているから、プロジェクトが一息ついてふと立ち止まったときにすごく成長を感じられるんですよね。
@Gaku:確かにチャレンジしすぎる環境ですよね(笑)。もしかしたらチャレンジ疲れしている人もいるかもしれないけれど、すごく魅力的だと思っています。これからもチャレンジは続けていきたいですね。続いて、@satomasaさんはいかがですか?
@satomasa:個人的にはだいぶスキルアップできたと思います。入社前はAPIテストやテスト自動化などの経験がなかったんですが、今ではだいぶできるようになったので。あとは、プレイヤーとしてもきちんと評価してもらえる点ですね。僕自身、自ら設計したりテスト実装したりすることが好きなので、自分のスタイルを認めてもらえるのはありがたいです。
@Gaku:普通だったら会社都合で評価軸を固定してしまうところを、本人のWillを聞いたうえで仕事に取り組めるのは魅力的ですよね。僕自身もメルペイに入社してからいろいろなことを学べました。最後に、@Genkiさんお願いします。
@Genki:生々しい話をすると、前職より給料が上がったのは非常に良かったです(笑)。
(一同笑)
@Genki:もう少しマジメな話につなげると、評価制度が明文化されているという点ですよね。これまでは目標を立てて、達成しても給料が上がらないことは多かったんですが、メルペイの場合「あなたにはこういうことを求めているから、ここまでのことをやってください」「今回はそれに対してこういう評価だから、お給料はこれくらいです」が明らか。@Gakuさんのおかげでもあると思うんですが、非常にいいと思います。
@Gaku:そう言ってもらえるとすごくうれしいです(笑)。マネージャーという役割を任されている以上、みんながやりたいことができる環境と、達成したときの評価はきちんとしたいと思っていますので。今後も高いハードルを設定して、みんなで越えていきましょう(笑)。
@kim:ちなみに、@Gakuさんはどうですか(笑)?
@Gaku:そうですね…やはり、自分がやりたいことができる環境でしょうか。メルペイに入社した当初、メルペイQAを立ち上げてきたメンバーが創ってきた文化や、考えていること、やりたいことを文書化してメルペイQAとしての方針や、ゴールを設定するところからスタートしたのですが、指針になったのはQAメンバーの“やりたいこと”なんですよね。しかも、QAメンバーの一人ひとりのスキルが高く、品質に対する考えも持っていたので、全員で向かうゴールを設定すればGo boldに進めて行けるイメージでした。「全員品質」という、プロダクトに関わるメンバー全員で継続的に品質を高めていくメルペイQAの方針となるキーメッセージも自然に作られていったのを覚えています。VPoEの@hidekさんからも「どんどんやりなさい」と言われていますし。「NO」と言われることのない環境なので、すごく居心地いいです。
QAチームの課題、そして目標
@Gaku:では、続いて今後の目標やチームの改善点について聞いていきたいと思います。最近オフサイトでお話しした「こんなQA組織をつくりたい」という内容を踏まえて聞かせてもらいたいです。大きな枠組みとして、「海外に拠点をつくる」や「D&Iをもっと推進する」「自動化」「QAポリシー」といったキーワードが出ましたよね。
@satomasa:今明らかにバックエンド側のテスト自動化ができていないので、着手していきたいと思っています。あと、個人的には英語ですね。@kimさんぜひいろいろ教えてください(笑)。
@Gaku:まさにD&Iですよね。多様性のある組織には個人のスキルも必要なので、両軸で取り組んでいきたいですね。@kimさんはどうですか?
@kim:自分のチームでやりたいことはたくさんあるんですが、今自分が注力したいことは今までやってきた自動化のノウハウを他のチームに展開することです。@satomasaさんの話にもつながりますが、各チームでバックエンドの自動化が進めば、不具合が発生してもすぐに調査できるようになるので。今はコミュニケーションでカバーしている部分を機械化していきたいですね。多分自分1人の力ではできないので、興味のある方にはぜひ力を貸してほしいですね。
@Gaku:ホント、切実ですよね(笑)!「我こそは」という方は、ぜひご応募ください。続いて、@nakayamaさんお願いします。
@nakayama:20名以上QAが所属しているチームなので、みんなでひとつの方向を目指していくことは結構難しいんですが、私個人としては毎日のメンテナンスなどを自動化してバグを発見できるような仕組みをつくっていきたいと思います。バックエンド周りを、よりスピーディーに回していきたい。改善点としては、チームでマイクロサービスを2〜3つ担当するので、連携部分をQAする際の協力体制や方針などを決めたいですね。
@Gaku:QAのスピードを上げていくためには、自動化はもはや必須ですね。続いて、@Genkiさんはいかがでしょう?
@Genki:チーム内での自動化のツールを統一したいですね。経験上、社内のarchitectチームが提供しているテストツール「Scenarigo」で実装するのが一番効率的だと思うので。より効率的に自動化を進めていきたいと思います。そしていずれはパートナー企業さんも含めて、みんなが自動化テストを書けて、みんながメンテナンスできる組織にしていきたいですね。
@Gaku:ツールの話題が出たので、各チームで使用しているツールについても教えてもらえますか?
@kim:私のチームも「Scenarigo」を使って作成しています。
@satomasa:僕のところは「Cypress」というツールを使って、フロントエンドのリグレッションテストを自動化しています。「Cypress」は、フロントエンド側の開発側のテストでも使っているので、何かあったらすぐに聞ける。フロントエンドが書いたテストコードも参考にできるので、非常に便利だと思っています。
@Gaku:自動化すべきところと自動化しないほうがいいところは、どのように住み分けていますか?
@kim:各サービスの特性があるので、明確な基準があるわけではないんですよね。自分が所属しているチームはエンジニアとコミュニケーションを取りながら決めています。傾向として、バックエンドは自動化に向いているのでたくさんつくることはできますね。ただ、問題はメンテナンス。メンテナンスがきちんとできるのであれば、どんどん自動化しても問題ないと思います。
@Gaku:@satomasaさんのチームではいかがでしょう?フロントエンドでは、どのように自動化する箇所を決めていますか?
@satomasa:基本的にはリグレッションテストなので、最低限の機能確認的な意味合いのものを自動化しています。自動化しないほうがいいと思っているのは、複雑な手順が絡むところ。たとえばテストデータを準備するのにいくつもAPIを叩かなければいけないときは、テストが失敗する可能性が高くなるので、無理に自動化していないですね。
@Gaku:メンテナンス性が悪いと、自動テストを書いても使われなくなる可能性が高いので、そのあたりは意識しなければいけないですよね。@Genkiさんはいかがでしょう?
@Genki:基本的に一緒ですが、頻繁に更新がかからない機能に対して自動化してもあまり効果がないので、そのあたりは判断基準のひとつかもしれませんね。
メルペイQAメンバーの「こんな人と働きたい」
@Gaku:ありがとうございます。あっという間にお開きの時間なのですが、最後にチームが求める人物像について教えてください。
@kim:まずはメルペイのバリューとミッションに共感できる人。そして自分のチームという視点で考えると、APIの経験ですね。あとは、英語ができる人だと嬉しいです。
@Gaku:ミッションとバリューは、メルカリグループ全体で大事にしていますからね。ミッションとバリューへの共感、そしてプロダクトへの想いがないと、やっていけないかもしれませんね。@Genkiさんはいかがでしょう?
@Genki:月並みなんですけど、やる気がある人がいいですね(笑)。
(一同笑)
@Genki:もちろん即戦力であればありがたいのです。ただ、個人的にはバックエンドのテストや自動化の経験がなくても、QAとしての経験の積み重ねがあって、かつ「自分はバックエンドも覚えたい」という気持ちがある人なら、活躍できると思っています。
@Gaku:すごくわかります。常に変化している環境なので、新しい知識を習得する「やる気」は重要かもしれないですね。@nakayamaさんはどうですか?
@nakayama:私もどちらかというとマインドですね。チャレンジすることに興味があったり、変化を楽しめたりする方と一緒に働きたいと思います。そうなると、やっぱり「やる気」ですかね(笑)。やる気のある方と一緒なら私のモチベーションも上がるので。
@Gaku:最後に、@satomasaさんお願いします。
@satomasa:僕個人としては自分で手を動かすのが好きな人がいいですね。何かあったときに「じゃあ自分がやります!」みたいな人だと波長が合うような気がします。僕自身、まだまだ勉強中なので、一緒に教え合いながら成長していきたいと思います。
@Gaku:というわけで、長い時間お付き合いいただき、ありがとうございました。興味をお持ちいただけた方は、ぜひご応募してみてください。それでは失礼いたします。
p.s.
当イベントの二回目を、11/24 に開催します!
詳細はこちら: merpay QA Talk 〜メルペイQAのリアル vol. 2〜