Pro Yearly is on sale from $80 to $50! »

【phpcon2018】エンジニアだけで完全内製化のQAチームを立ち上げた話

7c592a120f8628ed0977f6dbebeec54d?s=47 saik1010
December 15, 2018

 【phpcon2018】エンジニアだけで完全内製化のQAチームを立ち上げた話

弊社はクチコミ掲載数日本最大級を誇る結婚準備クチコミ情報サイトのウエディングパークをはじめ、ブライダル専門の5つのメディアを自社で開発・運営しています(主要技術:PHP/Laravel/MySQL/Goなど)。サービスの成長に伴い開発体制が50名規模と拡大する中で、開発スピードの向上とプロダクト品質の担保するため、約1年前にエンジニアが中心となってQAチームを立ち上げました。今回は、「チーム立ち上げ〜現在」まで、エンジニアならではの視点で課題解決に取り組んできたこと(自動テスト、組織作り、啓蒙活動、障害分析)をお話しします。

7c592a120f8628ed0977f6dbebeec54d?s=128

saik1010

December 15, 2018
Tweet

Transcript

  1. エンジニアだけで完全内製化の QAチームを立ち上げた話 公式キャラクター「ウエパ」 PHP Conference 2018

  2. 斉藤 健太 システムエンジニア マネージャー QAチーム マネージャー 自己紹介 2017年中途入社。29歳で3児の父。 前職(SIer)で行なっていた品質要求の高い開発経験 が入社してから自身の強みであることを認識。入社

    4ヶ月でQAチームを立ち上げ、成長するサービスを支 えるために日々奮闘中! キャリア SIer(受託)/BtoB/Web/Java/Oracle/マネジメン ト/PHP/MySQL/QA 株式会社ウエディングパーク
  3. 会社紹介

  4. None
  5. None
  6. 運営サービス

  7. 運営サービス

  8. 開発・制作環境

  9. 環境・活動 発表当日のみ

  10. エンジニアだけで完全内製化の QAチームを立ち上げた話

  11. QAチーム 誕生の経緯 ・QAとは? ・QAチームのミッション SECTION 01 この1年間で 取り組んだこと ・テストフローの見直し ・自動テストへの取り組み

    ・障害分析基盤の構築 SECTION 02 まとめ ・振り返り ・今後の展望 SECTION 03 もくじ
  12. QAチーム誕生の経緯 品質向上へ戦いの始まり・・! SECTION 01

  13. QAとは? 効率と品質が求められる あらゆる活動において、 それらに保証を与えるのに 必要な証拠を提供する活動一般を指す。 出典:wikipedia 生産性 品質 ✕ SECTION

    01 QAチーム誕生の経緯
  14. 品質を上げるためなら何でもやる! 品質の埋め込みプロセス 品質の確認・検証プロセス 要 件 機 能 設 計 技

    術 設 計 実 装 開 発 テ ス ト シ ス テ ム テ ス ト 受 け 入 れ テ ス ト リ リ 丨 ス 期待 規制 方針 機会 問題 QAチームの業務範囲 SECTION 01 QAチーム誕生の経緯
  15. 障害件数 (本番) リリース数 ÷ 障害発生率 = 10% 10件 100件 ※数値はサンプルです

    QAチームのミッション 障害件数だけで追ってしまうと、 リリース数が増えた時に正確に計測ができない SECTION 01 QAチーム誕生の経緯
  16. サービス拡大による 不具合の増加 ナレッジが 蓄積できない 改善しなければ いけない危機感 SECTION 01 QAチーム誕生の経緯 開発の課題(QAチーム立ち上げ前)

  17. サービス拡大による 不具合の増加 ナレッジが 蓄積できない 改善しなければ いけない危機感 SECTION 01 QAチーム誕生の経緯 開発の課題(QAチーム立ち上げ前)

  18. サービス拡大による不具合の増加 サービスが拡大するにつれて、機能の増加や仕様の複雑化が進んだ ことにより、開発・テストに関わるメンバーの「機能の把握度」や「仕様 の理解度」が開発品質を大きく左右する状況 SECTION 01 QAチーム誕生の経緯 影響範囲 漏れ 仕様の

    見落とし 品質の バラつき
  19. サービス拡大による 不具合の増加 ナレッジが 蓄積できない 改善しなければ いけない危機感 SECTION 01 QAチーム誕生の経緯 開発の課題(QAチーム立ち上げ前)

  20. ナレッジが蓄積できない 体制強化による人員増に伴った、開発整備が追いつかないことによ り、発生した不具合内容や過去のテストケースの蓄積ができずに開発 ノウハウを貯めることができない 状況 SECTION 01 QAチーム誕生の経緯 類似不具 合の発生

    情報格差 非効率
  21. サービス拡大による 不具合の増加 ナレッジが 蓄積できない 改善しなければ いけない危機感 SECTION 01 QAチーム誕生の経緯 開発の課題(QAチーム立ち上げ前)

  22. 改善しなければいけない危機感 効率化や品質向上をしなければならないという思いはあるものの、 業 務片手間(サブミッション)ではスケール的に取り組みが難しい状況。また、テ ストや自動化に関する技術が近年高度化しており、 専門的な組織(エンジ ニア)も必要な時代に。 SECTION 01 QAチーム誕生の経緯

    専門性 危機感 熱意
  23. 結婚は、1つ1つの重みが大きいものです。 我々のサービスは、これから結婚式をあげる カップルや結婚式場様の一生に一度の結婚式 を背負っています。 SECTION 02 QAチームの取り組み でも一番大切なこと・・・

  24. この1年間で取り組んできたこと 手探りの中、多くの試みを・・・ SECTION 02

  25. ナレッジMTG 自動テスト KGI/KPI テストフローの 見直し サービス 仕様理解 他社交流 障害分析 TPI-NEXT

    品質・テスト 勉強会 マスタテスト ケース作成 テスト管理 ツール検証 チーム活性化 回帰テスト運用 SECTION 02 QAチームの取り組み QAチームの取り組み
  26. ナレッジMTG 自動テスト KGI/KPI テストフローの 見直し サービス 仕様理解 他社交流 障害分析 TPI-NEXT

    品質・テスト 勉強会 マスタテスト ケース作成 テスト管理 ツール検証 チーム活性化 回帰テスト運用 SECTION 02 QAチームの取り組み QAチームの取り組み
  27. SECTION 02 QAチームの取り組み テストフローの 見直し TOPIC 01 自動テストへの 取り組み TOPIC

    02 障害分析基盤の 構築 TOPIC 03
  28. SECTION 02 QAチームの取り組み テストフローの 見直し TOPIC 01 自動テストへの 取り組み TOPIC

    02 障害分析基盤の 構築 TOPIC 03
  29. SECTION 02 QAチームの取り組み 開発体制

  30. SECTION 02 QAチームの取り組み 開発体制 数十チームある・・!

  31. オリエン → 開発 → テスト → リリース SECTION 02 QAチームの取り組み 開発の流れ → デザイン

  32. 開発の流れ オリエン → デザイン → 開発 → テスト → リリース SECTION 02 QAチームの取り組み

  33. ・テスト項目作成はディレクター中心 ・リリース前の品質チェックはディレクターへ属人化 見直し前のテストフロー SECTION 02 QAチームの取り組み テスト 項目作成 テスト 実施

  34. ・テスト項目のベースとなるテスト観点を抽出するフローを追加 ・QAチームも加わり、属人化と手戻りを防ぐ 見直し後のテストフロー SECTION 02 QAチームの取り組み テスト 観点抽出 テスト 実施

    テスト 項目作成
  35. 開発の流れ → デザイン → 開発 → テスト → リリース オリエン SECTION 02 QAチームの取り組み

  36. なぜオリエンの段階で行うようにしたか?

  37. 早い段階で行うことで、不具合の埋め込みを防ぐ! 品質の埋め込みプロセス 品質の確認・検証プロセス 要 件 機 能 設 計 技

    術 設 計 実 装 開 発 テ ス ト シ ス テ ム テ ス ト 受 け 入 れ テ ス ト リ リ 丨 ス 期待 規制 方針 機会 問題 弊社QAの業務範囲 SECTION 02 QAチームの取り組み
  38.     テストフローの見直し GOOD BAD • 属人化の解消 • オリエンの段階でテスト観点を考え ることにより、仕様の抜け漏れに早 めに気付ける •

    全案件のオリエンへ参加することに よるリソースに逼迫 実装を把握しているエンジニアQAだ からこそ、仕様の抜け(パターン漏 れ)が見つけられる! SECTION 02 QAチームの取り組み まとめ
  39. SECTION 02 QAチームの取り組み テストフローの 見直し TOPIC 01 自動テストへの 取り組み TOPIC

    02 障害分析基盤の 構築 TOPIC 03
  40. エンジニアQA最大の見せ所パ!

  41. 自動 ブラウザテスト 自動 リンクチェッカー SECTION 01 QAチーム誕生の経緯 主に取り組んだ内容

  42. 自動 ブラウザテスト 自動 リンクチェッカー SECTION 01 QAチーム誕生の経緯 主に取り組んだ内容

  43. ・Selenium(Ruby/Capybara) ・ChromeDriver ・回帰テスト ①定期実行 ②テスト実行 ③テスト結果 SECTION 02 QAチームの取り組み CIサーバ

    QAサーバ Webサーバ 自動ブラウザテスト ④通知
  44. Seleniumのビックワードで     Google検索順位9位パ!!! SECTION 02 QAチームの取り組み 詳しくは、 弊社エンジニアテックブログにて!! 宣 伝

  45. 自動 ブラウザテスト 自動 リンクチェッカー SECTION 01 QAチーム誕生の経緯 主に取り組んだ内容

  46. ・python ・Webスクレイピング ・全てのリンク(aタグ)をチェック ①定期実行 ②HTTPリクエスト ③HTTPレスポンス ④エラーがあれば通知 SECTION 02 QAチームの取り組み

    CIサーバ QAサーバ Webサーバ 自動リンクチェッカー
  47. 詳しくは、 弊社エンジニアテックブログにて!! こちらは鳴かず飛ばずパ・・・ みんなのアクセス待ってるパ! SECTION 02 QAチームの取り組み 宣 伝

  48.      自動テストへの取り組み GOOD BAD • エンジニアQAの強みを発揮できた • 生産性と品質の両方を向上させる ことができる •

    みんなが興味を持ってくれる • 自動テストを実装することが 先行してしまい、効果的なテストに なっていない 根本的なソフトウェアテストの基礎知 識を深く学んだ上で、自動テストに活 かしたい! SECTION 02 QAチームの取り組み まとめ
  49. SECTION 02 QAチームの取り組み テストフローの 見直し TOPIC 01 自動テストへの 取り組み TOPIC

    02 障害分析基盤の 構築 TOPIC 03
  50. 簡単に言えば・・・ 発生した障害を紐解き、 再発防止につなげられるPDCA基盤 障害分析基盤とは? SECTION 02 QAチームの取り組み

  51. SECTION 02 QAチームの取り組み 障害分析基盤の全体像 障害の情報蓄積 レポーティング 改善策立案と アクション 傾向分析 01

    02 04 03
  52. SECTION 02 QAチームの取り組み 障害分析基盤の全体像 障害の情報蓄積 レポーティング 改善策立案と アクション 傾向分析 01

    02 04 03
  53. 障害分析基盤の全体像(レポーティング) 混入工程 企画、仕様、設計、開発、 テスト…etc 混入原因 仕様誤り、設計漏れ、コー ディングミス…etc 混入機能 検索機能、登録機能、広 告配信…etc

    混入時期 20173Q、20174Q、 20181Q…etc 混入施策 XXX開発案件、YYY開発 案件…etc SECTION 02 QAチームの取り組み
  54. 傾向として弱い ところがわかる!! SECTION 02 QAチームの取り組み 障害分析基盤の全体像(傾向分析) ※数値はサンプルです

  55. この分析結果を月1回のペースで 全体の共有をすることで ナレッジ蓄積の部分についても 強化をしています。 SECTION 02 QAチームの取り組み 障害の月次共有(ナレッジ蓄積)

  56.    障害分析基盤の構築 GOOD BAD • 開発フローの弱点を見つける ことが容易になった • 傾向から考え出す改善策の 納得性 •

    スプレッドシートを利用した アナログ分析のため、 やや時間がかかってしまう 機械学習を用いた、 データ分析にチャレンジしたい! SECTION 02 QAチームの取り組み まとめ
  57. まとめ 今までの振り返りと今後の展望 SECTION 03

  58. エンジニアだけで完全内製化の QAチームを立ち上げた話 SECTION 03 まとめ

  59. 結局のところは、「エンジニアだけ」ということはなくて、 品質や生産性向上は、全員で取り組まなければ実現できない! SECTION 03 まとめ

  60. ただ、自動テストなどの実装寄りな部分を 自分達だけでできるメリットは非常に大きい! SECTION 03 まとめ

  61. 安全かつ生産性の高い開発体制をつくる! SECTION 03 まとめ 上流からの 品質向上 自動テスト 促進 KGI/KPI 量+質へ

  62. ご清聴ありがとパ