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
900
VCRを更新するPRが自動で飛ぶ世界で気をつけたこと
okitan
1
420
microservicesにおけるAPI自動テストにまつわるエトセトラ
okitan
12
5.3k
SWETの現在とこれから
okitan
3
7.8k
Other Decks in Technology
See All in Technology
AI時代の知識創造 ─GeminiとSECIモデルで読み解く “暗黙知”と創造の境界線
nyagasan
0
180
少人数でも回る! DevinとPlaybookで支える運用改善
ishikawa_pro
5
2k
隙間時間で爆速開発! Claude Code × Vibe Coding で作るマニュアル自動生成サービス
akitomonam
2
240
Bet "Bet AI" - Accelerating Our AI Journey #BetAIDay
layerx
PRO
3
760
人に寄り添うAIエージェントとアーキテクチャ #BetAIDay
layerx
PRO
2
580
robocopy の怖い話/scary-story-about-robocopy
emiki
0
420
マルチモーダル基盤モデルに基づく動画と音の解析技術
lycorptech_jp
PRO
3
360
AI によるドキュメント処理を加速するためのOCR 結果の永続化と再利用戦略
tomoaki25
0
260
From Live Coding to Vibe Coding with Firebase Studio
firebasethailand
1
340
Kiroから考える AIコーディングツールの潮流
s4yuba
3
570
風が吹けばWHOISが使えなくなる~なぜWHOIS・RDAPはサーバー証明書のメール認証に使えなくなったのか~
orangemorishita
11
3.7k
モバイルゲームの開発を支える基盤の歩み ~再現性のある開発ラインを量産する秘訣~
qualiarts
0
950
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.5k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1k
What's in a price? How to price your products and services
michaelherold
246
12k
How to train your dragon (web standard)
notwaldorf
96
6.1k
Optimizing for Happiness
mojombo
379
70k
The Invisible Side of Design
smashingmag
301
51k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Git: the NoSQL Database
bkeepers
PRO
431
65k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
KATA
mclloyd
31
14k
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