Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
DeNAの取り組むテストエンジニアリング
Search
Kunio Okita
February 10, 2017
Technology
5
13k
DeNAの取り組むテストエンジニアリング
DeNA TechCon 2017
https://techcon.dena.com/
Kunio Okita
February 10, 2017
Tweet
Share
More Decks by Kunio Okita
See All by Kunio Okita
DeNA品質管理部を支えるカルチャーと取り組み
okitan
0
840
VCRを更新するPRが自動で飛ぶ世界で気をつけたこと
okitan
1
380
microservicesにおけるAPI自動テストにまつわるエトセトラ
okitan
12
5.2k
SWETの現在とこれから
okitan
3
7.7k
Other Decks in Technology
See All in Technology
AIエージェント時代のエンジニアになろう #jawsug #jawsdays2025 / 20250301 Agentic AI Engineering
yoshidashingo
8
3.9k
クラウド食堂とは?
hiyanger
0
120
AWS Well-Architected Frameworkで学ぶAmazon ECSのセキュリティ対策
umekou
2
150
1行のコードから社会課題の解決へ: EMの探究、事業・技術・組織を紡ぐ実践知 / EM Conf 2025
9ma3r
12
4.4k
株式会社Awarefy(アウェアファイ)会社説明資料 / Awarefy-Company-Deck
awarefy
3
11k
遷移の高速化 ヤフートップの試行錯誤
narirou
6
1.8k
アジャイルな開発チームでテスト戦略の話は誰がする? / Who Talks About Test Strategy?
ak1210
1
660
事業モメンタムを生み出すプロダクト開発
macchiitaka
0
100
Snowflakeの開発・運用コストをApache Icebergで効率化しよう!~機能と活用例のご紹介~
sagara
1
500
フォーイット_エンジニア向け会社紹介資料_Forit_Company_Profile.pdf
forit_tech
1
1.7k
いまからでも遅くない!コンテナでWebアプリを動かしてみよう!コンテナハンズオン編
nomu
0
170
IAMのマニアックな話2025
nrinetcom
PRO
6
1.3k
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.5k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Building Adaptive Systems
keathley
40
2.4k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.1k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
134
33k
The Cost Of JavaScript in 2023
addyosmani
47
7.4k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Code Review Best Practice
trishagee
67
18k
Adopting Sorbet at Scale
ufuk
75
9.2k
Mobile First: as difficult as doing things right
swwweet
223
9.5k
Transcript
Copyright © DeNA Co.,Ltd. All Rights Reserved. DeNAの取り組む テストエンジニアリング Feb
10, 2017 Kunio Okita (@okitan) SWET(So=ware Engineer in Test) Group DeNA Co., Ltd. DeNA TechCon 2017
Copyright © DeNA Co.,Ltd. All Rights Reserved. ⾃⼰紹介 ! 沖⽥
邦夫 ! @okitan ! Test Engineers Meetup 主催 ! 第2回開催予定(3/7) ! Developers Summitコンテンツ委員 ! ⽇本Seleniumユーザコミュニティ ! Selenium実践⼊⾨ ! ようやく増刷しました 2
Copyright © DeNA Co.,Ltd. All Rights Reserved. SWET 3
Copyright © DeNA Co.,Ltd. All Rights Reserved. SoftWare Engineer in
Test 4
Copyright © DeNA Co.,Ltd. All Rights Reserved. DeNA TechConf 2016
! DeNAが取り組む Software Engineer in Test ! http://www.slideshare.net/masaki/dena-software- engineer-in-test ! SWETとは ! SWETの過去・現在・そして未来 ! 組織とその取り組みがどう広がってきたかの話 5
Copyright © DeNA Co.,Ltd. All Rights Reserved. DeNA TechConf 2017
! DeNAの取り組むテストエンジニアリング ! SWETの技術・スキル ! それを活かす体制 ! を中⼼に話していきたい ! さらに、⼀歩先のテストエンジニアリングの取り組み 6
Copyright © DeNA Co.,Ltd. All Rights Reserved. Agenda ! SWETの技術・スキルそれを⽀える体制
! ⼀歩先のテストエンジニアリングへの取り組み 7
Copyright © DeNA Co.,Ltd. All Rights Reserved. SWETのスキル とそれを活かす体制 8
Copyright © DeNA Co.,Ltd. All Rights Reserved. まずはSWETのおさらいから 9
Copyright © DeNA Co.,Ltd. All Rights Reserved. SWETのミッション・ステートメント ! ソフトウェアテストを起点とした
1. プロダクト・サービスの品質向上 2. エンジニアの開発⽣産性向上 ! 価値のあるものを素早く提供できるように 10
Copyright © DeNA Co.,Ltd. All Rights Reserved. 現在のSWETグループの体制 11
Copyright © DeNA Co.,Ltd. All Rights Reserved. 現在のSWETグループの体制 ! 事業サポート系チーム
! ざっくりいうと深さ担当 ! テスト基盤チーム ! ざっくりいうと広さ担当 12
Copyright © DeNA Co.,Ltd. All Rights Reserved. 深さの事業サポート ! 深さとは
! 事業状況を踏まえた品質基準を決められること ! 事業リスク ! 技術的リスク ! だけでなく ! 事業部の品質的なコミットメントを引き出せること 13
Copyright © DeNA Co.,Ltd. All Rights Reserved. 事業部の品質的なコミットメントを引き出す ! 品質を⾃分ごととして捉えられるように
! よくありがちな検証はQAにおまかせにはさせない ! 継続的な改善活動の推進 ! 検証・障碍・お問い合わせからのフィードバック ! メトリクスの測定と監視 ! 開発プロセスの最適化 ! ⾃動化による改善 14
Copyright © DeNA Co.,Ltd. All Rights Reserved. 広さのテスト基盤 ! 事業サポートで必要な広範な技術をきちんとおさえる
! ライブラリやフレームワークのウォッチ ! ピンポイントで事業サポートとして動く ! 共通的に必要なサービスの開発 ! CircleCIの導⼊ ! STFのトライアル ! ⼀歩先を⾏くテストエンジニアリング 15
Copyright © DeNA Co.,Ltd. All Rights Reserved. 現在のSWETグループの体制 16
Copyright © DeNA Co.,Ltd. All Rights Reserved. DeNAの事業の特⻑ ! どんどん新しい事業領域に進出
! インターネットを通してサービスを提供 ! サービスを改善していくことに強み 17
Copyright © DeNA Co.,Ltd. All Rights Reserved. サービスの改善を下⽀えする ! 事業の段階・状況に応じて
! スピード(D) ! 品質(Q) のちょうどいいバランスを狙う ! ちょうどいいはちょうむずい ! ちょうどいいを続けていくための⼀貫した様々な仕組みが必要 ! 可視化 ! フィードバック 18
Copyright © DeNA Co.,Ltd. All Rights Reserved. 統合テスト設計 コンポーネント テスト設計
システムテスト設計 要求分析 機能設計 詳細設計 実装 コンポーネント テスト 統合テスト 受け入れテスト 基本設計 システムテスト ⼀般的なWモデルでの開発サイクル
Copyright © DeNA Co.,Ltd. All Rights Reserved. 統合テスト設計 コンポーネント テスト設計
システムテスト設計 要求分析 機能設計 詳細設計 実装 コンポーネント テスト 統合テスト 受け入れテスト 基本設計 システムテスト * リスク分析 * 品質特性への落とし込み * テストアーキテクチャ設計 * 要求追加・基本設計へのFB * テストコーチ * モデル検査 * CI/CD構築 * テスト対象分析 * テスタビリティ確保 * システムテスト自動化 * 非機能テスト準備 開発サイクルそれぞれで何を作り込むか
Copyright © DeNA Co.,Ltd. All Rights Reserved. ⼀貫したフィードバックと計測のパイプライン ! 品質を作りこむうえで
! 計測され可視化されていることが重要 ! フィードバックまで⾃動化されていてことが⼤事 ! デリバリーパイプラインをまずはきちんと構築する ! 最初は少ないメトリクス・フィードバックでよい ! その上で事業の状況と相談しつつ進めていく 21
Copyright © DeNA Co.,Ltd. All Rights Reserved. システムテスト 設計 統合テスト
設計 コンポーネント テスト設計 要求分析 基本設計 * リスク分析 * 品質特性への落とし込み * テストアーキテクチャ設計 * 要求追加基本設計へのFB * テストコーチ * モデル検査 * CI/CD構築 * テスト対象分析 * テスタビリティ確保 KPI 品質指 標 * 当たり前品質視点 * 全体スケジュール見直し 機能設計 * 曖昧な仕様の明確化 * 仕様バグ検出 * テスタビリティ確保 詳細設計 実装 コンポーネント テスト コード メトリクス 統合テスト * 実装の誤り検出 * 実装の負債検出 * レビュー効率化 プロジェクト メトリクス システムテスト リリース CI/CD ⼀貫したフィードバックと計測のパイプライン
Copyright © DeNA Co.,Ltd. All Rights Reserved. 今後のデリバリーパイプラインの展望 ! これまで
! Jenkinsになんでもやらせすぎ問題 ! Jenkinsおじさん問題 ! プラグイン地獄 ! これから ! 特化した付加価値を提供する「サービス」をつなぎあわせ る ! パイプラインを簡単に記述できる ! 各種サービスの設定をうまくマネージできる 23
Copyright © DeNA Co.,Ltd. All Rights Reserved. ここまでのまとめ ! SWETの技術・スキル・それを⽀える体制
! 品質作り込み・計測のパイプライン構築を基本とする ! 可視化 ! フィードバック ! 事業の状況にあわせてパイプラインを拡張 ! 品質作り込みのサービス化 24
Copyright © DeNA Co.,Ltd. All Rights Reserved. Agenda ! SWETの技術・スキルそれを⽀える体制
! ⼀歩先のテストエンジニアリングへの取り組み 25
Copyright © DeNA Co.,Ltd. All Rights Reserved. ⼀歩先の テストエンジニアリングへの 取り組み
26
Copyright © DeNA Co.,Ltd. All Rights Reserved. そのまえに取り組みの⽅針 27
Copyright © DeNA Co.,Ltd. All Rights Reserved. システムテスト 設計 統合テスト
設計 コンポーネント テスト設計 要求分析 基本設計 * リスク分析 * 品質特性への落とし込み * テストアーキテクチャ設計 * 要求追加基本設計へのFB * テストコーチ * モデル検査 * CI/CD構築 * テスト対象分析 * テスタビリティ確保 KPI 品質指 標 * 当たり前品質視点 * 全体スケジュール見直し 機能設計 * 曖昧な仕様の明確化 * 仕様バグ検出 * テスタビリティ確保 詳細設計 実装 コンポーネント テスト コード メトリクス 統合テスト * 実装の誤り検出 * 実装の負債検出 * レビュー効率化 プロジェクト メトリクス システムテスト リリース CI/CD 基本のデリバリーパイプライン
Copyright © DeNA Co.,Ltd. All Rights Reserved. デリバリーパイプラインの促進 ! パイプラインを⾼度化していきたい
! 多くのサービスとつなぎこみたい ! パイプラインを簡単に始めたい ! システムテスト⾃動化を簡単にしたい 29
Copyright © DeNA Co.,Ltd. All Rights Reserved. ⼀歩先のテストエンジニアリング ! 外部環境変化をトリガーとするパイプライン実⾏
! ライブラリバージョンアップ検知サービスの開発 ! パイプラインの最初の⼀歩のサポート ! 単純なシステム統合テストの⾃動化 ! ⾃動テストの省⼒化 ! AI利⽤による⾃動化の⾼精度化 30
Copyright © DeNA Co.,Ltd. All Rights Reserved. ⼀歩先のテストエンジニアリング ! 外部環境変化をトリガーとするパイプライン実⾏
! ライブラリバージョンアップ検知サービスの開発 ! パイプラインの最初の⼀歩のサポート ! 単純なシステム統合テストの⾃動化 ! ⾃動テストの省⼒化 ! AI利⽤による⾃動化の⾼精度化 31
Copyright © DeNA Co.,Ltd. All Rights Reserved. 外部環境の変化に伴うリスク ! 外部サービス連携がいつのまにか動かなく。。
! 利⽤ライブラリ・ツールのバージョンあげたら動かなく。。 ! 特にモバイルアプリ周り 32
Copyright © DeNA Co.,Ltd. All Rights Reserved. モバイルアプリのツール・ライブラリ状況 ! 進化が早く・たまに動かなくなることがある
! 強制的にバージョンアップが必須なことも ! 放置しておくと負債がすぐ⼤きくなるのに、 ! 都度対応するにはコストが⼤きい 33
Copyright © DeNA Co.,Ltd. All Rights Reserved. やりたいこと ! ツールのバージョンアップを素早くキャッチアップできる
! マイナーなのかメジャーなのか ! CHANGELOG ! ⼈間がPullしにいくのではなくPushされる ! バージョンあげられそうかどうかトリアージ ! 標準的なプロジェクト構成でバージョンをあげてビルドしてみる ! あげられそうだったら実プロダクトに展開する 34
Copyright © DeNA Co.,Ltd. All Rights Reserved. マスティフ (バージョンアップ監視) 35
Copyright © DeNA Co.,Ltd. All Rights Reserved. マスティフ (バージョンアップ監視) 36
Copyright © DeNA Co.,Ltd. All Rights Reserved. マスティフ (バージョンアップ監視) !
外部環境のリスクとうまくやっていけるようになる ! リスクを⾒積もれ対応計画をたてられる ! 個別プロジェクトに閉じがちなノウハウが共有できる ! 横串ではまり率やはまったときの事例等を収集 ! 計測とフィードバックをもとによりよいサービスにしていける ! http://www.slideshare.net/tarappo/ss-71179542 37
Copyright © DeNA Co.,Ltd. All Rights Reserved. ⼀歩先のテストエンジニアリング ! 外部環境変化をトリガーとするパイプライン実⾏
! ライブラリバージョンアップ検知サービスの開発 ! パイプラインの最初の⼀歩のサポート ! 単純なシステム統合テストの⾃動化 ! ⾃動テストの省⼒化 ! AI利⽤による⾃動化の⾼精度化 38
Copyright © DeNA Co.,Ltd. All Rights Reserved. システムテスト 設計 統合テスト
設計 コンポーネント テスト設計 要求分析 基本設計 * リスク分析 * 品質特性への落とし込み * テストアーキテクチャ設計 * 要求追加基本設計へのFB * テストコーチ * モデル検査 * CI/CD構築 * テスト対象分析 * テスタビリティ確保 KPI 品質指 標 * 当たり前品質視点 * 全体スケジュール見直し 機能設計 * 曖昧な仕様の明確化 * 仕様バグ検出 * テスタビリティ確保 詳細設計 実装 コンポーネント テスト コード メトリクス 統合テスト * 実装の誤り検出 * 実装の負債検出 * レビュー効率化 プロジェクト メトリクス システムテスト リリース CI/CD パイプライン推進の課題
Copyright © DeNA Co.,Ltd. All Rights Reserved. パイプラインの課題 デプロイの正当性を確認するフェーズが難易度⾼い !
Microservices (API) ! スタブなしにAPIを叩くテスト ! Webアプリケーション ! ブラウザでアクセスするテスト ! モバイルアプリ ! モバイルアプリをデバイス上で起動するテスト 40
Copyright © DeNA Co.,Ltd. All Rights Reserved. システム統合テストは⼤変 ! 開発者が利⽤する技術に慣れていない
! 特にブラウザ・実機の⾃動操作 ! テスト実⾏結果が不安定 ! ⾮同期との戦い ! メンテナンスが⼤変 ! 変更への追従 ! テストデータのマネージメント 41
Copyright © DeNA Co.,Ltd. All Rights Reserved. ⼤変なシステム統合テストをカンタンに ! 最初の⼀歩をカンタンにする
! メンテナンスもできるかぎり不要にする ! API⾃動テスト ! 仕様を記述することで単純な⾃動テストを⾃動⽣成 ! Webアプリケーション・モバイルアプリケーション ! クローラによる探索による⾃動チェッキング 42
Copyright © DeNA Co.,Ltd. All Rights Reserved. 単純なAPIテストの⾃動⽣成 ! スキーマ記述⾔語から⾃動⽣成
! JSON ShemaやOpenAPI specification等 ! ⾃動⽣成(スキーマ更新に追従) ! ハッピーパスのテストケース ! デフォルトパラメータ ! 正常系テストケース ! レスポンスマッチャ 43
Copyright © DeNA Co.,Ltd. All Rights Reserved. クローラの探索による⾃動チェッキング ! Webアプリケーション・モバイル・アプリケーション
! エントリーポイントからはUIによってリンクされている ! リンクを辿っていけばある程度網羅できる ! アプリケーションステートの変化には対応しない割り切り ! 以下を記録し時間変化をチェックする ! エンドポイントからエンドポイントへのパス ! 画⾯のスナップショット 44
Copyright © DeNA Co.,Ltd. All Rights Reserved. ⼀歩先のテストエンジニアリング ! 外部環境変化をトリガーとするパイプライン実⾏
! ライブラリバージョンアップ検知サービスの開発 ! パイプラインの最初の⼀歩のサポート ! 単純なシステム統合テストの⾃動化 ! ⾃動テストの省⼒化 ! AI利⽤による⾃動化の⾼精度化 45
Copyright © DeNA Co.,Ltd. All Rights Reserved. AIを利⽤したE2Eテスト⾃動化の⾼精度化 ! これまでのE2Eテストの⾃動化
! ひとことでいうと泥臭さのかたまり ! たとえば ! ⾮同期への対応 ! 待ち時間の微調整 ! 失敗時のリトライ ! 前提条件の微妙な違いによる分岐 ! 初回実⾏時だけ出るダイアログへの対応 46
Copyright © DeNA Co.,Ltd. All Rights Reserved. AIの利⽤ ! ⾃動化の際にも、作り込まずに⼈間のように対応させたい
! たとえば ! ⻑くかかることがわかっているところは⻑く待ってほしい ! 途中で⽌まってそうだったらさっさとNG出してほしい ! 失敗してリトライボタン出てたら⾃動でリトライしてほしい ! OSが出すようなダイアログ出て⽌まってたら押してほしい ! ログボは受け取っておいてほしい 47
Copyright © DeNA Co.,Ltd. All Rights Reserved. まずは学習基盤の整備から ! 当然学習データがないと何もしてくれない
! 先⽴つものが必要 ! テスト結果収集基盤を開発中 ! ⾃動テスト実⾏時のエビデンスとして保存 ! ⼿動テストの裏で収集 ! テストを24時間動かしてどんどんためていく ! ⾃動テストの⾃動化 48
Copyright © DeNA Co.,Ltd. All Rights Reserved. まとめ ! SWETの技術・スキルそれを⽀える体制
! 品質作り込み・計測のパイプライン構築を基本とする ! 事業の状況にあわせてパイプラインを拡張 ! 品質作り込みのサービス化 ! ⼀歩先のテストエンジニアリングへの取り組み ! サービス化とその組み合わせ ! パイプラインの最初の⼀歩を簡単に ! ⼀歩踏み出せばそれを加速するAIの活⽤ 49
Copyright © DeNA Co.,Ltd. All Rights Reserved. ご清聴ありがとうございました 50