Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

斉藤 健太 システムエンジニア マネージャー QAチーム マネージャー 自己紹介 2017年中途入社。29歳で3児の父。 前職(SIer)で行なっていた品質要求の高い開発経験 が入社してから自身の強みであることを認識。入社 4ヶ月でQAチームを立ち上げ、成長するサービスを支 えるために日々奮闘中! キャリア SIer(受託)/BtoB/Web/Java/Oracle/マネジメン ト/PHP/MySQL/QA 株式会社ウエディングパーク

Slide 3

Slide 3 text

会社紹介

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

運営サービス

Slide 7

Slide 7 text

運営サービス

Slide 8

Slide 8 text

開発・制作環境

Slide 9

Slide 9 text

環境・活動 発表当日のみ

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

QAチーム 誕生の経緯 ・QAとは? ・QAチームのミッション SECTION 01 この1年間で 取り組んだこと ・テストフローの見直し ・自動テストへの取り組み ・障害分析基盤の構築 SECTION 02 まとめ ・振り返り ・今後の展望 SECTION 03 もくじ

Slide 12

Slide 12 text

QAチーム誕生の経緯 品質向上へ戦いの始まり・・! SECTION 01

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

品質を上げるためなら何でもやる! 品質の埋め込みプロセス 品質の確認・検証プロセス 要 件 機 能 設 計 技 術 設 計 実 装 開 発 テ ス ト シ ス テ ム テ ス ト 受 け 入 れ テ ス ト リ リ 丨 ス 期待 規制 方針 機会 問題 QAチームの業務範囲 SECTION 01 QAチーム誕生の経緯

Slide 15

Slide 15 text

障害件数 (本番) リリース数 ÷ 障害発生率 = 10% 10件 100件 ※数値はサンプルです QAチームのミッション 障害件数だけで追ってしまうと、 リリース数が増えた時に正確に計測ができない SECTION 01 QAチーム誕生の経緯

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

SECTION 02 QAチームの取り組み 開発体制

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

早い段階で行うことで、不具合の埋め込みを防ぐ! 品質の埋め込みプロセス 品質の確認・検証プロセス 要 件 機 能 設 計 技 術 設 計 実 装 開 発 テ ス ト シ ス テ ム テ ス ト 受 け 入 れ テ ス ト リ リ 丨 ス 期待 規制 方針 機会 問題 弊社QAの業務範囲 SECTION 02 QAチームの取り組み

Slide 38

Slide 38 text

    テストフローの見直し GOOD BAD ● 属人化の解消 ● オリエンの段階でテスト観点を考え ることにより、仕様の抜け漏れに早 めに気付ける ● 全案件のオリエンへ参加することに よるリソースに逼迫 実装を把握しているエンジニアQAだ からこそ、仕様の抜け(パターン漏 れ)が見つけられる! SECTION 02 QAチームの取り組み まとめ

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

エンジニアQA最大の見せ所パ!

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

・Selenium(Ruby/Capybara) ・ChromeDriver ・回帰テスト ①定期実行 ②テスト実行 ③テスト結果 SECTION 02 QAチームの取り組み CIサーバ QAサーバ Webサーバ 自動ブラウザテスト ④通知

Slide 44

Slide 44 text

Seleniumのビックワードで     Google検索順位9位パ!!! SECTION 02 QAチームの取り組み 詳しくは、 弊社エンジニアテックブログにて!! 宣 伝

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

     自動テストへの取り組み GOOD BAD ● エンジニアQAの強みを発揮できた ● 生産性と品質の両方を向上させる ことができる ● みんなが興味を持ってくれる ● 自動テストを実装することが 先行してしまい、効果的なテストに なっていない 根本的なソフトウェアテストの基礎知 識を深く学んだ上で、自動テストに活 かしたい! SECTION 02 QAチームの取り組み まとめ

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

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

Slide 52

Slide 52 text

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

Slide 53

Slide 53 text

障害分析基盤の全体像(レポーティング) 混入工程 企画、仕様、設計、開発、 テスト…etc 混入原因 仕様誤り、設計漏れ、コー ディングミス…etc 混入機能 検索機能、登録機能、広 告配信…etc 混入時期 20173Q、20174Q、 20181Q…etc 混入施策 XXX開発案件、YYY開発 案件…etc SECTION 02 QAチームの取り組み

Slide 54

Slide 54 text

傾向として弱い ところがわかる!! SECTION 02 QAチームの取り組み 障害分析基盤の全体像(傾向分析) ※数値はサンプルです

Slide 55

Slide 55 text

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

Slide 56

Slide 56 text

   障害分析基盤の構築 GOOD BAD ● 開発フローの弱点を見つける ことが容易になった ● 傾向から考え出す改善策の 納得性 ● スプレッドシートを利用した アナログ分析のため、 やや時間がかかってしまう 機械学習を用いた、 データ分析にチャレンジしたい! SECTION 02 QAチームの取り組み まとめ

Slide 57

Slide 57 text

まとめ 今までの振り返りと今後の展望 SECTION 03

Slide 58

Slide 58 text

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

Slide 59

Slide 59 text

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

Slide 60

Slide 60 text

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

Slide 61

Slide 61 text

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

Slide 62

Slide 62 text

ご清聴ありがとパ