LIFULL Creators Blog

LIFULL Creators Blogとは、株式会社LIFULLの社員が記事を共有するブログです。自分の役立つ経験や知識を広めることで世界をもっとFULLにしていきます。

LIFULLのQAの取り組みについて

品質改善推進ユニットの中野です。

LIFULLでは、2015年に開発プロジェクトの支援を目的としたQAチームを立ち上げ、これまで様々な活動を行なってきました。

この記事では、QAチームの現在の取り組みや実行に至った経緯や考えなどを書いていきたいと思います。

組織の変遷に関しては、以前弊社の藤澤が投稿したブログがありますので、そちらもよろしければ、あわせてご参照ください。

www.lifull.blog

QAのミッション

QAチームは、プロダクト開発に関わるものづくりのメンバーが、安全かつ高速にリリースを繰り返すことを支援し、安心して開発に取り組める状況をつくることにあります。

さらにその先には、プロダクトライフサイクルにおけるステージ、サービスの特性、開発チームのプロセスや成熟度に合わせて、各チームにあったテスト戦略を見出し、改善を後押しすることで、ストレスの少ないものづくりが行われていくための仕組み作りを継続していきたいと考えています。

プロジェクトへのQAの関わり方

社内には異なる規模、異なるスケジュールで様々な開発や保守のプロジェクトが動いています。 QAは、LIFULLの各事業領域のサービスやプロジェクトの品質を向上させることを目指しています。

全てのプロジェクトへ均等な支援を行うのではなく、支援内容は、テスト技術の不足を補う視点で、プロジェクトの状況をモニタリングしつつ決定しています。

全体の活動イメージは下記の通りです。

f:id:LIFULL-nakanao:20201130164307p:plain

各支援内容の目的は下記の通りです。

  • リスク分析・・・プロジェクトの施策内容、開発要件などを確認して事業インパクトやプロダクトリスクを把握し懸念があればサポートする
  • テスト計画コンシェルジュ・・・テスト計画の作成を支援することでテスト戦略やアプローチを整理し、テストの効果や効率を向上させる
  • リリース前リスク分析・・・プロジェクトの状況やテスト内容を把握しQA側でリスク低減のアクションの必要有無を判断する
  • QAテスト・・・リリース前のテスト(主に探索的テスト)を実施し問題があれば開発側へフィードバックする
  • QAサポート・・・開発プロジェクトにQAとして参加し、テスト全体、もしくは、一部分を担うことでプロジェクトのQCDを向上させる
  • パフォーマンス監視・・・リリース後のパフォーマンスを監視し、問題があれば開発側へフィードバックする
  • 本番障害分析・・・本番運用中に発生した障害情報を分析し、将来の開発に役立つようにテストなどの改善を検討する

関わり方の決定は、リスク分析を起点にQA側でアプローチする場合もあれば、ものづくりからの支援依頼を元に、テスト計画コンシェルジュや、QAサポートを行う場合もあります。

QAサポートの支援内容はプロジェクトによって様々で、相談だけで完結するものもありますし、レビューや特定のタスクだけを請け負う場合もあれば、プロジェクト全体を通してテストマネージメントを行う場合もあります。

テスト計画コンシェルジュ

ユーザーにとってちょうど良い品質作りを効率よく行うために、テストのアプローチに過不足が出ないように「テスト計画コンシェルジュ」というサービスにより、テスト計画の作成代行やレビューの支援などにも力を入れています。テスト計画をサービスとして切り出している理由は、テスト計画の中で適切なアプローチの決定が、テストプロジェクトの明暗を分ける要因だと考えているからです。 言い換えれば、テスト計画の精度が高ければ、後工程にQAチームが関わらなくても開発チームのメンバーでテストを効率よく進めることができるのではないかと思っています。

余談ですが、このテスト計画コンシェルジュを始めた頃に比べると、数年たった今では、必要に応じて開発側でテスト計画を作ってテストの検討を進めてくれることも多くなったと感じています。

下記はテスト計画コンシェルジュの効果の期待を表したイメージです。

f:id:LIFULL-nakanao:20201130164332p:plain

リリース前リスク分析を起点としたQAのアクション

プロジェクトに参加しない場合でも、直近のリリース情報を元にQA側でリスクに応じて成果物の確認などを行います。 さらに必要に応じてリリース前のQAテスト(探索的テスト)を実施し問題があれば開発チームにフィードバックします。

テストにおける改善活動

開発チームの状況によって対応は様々ですが、成熟度が高いチームでは、品質に関わる活動をチームで考え、最適なテストやレビューなどを実践していきます。 また、安心して開発に集中できるようなストレスが少ない環境作りもQAチームの重要な役割だと考えています。

QAの活動としては以下のような取り組みを実施しています。

  • 新卒エンジニアや様々な職種向けの研修の実施
  • 探索的テストのチャーターの保守
  • テストツールの開発
  • テストデータの提供
  • システムテスト標準の作成

最後に

年々、支援を求められるプロジェクトの数も増え、難易度も上がり続けていますが、現場におけるテストの最適化や、テスト資産の利活用などまだまだ改善できる領域がありますので、現場に寄り添い継続的に改善に努めたいと考えています。

また、この記事では概要の説明に留めましたが、個々の取り組みについても、また別の機会に記事を公開する予定でいます。