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
690
VCRを更新するPRが自動で飛ぶ世界で気をつけたこと
okitan
1
300
microservicesにおけるAPI自動テストにまつわるエトセトラ
okitan
12
5.1k
SWETの現在とこれから
okitan
3
7.6k
Other Decks in Technology
See All in Technology
[I/O Extended Android 2024] What`s new in Android 2024
kyeongwan
0
220
AWSサービスメニュー開発をしていてAWSを好きだ!と感じた瞬間
toru_kubota
0
130
地理情報とAPIのトレンド
nagix
0
160
LINE WORKSへ簡単通知!Incoming Webhookアプリの紹介
mmclsntr
0
110
20240717_イケコパ代表Copilot_in_Teams会社でこう使ってます
ponponmikankan
2
430
20240725 LLMによるDXのビジョンと、今何からやるべきか @Azure OpenAI Service Dev Day
nrryuya
3
1.2k
ギークの理想が7つ集まるエムスリーで夢を叶えよう - エムスリー株式会社
m3_engineering
1
260
JBUG岡山 #6 WordCamp男木島の チームビルディング
takeshifurusato
0
150
たくさん本を読んだけど 1年後には綺麗サッパリ!を乗り越えて 学習の鬼になるぞ👹
yum3
0
160
RAGのサービスをリリースして1年3ヶ月が経ちました
segavvy
4
950
ソフトウェアエンジニアリングの知見を活かして データ基盤をいい感じにする on Snowflake [MIERUNE BBQ #10]
mtpooh
2
150
シフトレフトで挑む セキュリティの生産性向上
sekido
PRO
0
270
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
149
45k
Mobile First: as difficult as doing things right
swwweet
219
8.8k
Documentation Writing (for coders)
carmenintech
63
4.2k
How to Ace a Technical Interview
jacobian
274
23k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
129
32k
Embracing the Ebb and Flow
colly
81
4.3k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
44
4.7k
How GitHub Uses GitHub to Build GitHub
holman
471
290k
The MySQL Ecosystem @ GitHub 2015
samlambert
248
12k
Web Components: a chance to create the future
zenorocha
307
41k
KATA
mclloyd
20
13k
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