Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Designing Your Organization's Test Pyramid ( #s...

Designing Your Organization's Test Pyramid ( #scrumniigata )

ScrumFestNiigata2025での「自組織にあったテストピラミッドを設計しよう!」における講演資料です。

講演プロポーザルは以下のものです
https://confengine.com/conferences/scrum-fest-niigata-2025/proposal/21707

Avatar for teyamagu

teyamagu

May 10, 2025
Tweet

More Decks by teyamagu

Other Decks in Programming

Transcript

  1. 自己紹介: Teppei YAMAGUCHI 自己紹介 株式会社 LayerX 所属 兼 個人事業主 プログラマー、コンサルタント、コーチ、テスター

    LayerX では、プロダクトのテスターをおこないつつ、事業部全体 の自動テスト環境や品質可視化の構築・整備も担当 出版 『ソフトウェアテストをカイゼンする 50 のアイデア』 『Fearless Change』 コミュニティワーク Regional Scrum Gathering Tokyo 実行委員 SQiP 研究会 分科会 4「アジャイルと品質」アドバイザー テスト自動化研究会 お世話係 © LayerX Inc. 2 / 16
  2. 現時点での私たちのテストピラミッド(保証すること・確認すること) テスト名称 保証したいこと 何を確認するのか 使うツール E2E シナリオテスト お客様がやりたいことが実現できるか ユースケースが正しく実現できている Autify

    & Playwright(UI テストとは 別物) ページ UI テスト 操作画面が想定通りに表示され、操作で きるか 1. 操作するページが想定と異なっていない 2. ページを想定通り操作できる Playwright コンポーネント UI テ スト 画面コンポーネントが想定通りに表示さ れ、操作できるか 1. 操作するコンポーネントが想定と異なっていない 2. コンポーネントを想定通り操作できる Storybook API テスト 1. コードが想定通り動くか 2. 接続箇所が想定通りの設計になってい るか 1. 各コンポーネントが正しく動作している 2. 複数の API を利用した API が正しい値を返している 3. API のユースケースが正しく実現できている runn コンポーネントユニッ トテスト 画面側のコードが想定通り動くか UI コンポーネントが、出力する HTML, CSS のレベルで正しく動作して いる(= ブラウザはモック) Jest+testing-library or Vitest+testing-library ユニットテスト コードが想定通り動くか 1. 各コンポーネントが正しく動作している 2. 単体で実行できる API が正しい値を返している 言語のテストフレームワーク © LayerX Inc. 自組織にあったテストピラミッドを設計しよう! 7 / 16
  3. 設計プロセス:誰が、どのように? © LayerX Inc. 自組織にあったテストピラミッドを設計しよう! ワーキンググループ化して実施 QA エンジニア (← 私)

    複数の開発エンジニア なぜ「一緒に」設計するのか? 目的は「現場で使える」定義 → 現場の意見・実態が必要 「共通認識」を醸成するため → 一緒に考えるプロセスが重要 「定義した人」だけでなく「使う人」が主体に 10 / 16
  4. 設計プロセス:レイヤー定義の具体化 テスト名称 保証したいこと 何を確認するのか 使うツール E2E シナリオテスト お客様がやりたいことが実現できるか ユースケースが正しく実現できている Autify

    & Playwright(UI テストとは別物) ページ UI テスト 操作画面が想定通りに表示され、操作できるか 1. 操作するページが想定と異なっていない 2. ページを想定通り操作できる Playwright © LayerX Inc. 自組織にあったテストピラミッドを設計しよう! 一般的な概念をベースに、「私たちの言葉」として明文化 各レイヤーで 「何を保証して、何を確認するのか」 を定義 保証したいことの明文化で、大まかに境界線を定義 確認することの明文化で、テストの内容を定義 各レイヤーで主に使うツールを定義 12 / 16
  5. 設計プロセスを経て得られた「効能」 © LayerX Inc. 自組織にあったテストピラミッドを設計しよう! テストピラミッドを自分達で定義することにより得た効能 効能 ①:テスト実装時の「迷い」が解消された 効能 ②:組織全体のツール整備が加速した

    効能 ③:コミュニケーションが円滑になり、共通言語が生まれた 効能 ④:ワークフローへの統合とフィードバックの高速化 詳しくは「テストピラミッド定義がもたらした LayerX バクラク開発チームの変化と効能」というブログ記事を公開済みです ので、ブログを参照ください 13 / 16
  6. 定義は継続的に見直す © LayerX Inc. 自組織にあったテストピラミッドを設計しよう! 作成したテストピラミッドの定義は継続的に見直す必要がある テストの増加によるテストツールの変化 例: Autify だけから

    Autify と playwright の併用 新たなフレームワークやテストツールの導入による変化 例: jest から Vitest への移行 確認したいことの変化 14 / 16