Slide 1

Slide 1 text

© Kakaku.com Inc. All Rights Reserved. 1 インプロセスQAとテスト自動化の両輪で進める 食べログの開発生産性と品質改善の3年間 株式会社カカクコム 食べログ開発本部 品質管理室 SETチーム チームリーダー兼テックリード 菅原 直人 品質管理室 室長兼テックリード 荻野 恒太郎 2024年06月29日

Slide 2

Slide 2 text

© Kakaku.com Inc. All Rights Reserved. 2 本日お持ち帰りいただきたいこと デプロイの 頻度 変更の リードタイム 変更障害率 サービス 復元時間 Four Keys 開発生産性 品質 疑問:品質と開発生産性はトレードオフ? →200人程度の規模の食べログの開発組織の中で 品質管理室を3年前から立ち上げ、実施してきた取り組み

Slide 3

Slide 3 text

© Kakaku.com Inc. All Rights Reserved. 1. 背景と品質管理室の取り組みの指標構造 (5分) 2. 指標改善のためのインプロセスQAとテスト自動化(5分) 3. 食べログでの品質と開発生産性の改善事例(27分) 品質改善の事例: インシデント件数の改善 開発生産性の事例①:テストデータ資産化率の改善 開発生産性の事例②:QAブロック率の改善 4.今後の展望(2分) 5.まとめ (1分) 3 アジェンダ

Slide 4

Slide 4 text

© Kakaku.com Inc. All Rights Reserved. 4 食べログの開発生産性の背景 ①事業会社としての 食べログ ②実はずっと 内製開発しています ③ビジネス領域が 増えてきました ④組織規模が 大きくなってきました

Slide 5

Slide 5 text

© Kakaku.com Inc. All Rights Reserved. 5 食べログの開発生産性の背景 ①事業会社としての 食べログ ②実はずっと 内製開発しています ③ビジネス領域が 増えてきました ④組織規模が 大きくなってきました 内製の事業会社がビジネス領域と組織規模の拡大に伴う 開発生産性と品質の課題を解決していきたい →2021年6月より品質管理室の前身となる組織を立ち上げ

Slide 6

Slide 6 text

© Kakaku.com Inc. All Rights Reserved. 6 企業の競争力と品質と開発生産性 Customer Intimacy Product Leadership Operational Excellence 企業の競争力 売るモノの 顧客について どれくらい知っているか? 売るモノが市場で どれくらい優位性があるか? 売るモノを作る際 どれくらいミスが少なく 効率的か? 内製の事業会社にとって、開発生産性と品質改善は Operational Excellenceとして企業の競争力の重要な一要素 ・グローバルな自動車製造メーカー ・グローバルなファーストフードチェーン店 ・グローバルな検索エンジンサイト

Slide 7

Slide 7 text

© Kakaku.com Inc. All Rights Reserved. 7 自動化 プロセス トヨタ 生産方式 TQC QC活動 ソフトウェア オブジェクト パターン スクラム XP リーン 継続的デリバリー パイプライン 自動化 受け入れ テスト自動化 クラウド IaC DevOps 開発生産性 AIなど 製造業の生産/品質管理からアジャイル開発の開発生産性への流れ 製造業の 生産/品質管理 アジャイル開発の 開発生産性 ・アジャイル開発の開発生産性の源流である、トヨタ生産方式やQC活動なども、 Operational Excellenceを実現するための手法 →もともと品質と開発生産性はトレードオフではない!! アジャイルとDevOpsの品質保証と信頼性, 日本信頼性学会論文誌, Vol.42, No.2, 2020年3月号 に掲載したアジャイルの歴史についての図の2024年改訂版

Slide 8

Slide 8 text

© Kakaku.com Inc. All Rights Reserved. 8 「開発生産性と品質指標」とチーム外の関係性の指標構造 収益 コスト 機会損失 取り組み 事業指標 営業指標 マーケティング指標 プロダクト開発 指標 プロダクト開発 内部指標抜粋 生産性の 向上 品質の向上 ・開発生産性や品質指標から事業指標までの関係性を構造化 →開発生産性や品質指標が、チームとチームの外に与える影響を整理 誰にとってのどんな価値? ・チーム -障害対応が減って嬉しい -レビューが楽になって嬉しい ・ユーザー -機能がどんどん使いやすくなって 嬉しい -サービス料金が安くなって嬉しい ・事業 - 事業の競争力が高くなって嬉しい 詳しくは JaSST ‘24 Tokyoの発表資料をご覧ください https://www.jasst.jp/symposium/jasst24tokyo/document/A6.pdf

Slide 9

Slide 9 text

© Kakaku.com Inc. All Rights Reserved. 9 「開発生産性と品質指標」とチーム外の関係性の指標構造 収益 コスト 機会損失 取り組み 事業指標 営業指標 マーケティング指標 プロダクト開発 指標 プロダクト開発 内部指標抜粋 生産性の 向上 品質の向上 ・開発生産性や品質指標から事業指標までの関係性を構造化 →開発生産性や品質指標が、チームとチームの外に与える影響を整理 チームが開発生産性と生産性を改善する取り組み 誰にとってのどんな価値? ・チーム -障害対応が減って嬉しい -レビューが楽になって嬉しい ・ユーザー -機能がどんどん使いやすくなって 嬉しい -サービス料金が安くなって嬉しい ・事業 - 事業の競争力が高くなって嬉しい 詳しくは JaSST ‘24 Tokyoの発表資料をご覧ください https://www.jasst.jp/symposium/jasst24tokyo/document/A6.pdf

Slide 10

Slide 10 text

© Kakaku.com Inc. All Rights Reserved. 10 「開発生産性と品質指標」とチーム内の活動の関係性の指標構造 デプロイの 頻度 変更の リードタイム 変更障害率 サービス 復元時間 Four Keys 開発生産性 品質 ・開発生産性と品質の指標を、それらに影響を与えるチーム内の指標へと因数分解 →中規模以上の組織でも、具体的なアクションに取り組めるように

Slide 11

Slide 11 text

© Kakaku.com Inc. All Rights Reserved. 11 品質管理室の取り組みの指標構造 デプロイの 頻度 変更の リードタイム 変更障害率 サービス 復元時間 修正開発 案件率 テストデータ 資産化率 Four Keys QA ブロック率 開発生産性 品質 インシデント 件数 テストデータ 準備 リードタイム テスト環境 修正 リードタイム テスト実行 リードタイム テスト 自動化率 チーム内の指標 ・開発生産性と品質の指標を、それらに影響を与えるチーム内の指標へと因数分解 →中規模以上の組織でも、具体的なアクションに取り組めるように

Slide 12

Slide 12 text

© Kakaku.com Inc. All Rights Reserved. 1. 背景と品質管理室の取り組みの指標構造 (5分) 2. 指標改善のためのインプロセスQAとテスト自動化(5分) 3. 食べログでの品質と開発生産性の改善事例(27分) 品質改善の事例: インシデント件数の改善 開発生産性の事例①:テストデータ資産化率の改善 開発生産性の事例②:QAブロック率の改善 4.今後の展望(2分) 5.まとめ (1分) 12 アジェンダ

Slide 13

Slide 13 text

© Kakaku.com Inc. All Rights Reserved. 13 品質管理室の取り組み:インプロセスQAとテスト自動化 デプロイの 頻度 変更の リードタイム 変更障害率 サービス 復元時間 修正開発 案件率 テストデータ 資産化率 Four Keys QA ブロック率 開発生産性 品質 インシデント 件数 テストデータ 準備 リードタイム テスト環境 修正 リードタイム テスト実行 リードタイム テスト 自動化率

Slide 14

Slide 14 text

© Kakaku.com Inc. All Rights Reserved. 14 品質管理室の取り組み:インプロセスQAとテスト自動化 デプロイの 頻度 変更の リードタイム 変更障害率 サービス 復元時間 修正開発 案件率 テストデータ 資産化率 Four Keys QA ブロック率 開発生産性 品質 インシデント 件数 テストデータ 準備 リードタイム テスト環境 修正 リードタイム テスト実行 リードタイム テスト 自動化率 テスト自動化 インプロセスQA

Slide 15

Slide 15 text

© Kakaku.com Inc. All Rights Reserved. 15 品質管理室の取り組み:インプロセスQAとテスト自動化 デプロイの 頻度 変更の リードタイム 変更障害率 サービス 復元時間 修正開発 案件率 テストデータ 資産化率 Four Keys QA ブロック率 開発生産性 品質 インシデント 件数 テストデータ 準備 リードタイム テスト環境 修正 リードタイム テスト実行 リードタイム テスト 自動化率 テスト自動化 インプロセスQA インプロセスQAの役割 ・インシデント件数など プロダクト品質に責務を持つ →品質の向上がメイン ・ただしインシデントを減らすことは、 修正開発を減らし新規の開発案件数を 増やすことにも寄与 ・また、中長期的な開発プロセスの改善にも 取り組む チーム構造 ・企画、デザイナー、エンジニアと 一緒にStream Alignedチームの 一員として活動

Slide 16

Slide 16 text

© Kakaku.com Inc. All Rights Reserved. 16 品質管理室の取り組み:インプロセスQAとテスト自動化 デプロイの 頻度 変更の リードタイム 変更障害率 サービス 復元時間 修正開発 案件率 テストデータ 資産化率 Four Keys QA ブロック率 開発生産性 品質 インシデント 件数 テストデータ 準備 リードタイム テスト環境 修正 リードタイム テスト実行 リードタイム テスト 自動化率 品質管理室の 直接的な指標 テスト自動化 インプロセスQA テスト自動化の役割 ・変更のリードタイム改善のための テストのリードタイム改善に責任を持つ →開発生産性がメイン ・ただし、やみくもなテスト自動化はしない -QA資産の資産化 -導入、活用まできっちりやりきる チーム構造 ・Platformチームとしての 自動化基盤の整備 ・Enablingチームとしての自動化基盤の 活用の支援

Slide 17

Slide 17 text

© Kakaku.com Inc. All Rights Reserved. 17 QA資産化率 ・QA資産の資産化は「事業会社の内製の開発組織」の 「内製の品質組織」としての 色が一番出るポイント テスト観点 作成 テストケース 作成 テスト 準備 テスト実行 そ の 他 QA活動のテスト工程と資産化方針 方針: ナレッジの資産化 方針:自動化による 単純作業の資産化 ・事業会社では、サービスを持続的に 成長させ続けていく ・サービスを提供するための “システム”や”ソースコード”は 会社の資産 ・持続的なQA活動を実施していくための 仕組みも資産 ※ここでいう“資産”は経理上の資産とは異なる →戦略的にQA資産を資産化することで 企業のOperational Excellenceにつなげる

Slide 18

Slide 18 text

© Kakaku.com Inc. All Rights Reserved. 1. 背景と品質管理室の取り組みの指標構造 (5分) 2. 指標改善のためのインプロセスQAとテスト自動化(5分) 3. 食べログでの品質と開発生産性の改善事例(27分) 品質改善の事例: インシデント件数の改善 開発生産性の事例①:テストデータ資産化率の改善 開発生産性の事例②:QAブロック率の改善 4.今後の展望(2分) 5.まとめ (1分) 18 アジェンダ

Slide 19

Slide 19 text

© Kakaku.com Inc. All Rights Reserved. 19 品質管理室の取り組みの見える化のための指標構造 デプロイの 頻度 変更の リードタイム 変更障害率 サービス 復元時間 修正開発 案件率 テストデータ 資産化率 Four Keys QA ブロック率 開発生産性 品質 インシデント 件数 テストデータ 準備 リードタイム テスト環境 修正 リードタイム テスト実行 リードタイム テスト 自動化率 テスト自動化 インプロセスQA

Slide 20

Slide 20 text

© Kakaku.com Inc. All Rights Reserved. 20 食べログでの品質と開発生産性の改善事例 ①インプロセスQAによる改善 ②自動化による改善 ③自動化による軽減 デプロイの 頻度 変更の リードタイム 変更障害率 サービス 復元時間 修正開発 案件率 テストデータ 資産化率 Four Keys QA ブロック率 開発生産性 インシデント 件数 テストデータ 準備 リードタイム テスト環境 修正 リードタイム テスト実行 リードタイム テスト 自動化率 品質 QAブロック率

Slide 21

Slide 21 text

© Kakaku.com Inc. All Rights Reserved. 21 食べログでの品質と開発生産性の改善事例 ①インプロセスQAによる改善 ②自動化による改善 ③自動化による軽減 デプロイの 頻度 変更の リードタイム 変更障害率 サービス 復元時間 修正開発 案件率 テストデータ 資産化率 Four Keys QA ブロック率 開発生産性 インシデント 件数 テストデータ 準備 リードタイム テスト環境 修正 リードタイム テスト実行 リードタイム テスト 自動化率 品質 QAブロック率

Slide 22

Slide 22 text

© Kakaku.com Inc. All Rights Reserved. 22 ①インプロセスQAによるインシデント件数の改善:概要 課題と指標の関係 ・インシデント件数の増加により その修正のための修正開発案件が増加 また同時に変更障害率が増加 ・修正開発案件率が増加するため デプロイの頻度が不安定に 解決策 ・根本原因であるインシデント件数を改善 ・インプロセスQA立ち上げ (事業会社の内製開発組織) a ホワイトボックス観点にもとづいたリスクベーステスト b 振り返りをStream Aligned Teamとして実施 c テスト観点マスターによるQA資産の蓄積 デプロイの 頻度 変更障害率 修正開発 案件率 開発生産性 品質 インシデント 件数 指標構造

Slide 23

Slide 23 text

© Kakaku.com Inc. All Rights Reserved. 23 ①インプロセスQAによるインシデント件数の改善:解決へのアクション1 受託QAだと、、、 ・上流工程(設計)は見ません ・ソースコードは読みません →下流のブラックボックステストだけで すべてのテストを網羅しようとしてしまいがち 食べログはインプロセスQAなので ・上流工程(設計)を見ることができる ・ソースコードが読める →上流の設計やソースコードを加味した テスト設計ができる a ホワイトボックス観点にもとづいたリスクベーステスト 実際の不具合修正のQA案件でも 不具合: 予約システムの配席アルゴリズムが 卓数Nに対し O(2^N) のため、 Nが増えると計算量が爆発してしまう ブラックボックステストのみのテスト戦略 2^Nの組み合わせテストを減らす 食べログでのテスト戦略 アルゴリズム変更に伴うリスクに絞ってテスト →数十件の規模で ソースコードの 条件分岐 アルゴリズム上の データの位置

Slide 24

Slide 24 text

© Kakaku.com Inc. All Rights Reserved. 振り返りで出た実際の付箋: →要件はすべての職能が関わる重要要素 ・Stream Aligned Teamの -職能を越えた協力姿勢と課題解決 を振り返りを通してひたすら改善 24 ①インプロセスQAによるインシデント件数の改善:解決へのアクション2 参加者:企画、デザイナー、開発、QA 内容: Quality (品質) Scope (スコープ) Delivery(納期) 思想:失敗なんてない、成功するか学ぶかだ! b 振り返りをStream Aligned Teamとして実施 エンジニアから要件FIXに 向けての動きが弱かった チャットで要件追加され ただけで資料更新がない

Slide 25

Slide 25 text

© Kakaku.com Inc. All Rights Reserved. 25 ①インプロセスQAによるインシデント件数の改善:解決へのアクション3 テスト観点マスターによるナレッジの資産化 テスト観点マスターのトレーサビリティマトリックス一部抜粋 c テスト観点マスターによるQA資産の蓄積 テスト観点 作成 テストケース 作成 テスト 準備 テスト実行 そ の 他 方針: ナレッジの資産化 方針:自動化による 単純作業の資産化 構成: ○ユースケース一覧 ○トレーサビリティマトリックス ○テスト観点ツリー テスト実行手順まで含めたテストケース →実行手順まで含めて資産化するのであれば 自動化した方がよい (あくまでナレッジの資産化)

Slide 26

Slide 26 text

© Kakaku.com Inc. All Rights Reserved. 26 ①インプロセスQAによるインシデント件数の改善:結果 指標の変化 2022年度=7件 2023年度=1件 2022年度=543件 2023年度=530件 2022年度 0.7%~2.76% 2023年度 0%~0.76% 計測 開始前 (*1) 計測 開始前 (*1) 計測 開始前 (*2) 2Q=28% 3Q=18% (*1) デプロイ頻度、変更障害率の計測は2022年から (*2) 修正開発案件率の計測は2023年 2Qから ・インシデント件数、変更障害率が大幅に改善 ・デプロイ頻度は同程度 4Q=30% デプロイの 頻度 変更障害率 修正開発 案件率 開発生産性 品質 インシデント 件数 指標構造 2023年1Q 2023年2Q 2023年3Q 2023年4Q

Slide 27

Slide 27 text

© Kakaku.com Inc. All Rights Reserved. 27 食べログでの品質と開発生産性の改善事例 ①インプロセスQAによる改善 ②自動化による改善 ③自動化による軽減 デプロイの 頻度 変更の リードタイム 変更障害率 サービス 復元時間 修正開発 案件率 テストデータ 資産化率 Four Keys QA ブロック率 開発生産性 インシデント 件数 テストデータ 準備 リードタイム テスト環境 修正 リードタイム テスト実行 リードタイム テスト 自動化率 品質 QAブロック率

Slide 28

Slide 28 text

© Kakaku.com Inc. All Rights Reserved. 28 ②自動化によるテストデータ資産化率改善: 概要 課題と指標の関係 ・テストデータの資産化率が低いため 毎回テストデータを作成する必要があり テストデータ準備リードタイムが増加 解決策 ・根本原因であるテストデータの資産化率を改善 -テストデータ作成手順の自動化 ①自動テストに作成したいデータを入力し実行 ②テストデータが完成 開発生産性 指標構造 変更の リードタイム テストデータ 資産化率 テストデータ 準備 リードタイム

Slide 29

Slide 29 text

© Kakaku.com Inc. All Rights Reserved. 29 ②自動化によるテストデータ資産化率の改善: ソフトウェアとして設計することの重要性 よくあるテスト自動化の失敗例 手動のテストケースをそのまま自動化 → 大量の自動化済みテストケースが生まれ、保守できなくなる

Slide 30

Slide 30 text

© Kakaku.com Inc. All Rights Reserved. レベル 記述レベル 記述の変化 レベル1 線形スクリプト 構造化されていない レベル2 構造化スクリプト 制御フローの構造化 レベル3 共有スクリプト 共通処理の共通化 レベル4 データ駆動スクリプト テストステップの共通化と テストデータの構造化 レベル5 キーワード駆動スクリプト テストケース記述 と テスト実行操作 の構造化 30 ②自動化によるテストデータ資産化率の改善: 自動テストのコードの記述方法の成熟度と保守性 自動テストの保守性を測るための5段階の指針 引用: システムテスト自動化標準ガイド

Slide 31

Slide 31 text

© Kakaku.com Inc. All Rights Reserved. 31 ②自動化によるテストデータ資産化率の改善: 構造化スクリプトの記述例 構造化スクリプトとは 向上する保守性 ・テストの手順 ・事前&事後処理内の制御フロー を構造化できるようになる 食べログの活用例 線形スクリプトから 制御フローを構造化した記述レベル のスクリプト 手動テストの担当者がテスト実施中に 判断するような処理を if 文や switch 文で制御 例 ① ② ③ ?

Slide 32

Slide 32 text

© Kakaku.com Inc. All Rights Reserved. 向上する保守性 共有スクリプトとは 32 ②自動化によるテストデータ資産化率の改善: 共有スクリプトの記述例 ① ② ③ 構造化スクリプトから 重複処理を共通化した記述レベル のスクリプト ? 各テストケースの重複処理を 共通化できるようになる テストケース毎に必要な ①ブラウザ毎の設定 / ②プロキシの設定 / ③ブラウザの起動 を共通化=1箇所で管理 例 食べログの活用例

Slide 33

Slide 33 text

© Kakaku.com Inc. All Rights Reserved. 向上する保守性 33 ②自動化によるテストデータ資産化率の改善: データ駆動スクリプトでの記述例 データ駆動スクリプトとは テスト手順とテスト条件を分離した 記述レベルのスクリプト ・テスト手順=シナリオ ・テストの入力&期待結果などの テスト条件 ? シナリオを共通化することで、 テストケースごとに異なるテスト条件だけを テストデータとして外出しして 管理できるようになる 食べログの活用例 Cucumber の Scenario Outline で 共通化 して管理 Cucumber の Examples で 外出しして管理 テスト条件 テスト手順 テストデータ

Slide 34

Slide 34 text

© Kakaku.com Inc. All Rights Reserved. 向上する保守性 キーワード駆動スクリプトとは テスト手順を分離した記述レベルの スクリプト ・プログラムコード以外 (テストケースとして記述された シナリオ) ・プログラムコード (シナリオ通りに動かすための 実際の処理) ? 34 ②自動化によるテストデータ資産化率の改善: キーワード駆動スクリプトで記述した際の保守性 ステップ関数 シナリオ テストケース:Cucumber のシナリオ プログラムコード: Cucumber の ステップ関数 下記が向上する ・テストケースとしての可読性 ・プログラムコードとしての保守性 食べログの活用例

Slide 35

Slide 35 text

© Kakaku.com Inc. All Rights Reserved. 35 ②自動化によるテストデータ資産化率の改善: ツールの落とし穴 ツールの落とし穴に注意 成熟度レベルの高いスクリプトをサポートしているツール でも 成熟度レベルの高いスクリプト を 思考を停止して作成できるわけではない

Slide 36

Slide 36 text

© Kakaku.com Inc. All Rights Reserved. 36 ②自動化によるテストデータ資産化率の改善: ツールの落とし穴の事例 事例 テストデータ作成の自動化 テストデータ作成手順をそのまま自動化したが、リードタイムがそこまで改善しなかった 課題 1800分 300件のテストデータ作成にかかるリードタイム 1359分 手動 自動 (構造化前) 原因 ・自動実行中に手作業が残っていた ・テストデータや実施手順に 必要なデータを煩雑に管理していた

Slide 37

Slide 37 text

© Kakaku.com Inc. All Rights Reserved. 37 ②自動化によるテストデータ資産化率の改善: ツールの落とし穴の事例 事例 テストデータ作成の自動化 テストデータ作成手順をそのまま自動化したが、リードタイムがそこまで改善しなかった 課題 1800分 300件のテストデータ作成にかかるリードタイム 1359分 手動 自動 (構造化前) 原因 ・自動実行中に手作業が残っていた ・テストデータや実施手順に 必要なデータを煩雑に管理していた 91分 自動 (構造化後) 構造化で解決② テストデータ/実施手順データ などを構造化 構造化で解決① 実行中に手作業を入れない ソフトウェアとして構造化 解決策 95%削減!

Slide 38

Slide 38 text

© Kakaku.com Inc. All Rights Reserved. 38 ②自動化によるテストデータ資産化率の改善: 結果 指標の変化 自動化率=71% 自動化率=69% 自動化率=97% 自動化率=0% ・テストデータ準備のリードタイムが改善 ・テストデータの作成件数も増加 1800分 91分 リードタイム 300件のテストデータ作成 1359分 手動 自動 (構造化前) 自動 (構造化後) 開発生産性 指標構造 変更の リードタイム テストデータ 資産化率 テストデータ 準備 リードタイム

Slide 39

Slide 39 text

© Kakaku.com Inc. All Rights Reserved. 39 食べログでの品質と開発生産性の改善事例 ①インプロセスQAによる改善 ②自動化による改善 ③自動化による軽減 デプロイの 頻度 変更の リードタイム 変更障害率 サービス 復元時間 修正開発 案件率 テストデータ 資産化率 Four Keys QA ブロック率 開発生産性 インシデント 件数 テストデータ 準備 リードタイム テスト環境 修正 リードタイム テスト実行 リードタイム テスト 自動化率 品質 QAブロック率

Slide 40

Slide 40 text

© Kakaku.com Inc. All Rights Reserved. 40 ③自動化によるQAブロック率の軽減: 概要 課題と指標の関係 ・環境トラブルが原因でテストを中断 (QAブロック) ・QAブロック率が高くなるとリードタイムが悪化 解決策 ・Nightly buildでQAブロックを早期発見 ・イネーブリングチームとして 解決のアクションを実施 テストを中断 リードタイムの悪化 開発生産性 指標構造 変更の リードタイム QA ブロック率 テスト環境 修正 リードタイム

Slide 41

Slide 41 text

© Kakaku.com Inc. All Rights Reserved. 41 ③自動化によるQAブロック率の軽減: QAブロックを引き起こす原因 環境トラブル 例 • DBスキーマ更新漏れによるサーバーエラー • バッチが止まっていてデータがおかしくなっていた 解決策:Nightly build 毎日スモークテストを実行することで、コード変更による環境トラブルに早期に気づける 原因 バグ団 テスト開始時に全ての環境トラブルを検知・解消できていない 問題 テスト実施途中で環境トラブルが発生→ テスト実施中断

Slide 42

Slide 42 text

© Kakaku.com Inc. All Rights Reserved. 42 ③自動化によるQAブロック率の軽減: 解決策 NightlyBuild導入の鍵はイネーブリングチーム Nightly Build導入の鍵 Platformチームとして基盤を提供するだけでなく Enablingチームとして使ってもらってから出た課題をすぐに修正 ①インプロセスQAからのFBを受けに行く ②FBに対してすぐに修正する 具体的な修正内容 ・Nightly Build結果確認方法の改善 ・通知フォーマットの改善

Slide 43

Slide 43 text

© Kakaku.com Inc. All Rights Reserved. 43 ③自動化によるQAブロック率の軽減: 解決策 - FBをもらいすぐに修正 事例1 1. Nightly Buildのパイプラインを探す 2. 結果レポートを確認 毎朝チャットツールを見に行くだけでよい(①) AsIs ToBe Nightly Build - 結果確認方法の改善 FB 結果を見に行くのが大変 ぱっと見で分かりにくい SET 改善しました!! ①チャットツールに通知 ②結果はシンプルに 成功シナリオ数を記載 ③レポートへのリンクを記載 ② ③

Slide 44

Slide 44 text

© Kakaku.com Inc. All Rights Reserved. 44 ③自動化によるQAブロック率の軽減: 解決策 - FBをもらいすぐに修正 事例2 AsIs ToBe Nightly Build - 通知フォーマットの改善 FB これはどの環境に対しての Nightly Build? レポートを見ないと分からない 改善しました!! 環境名を Nightly Build実行結果の 通知フォーマットに追加! どの環境に対するNightly Buildか、一目で分かる どの環境に対するNightly Buildか、情報がない SET

Slide 45

Slide 45 text

© Kakaku.com Inc. All Rights Reserved. 45 ③自動化によるQAブロック率の軽減: 解決策 NightlyBuild導入の鍵はイネーブリングチーム Nightly Build導入の鍵 Platformチームとして基盤を提供するだけでなく Enablingチームとして使ってもらってから出た課題をすぐに修正 ①インプロセスQAからのFBを受けに行く ②FBに対してすぐに修正する 具体的な修正内容 ・Nightly Build結果確認方法の改善 ・通知フォーマットの改善 QAブロックを発見してからすぐに解決の アクションを起こすためのFBが 実際に使ってもらってから得られた →これらの修正の結果、QAブロックを 1日以内で解決できることが増えた QAブロック率 Nightly Build 導入後 Nightly Build 導入前 83% 33% 100%

Slide 46

Slide 46 text

© Kakaku.com Inc. All Rights Reserved. 46 ③自動化によるQAブロック率の軽減: 結果 指標の変化 • テスト環境修正リードタイム改善 • QAブロック率改善 QAブロック率 解決に1日以上時間を要したQAブロック数 プロジェクトで発生したQAブロックの総数 = テスト環境修正のリードタイム改善 プロジェクトA プロジェクトB QAブロック率改善 QAブロック率の定義 QAブロック率 Nightly Build 導入後 Nightly Build 導入前 83% 33% 開発生産性 指標構造 変更の リードタイム QA ブロック率 テスト環境 修正 リードタイム 100%

Slide 47

Slide 47 text

© Kakaku.com Inc. All Rights Reserved. 47 食べログでの品質と開発生産性の改善事例:まとめ ①インプロセスQAによる改善 ②自動化による改善 ③自動化による軽減 デプロイの 頻度 変更の リードタイム 変更障害率 サービス 復元時間 修正開発 案件率 テストデータ 資産化率 Four Keys QA ブロック率 開発生産性 インシデント 件数 テストデータ 準備 リードタイム テスト環境 修正 リードタイム テスト実行 リードタイム テスト 自動化率 品質 QAブロック率

Slide 48

Slide 48 text

© Kakaku.com Inc. All Rights Reserved. 1. 背景と品質管理室の取り組みの指標構造 (5分) 2. 指標改善のためのインプロセスQAとテスト自動化(5分) 3. 食べログでの品質と開発生産性の改善事例(27分) 品質改善の事例: インシデント件数の改善 開発生産性の事例①:テストデータ資産化率の改善 開発生産性の事例②:QAブロック率の改善 4.今後の展望(2分) 5.まとめ (1分) 48 アジェンダ

Slide 49

Slide 49 text

© Kakaku.com Inc. All Rights Reserved. 49 今後の展望 自動化 プロセス トヨタ 生産方式 TQC QC活動 ソフトウェア オブジェクト パターン スクラム XP リーン 継続的デリバリー パイプライン 自動化 受け入れ テスト自動化 クラウド IaC DevOps 開発生産性 AIなど 製造業の生産/品質管理からアジャイル開発の開発生産性への流れ 製造業の 生産/品質管理 アジャイル開発の 開発生産性 アジャイルとDevOpsの品質保証と信頼性, 日本信頼性学会論文誌, Vol.42, No.2, 2020年3月号 に掲載したアジャイルの歴史についての図の2024年改訂版 今後、AIを活用した開発生産性の改善が本格化する

Slide 50

Slide 50 text

© Kakaku.com Inc. All Rights Reserved. 50 生成AIによる開発生産性改善の全社的な取り組み Dify Meetup Tokyo #1より引用 ・カカクコムでは全社的な生成AIの導入と 生成AIコミュニティの支援を始めています。 https://dify.connpass.com/event/321961/ 6/23(日)に開催した Dify Meetup Tokyo #1の様子

Slide 51

Slide 51 text

© Kakaku.com Inc. All Rights Reserved. 51 生成AIによるテスト自動化の変化への期待 As Is: テスト実行が自動化のメイン To Be: テスト要求分析やテスト終了作業が自動化のメインへ アジャイルもテスト自動化も当たり前?! ~AIがテスト設計をする日が来るかも~より ・QA4AI ・アジャイルSQC研究会 ・Dify Community (JP) などの技術コミュニティでぜひ一緒に取り組んでいきましょう!

Slide 52

Slide 52 text

© Kakaku.com Inc. All Rights Reserved. 1. 背景と品質管理室の取り組みの指標構造 (5分) 2. 指標改善のためのインプロセスQAとテスト自動化(5分) 3. 食べログでの品質と開発生産性の改善事例(27分) 品質改善の事例: インシデント件数の改善 開発生産性の事例①:テストデータ資産化率の改善 開発生産性の事例②:QAブロック率の改善 4.今後の展望(2分) 5.まとめ (1分) 52 アジェンダ

Slide 53

Slide 53 text

© Kakaku.com Inc. All Rights Reserved. 53 まとめ:1/2 デプロイの 頻度 変更の リードタイム 変更障害率 サービス 復元時間 Four Keys 開発生産性 品質 疑問:品質と開発生産性はトレードオフ? →200人程度の規模の食べログの開発組織の中で 品質管理室を3年前から立ち上げ、実施してきた取り組み

Slide 54

Slide 54 text

© Kakaku.com Inc. All Rights Reserved. 54 まとめ:2/2 食べログでの取り組み ・品質と開発生産性を 改善するための指標を 構造化 ・それらの指標を -インプロセスQA -テスト自動化 で改善 食べログでの改善事例 ・インシデント件数 ・テストデータ資産化率 ・QAブロック率