品質保証について語るときにメルペイQAエンジニアの語ること

こんにちは!メルペイのQA Engineerの@myajiriです。 この記事は Merpay Tech Openness Month 2021 12日目の記事です。

メルペイに入社するとPMやエンジニアはいくつかのオンボーディング(製品や業務理解のための研修)を受けますが、私はその中の一つ「QA(品質保証)ポリシー」というコンテンツを担当させていただいています。 今回はその中で話している内容を紹介したいと思います。

(入社したPMやエンジニア全員が「QA(品質保証)」について学ぶって、ちょっといい話だと思いませんか?)

「QAPolicy」を作った理由

品質保証の「信念」をプロダクト組織全体に浸透させたい!

メルペイはビジネスの拡大に伴い、プロジェクトや組織も目まぐるしく変化しています。 変化のサイクルの中ではルールやレギュレーションを定めても、適応する前に陳腐化してしまいがちです。 しかし「信念(ポリシー)」はプロジェクトや組織が変化しても大きく変わることはありません。

プロダクトまたはプロジェクトの中で、End to Endで品質にコミットするための「信念(ポリシー)」を浸透させることが一番の狙いだと考えています。

また後述しますが、最高のプロダクトを世に出すためにはQAエンジニアだけがテストを頑張れば良いということではありません。

メルペイの品質保証は「全員品質」

メルペイではプロダクト/プロジェクトのライフサイクルの中で、全ての役割が孤立することなくAll for Oneで常に連携している状態を目指しています。 QA teamではその状態を「全員品質」と呼んでいます。

「全員品質」とは?

QA Policyの中では「全員品質」を、

特定の工程(例:テスト)に依存せず、 「全プロセス(全員)」で信頼性の総和を向上させるアプローチ

と定義しています。 この考えはルッサーの法則がルーツになっています。 この法則は、ロベルト・ルッサーという第二次世界大戦中のドイツの航空エンジニアが提唱した、システムの信頼性に関する法則です。 例えば10個の部品からなる製品があったとして、それぞれの責任者が90%の品質で部品を作ったとします。 90%というとそこそこの信頼性と感じるかもしれませんが、この部品を10個組み立てて完成した製品の信頼性は35%と低いものになってしまいます。 つまり、各部品の品質は常にベストを目指すことが、プロダクト全体の信頼性を向上するために不可欠です。 各部品に関わる人「全員」がベストを尽くすことが「全員品質」の考え方です。

プロセスも品質保証の対象

そして製品そのものだけではなく、プロダクトの企画段階、プロジェクト計画、仕様を策定するフェーズ、リリースから運用…etc、場合によってはテストそのものも、あらゆるプロセスが品質保証活動の対象であると考えています。

リリースしよう。そのために「十分なテスト」をしよう

最高の製品をリリースするためにテストは欠かせませんが、何のためにテストするか、その目的は「お客さまにいち早く価値をお届けすること」です。 テストは大切ですが、門番のようにリリースを拒む存在になる必要はありません。 一方でメルペイのリリースするプロダクトは、お客さまの大切な財産を預かる重要な機能がたくさんあります。 ナーバスになる必要はありませんが、「目的」と「根拠」が明確な活動を積み重ねることが、リスクテイクとヘッジのバランスを判断するのに重要だと考えています。 プロジェクトや機能ごとに「何に重点を置くか」は様々ですが、その判断を行うに当たって基準になるマインドセットとしてPRISMAメソッドの「十分なテスト」の内容をシェアしています。

「テスト」ってなに?

さて、プロセスの中で「〇〇テスト」と名のつく工程はたくさんありますが、テストは「チェック」と「探索」を合せたものとし、別の活動として振る舞うことを勧めています。

  • チェック・・・要求や仕様通りに動作することを確認すること
  • 探索・・・動作するプロダクトに向き合って学習・探索すること

メルペイではQAエンジニアも開発者もテストコードを書き、テストを自動化することがあります。 これらは「プログラムが書いた通りに動くこと」「要求通りに動作すること」を効率良くチェックするのに適しています。 一方で探索的にテストすることは、実際に動作するプログラムを触りながら「こんなことをしても壊れないだろうか?」といったように、触りながら着想を得て、探索的に信頼性の確認をしていく手法です。 「さあテストしよう」と言った時、すでにエンジニアとQAの協業が発生している状態が、コンポーネントの品質を最大化する上でも重要と考えています。

「十分なテスト」

  1. 重大インシデントを引き起こす欠陥がないこと
  2. 現在の状態で十分に価値を出せること
  3. プロダクトの価値が残存リスクを上回ること
  4. リリースするメリットが遅らせるメリットを上回ること

おわりに

ここまでメルペイのエンジニアが入社時に受けるオンボーディング「QA Policy」の内容の一部を紹介させていただきましたが、この内容をさらにテスト工程のガイドラインや指標にブレイクダウンして充実させて行きたいと考えています。

また、これからも成長するメルペイのエンジニア組織で私たちと共に働き、成長できる仲間をお待ちしています。

以前よりも幅広いスキルに応募しやすい内容になっていますので、少しでも気になったら気軽にお声がけください!