Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
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
Slide 2
Slide 2 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. ⾃⼰紹介 ! 沖⽥ 邦夫 ! @okitan ! Test Engineers Meetup 主催 ! 第2回開催予定(3/7) ! Developers Summitコンテンツ委員 ! ⽇本Seleniumユーザコミュニティ ! Selenium実践⼊⾨ ! ようやく増刷しました 2
Slide 3
Slide 3 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. SWET 3
Slide 4
Slide 4 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. SoftWare Engineer in Test 4
Slide 5
Slide 5 text
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
Slide 6
Slide 6 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. DeNA TechConf 2017 ! DeNAの取り組むテストエンジニアリング ! SWETの技術・スキル ! それを活かす体制 ! を中⼼に話していきたい ! さらに、⼀歩先のテストエンジニアリングの取り組み 6
Slide 7
Slide 7 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. Agenda ! SWETの技術・スキルそれを⽀える体制 ! ⼀歩先のテストエンジニアリングへの取り組み 7
Slide 8
Slide 8 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. SWETのスキル とそれを活かす体制 8
Slide 9
Slide 9 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. まずはSWETのおさらいから 9
Slide 10
Slide 10 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. SWETのミッション・ステートメント ! ソフトウェアテストを起点とした 1. プロダクト・サービスの品質向上 2. エンジニアの開発⽣産性向上 ! 価値のあるものを素早く提供できるように 10
Slide 11
Slide 11 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. 現在のSWETグループの体制 11
Slide 12
Slide 12 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. 現在のSWETグループの体制 ! 事業サポート系チーム ! ざっくりいうと深さ担当 ! テスト基盤チーム ! ざっくりいうと広さ担当 12
Slide 13
Slide 13 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. 深さの事業サポート ! 深さとは ! 事業状況を踏まえた品質基準を決められること ! 事業リスク ! 技術的リスク ! だけでなく ! 事業部の品質的なコミットメントを引き出せること 13
Slide 14
Slide 14 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. 事業部の品質的なコミットメントを引き出す ! 品質を⾃分ごととして捉えられるように ! よくありがちな検証はQAにおまかせにはさせない ! 継続的な改善活動の推進 ! 検証・障碍・お問い合わせからのフィードバック ! メトリクスの測定と監視 ! 開発プロセスの最適化 ! ⾃動化による改善 14
Slide 15
Slide 15 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. 広さのテスト基盤 ! 事業サポートで必要な広範な技術をきちんとおさえる ! ライブラリやフレームワークのウォッチ ! ピンポイントで事業サポートとして動く ! 共通的に必要なサービスの開発 ! CircleCIの導⼊ ! STFのトライアル ! ⼀歩先を⾏くテストエンジニアリング 15
Slide 16
Slide 16 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. 現在のSWETグループの体制 16
Slide 17
Slide 17 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. DeNAの事業の特⻑ ! どんどん新しい事業領域に進出 ! インターネットを通してサービスを提供 ! サービスを改善していくことに強み 17
Slide 18
Slide 18 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. サービスの改善を下⽀えする ! 事業の段階・状況に応じて ! スピード(D) ! 品質(Q) のちょうどいいバランスを狙う ! ちょうどいいはちょうむずい ! ちょうどいいを続けていくための⼀貫した様々な仕組みが必要 ! 可視化 ! フィードバック 18
Slide 19
Slide 19 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. 統合テスト設計 コンポーネント テスト設計 システムテスト設計 要求分析 機能設計 詳細設計 実装 コンポーネント テスト 統合テスト 受け入れテスト 基本設計 システムテスト ⼀般的なWモデルでの開発サイクル
Slide 20
Slide 20 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. 統合テスト設計 コンポーネント テスト設計 システムテスト設計 要求分析 機能設計 詳細設計 実装 コンポーネント テスト 統合テスト 受け入れテスト 基本設計 システムテスト * リスク分析 * 品質特性への落とし込み * テストアーキテクチャ設計 * 要求追加・基本設計へのFB * テストコーチ * モデル検査 * CI/CD構築 * テスト対象分析 * テスタビリティ確保 * システムテスト自動化 * 非機能テスト準備 開発サイクルそれぞれで何を作り込むか
Slide 21
Slide 21 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. ⼀貫したフィードバックと計測のパイプライン ! 品質を作りこむうえで ! 計測され可視化されていることが重要 ! フィードバックまで⾃動化されていてことが⼤事 ! デリバリーパイプラインをまずはきちんと構築する ! 最初は少ないメトリクス・フィードバックでよい ! その上で事業の状況と相談しつつ進めていく 21
Slide 22
Slide 22 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. システムテスト 設計 統合テスト 設計 コンポーネント テスト設計 要求分析 基本設計 * リスク分析 * 品質特性への落とし込み * テストアーキテクチャ設計 * 要求追加基本設計へのFB * テストコーチ * モデル検査 * CI/CD構築 * テスト対象分析 * テスタビリティ確保 KPI 品質指 標 * 当たり前品質視点 * 全体スケジュール見直し 機能設計 * 曖昧な仕様の明確化 * 仕様バグ検出 * テスタビリティ確保 詳細設計 実装 コンポーネント テスト コード メトリクス 統合テスト * 実装の誤り検出 * 実装の負債検出 * レビュー効率化 プロジェクト メトリクス システムテスト リリース CI/CD ⼀貫したフィードバックと計測のパイプライン
Slide 23
Slide 23 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. 今後のデリバリーパイプラインの展望 ! これまで ! Jenkinsになんでもやらせすぎ問題 ! Jenkinsおじさん問題 ! プラグイン地獄 ! これから ! 特化した付加価値を提供する「サービス」をつなぎあわせ る ! パイプラインを簡単に記述できる ! 各種サービスの設定をうまくマネージできる 23
Slide 24
Slide 24 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. ここまでのまとめ ! SWETの技術・スキル・それを⽀える体制 ! 品質作り込み・計測のパイプライン構築を基本とする ! 可視化 ! フィードバック ! 事業の状況にあわせてパイプラインを拡張 ! 品質作り込みのサービス化 24
Slide 25
Slide 25 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. Agenda ! SWETの技術・スキルそれを⽀える体制 ! ⼀歩先のテストエンジニアリングへの取り組み 25
Slide 26
Slide 26 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. ⼀歩先の テストエンジニアリングへの 取り組み 26
Slide 27
Slide 27 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. そのまえに取り組みの⽅針 27
Slide 28
Slide 28 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. システムテスト 設計 統合テスト 設計 コンポーネント テスト設計 要求分析 基本設計 * リスク分析 * 品質特性への落とし込み * テストアーキテクチャ設計 * 要求追加基本設計へのFB * テストコーチ * モデル検査 * CI/CD構築 * テスト対象分析 * テスタビリティ確保 KPI 品質指 標 * 当たり前品質視点 * 全体スケジュール見直し 機能設計 * 曖昧な仕様の明確化 * 仕様バグ検出 * テスタビリティ確保 詳細設計 実装 コンポーネント テスト コード メトリクス 統合テスト * 実装の誤り検出 * 実装の負債検出 * レビュー効率化 プロジェクト メトリクス システムテスト リリース CI/CD 基本のデリバリーパイプライン
Slide 29
Slide 29 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. デリバリーパイプラインの促進 ! パイプラインを⾼度化していきたい ! 多くのサービスとつなぎこみたい ! パイプラインを簡単に始めたい ! システムテスト⾃動化を簡単にしたい 29
Slide 30
Slide 30 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. ⼀歩先のテストエンジニアリング ! 外部環境変化をトリガーとするパイプライン実⾏ ! ライブラリバージョンアップ検知サービスの開発 ! パイプラインの最初の⼀歩のサポート ! 単純なシステム統合テストの⾃動化 ! ⾃動テストの省⼒化 ! AI利⽤による⾃動化の⾼精度化 30
Slide 31
Slide 31 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. ⼀歩先のテストエンジニアリング ! 外部環境変化をトリガーとするパイプライン実⾏ ! ライブラリバージョンアップ検知サービスの開発 ! パイプラインの最初の⼀歩のサポート ! 単純なシステム統合テストの⾃動化 ! ⾃動テストの省⼒化 ! AI利⽤による⾃動化の⾼精度化 31
Slide 32
Slide 32 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. 外部環境の変化に伴うリスク ! 外部サービス連携がいつのまにか動かなく。。 ! 利⽤ライブラリ・ツールのバージョンあげたら動かなく。。 ! 特にモバイルアプリ周り 32
Slide 33
Slide 33 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. モバイルアプリのツール・ライブラリ状況 ! 進化が早く・たまに動かなくなることがある ! 強制的にバージョンアップが必須なことも ! 放置しておくと負債がすぐ⼤きくなるのに、 ! 都度対応するにはコストが⼤きい 33
Slide 34
Slide 34 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. やりたいこと ! ツールのバージョンアップを素早くキャッチアップできる ! マイナーなのかメジャーなのか ! CHANGELOG ! ⼈間がPullしにいくのではなくPushされる ! バージョンあげられそうかどうかトリアージ ! 標準的なプロジェクト構成でバージョンをあげてビルドしてみる ! あげられそうだったら実プロダクトに展開する 34
Slide 35
Slide 35 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. マスティフ (バージョンアップ監視) 35
Slide 36
Slide 36 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. マスティフ (バージョンアップ監視) 36
Slide 37
Slide 37 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. マスティフ (バージョンアップ監視) ! 外部環境のリスクとうまくやっていけるようになる ! リスクを⾒積もれ対応計画をたてられる ! 個別プロジェクトに閉じがちなノウハウが共有できる ! 横串ではまり率やはまったときの事例等を収集 ! 計測とフィードバックをもとによりよいサービスにしていける ! http://www.slideshare.net/tarappo/ss-71179542 37
Slide 38
Slide 38 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. ⼀歩先のテストエンジニアリング ! 外部環境変化をトリガーとするパイプライン実⾏ ! ライブラリバージョンアップ検知サービスの開発 ! パイプラインの最初の⼀歩のサポート ! 単純なシステム統合テストの⾃動化 ! ⾃動テストの省⼒化 ! AI利⽤による⾃動化の⾼精度化 38
Slide 39
Slide 39 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. システムテスト 設計 統合テスト 設計 コンポーネント テスト設計 要求分析 基本設計 * リスク分析 * 品質特性への落とし込み * テストアーキテクチャ設計 * 要求追加基本設計へのFB * テストコーチ * モデル検査 * CI/CD構築 * テスト対象分析 * テスタビリティ確保 KPI 品質指 標 * 当たり前品質視点 * 全体スケジュール見直し 機能設計 * 曖昧な仕様の明確化 * 仕様バグ検出 * テスタビリティ確保 詳細設計 実装 コンポーネント テスト コード メトリクス 統合テスト * 実装の誤り検出 * 実装の負債検出 * レビュー効率化 プロジェクト メトリクス システムテスト リリース CI/CD パイプライン推進の課題
Slide 40
Slide 40 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. パイプラインの課題 デプロイの正当性を確認するフェーズが難易度⾼い ! Microservices (API) ! スタブなしにAPIを叩くテスト ! Webアプリケーション ! ブラウザでアクセスするテスト ! モバイルアプリ ! モバイルアプリをデバイス上で起動するテスト 40
Slide 41
Slide 41 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. システム統合テストは⼤変 ! 開発者が利⽤する技術に慣れていない ! 特にブラウザ・実機の⾃動操作 ! テスト実⾏結果が不安定 ! ⾮同期との戦い ! メンテナンスが⼤変 ! 変更への追従 ! テストデータのマネージメント 41
Slide 42
Slide 42 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. ⼤変なシステム統合テストをカンタンに ! 最初の⼀歩をカンタンにする ! メンテナンスもできるかぎり不要にする ! API⾃動テスト ! 仕様を記述することで単純な⾃動テストを⾃動⽣成 ! Webアプリケーション・モバイルアプリケーション ! クローラによる探索による⾃動チェッキング 42
Slide 43
Slide 43 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. 単純なAPIテストの⾃動⽣成 ! スキーマ記述⾔語から⾃動⽣成 ! JSON ShemaやOpenAPI specification等 ! ⾃動⽣成(スキーマ更新に追従) ! ハッピーパスのテストケース ! デフォルトパラメータ ! 正常系テストケース ! レスポンスマッチャ 43
Slide 44
Slide 44 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. クローラの探索による⾃動チェッキング ! Webアプリケーション・モバイル・アプリケーション ! エントリーポイントからはUIによってリンクされている ! リンクを辿っていけばある程度網羅できる ! アプリケーションステートの変化には対応しない割り切り ! 以下を記録し時間変化をチェックする ! エンドポイントからエンドポイントへのパス ! 画⾯のスナップショット 44
Slide 45
Slide 45 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. ⼀歩先のテストエンジニアリング ! 外部環境変化をトリガーとするパイプライン実⾏ ! ライブラリバージョンアップ検知サービスの開発 ! パイプラインの最初の⼀歩のサポート ! 単純なシステム統合テストの⾃動化 ! ⾃動テストの省⼒化 ! AI利⽤による⾃動化の⾼精度化 45
Slide 46
Slide 46 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. AIを利⽤したE2Eテスト⾃動化の⾼精度化 ! これまでのE2Eテストの⾃動化 ! ひとことでいうと泥臭さのかたまり ! たとえば ! ⾮同期への対応 ! 待ち時間の微調整 ! 失敗時のリトライ ! 前提条件の微妙な違いによる分岐 ! 初回実⾏時だけ出るダイアログへの対応 46
Slide 47
Slide 47 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. AIの利⽤ ! ⾃動化の際にも、作り込まずに⼈間のように対応させたい ! たとえば ! ⻑くかかることがわかっているところは⻑く待ってほしい ! 途中で⽌まってそうだったらさっさとNG出してほしい ! 失敗してリトライボタン出てたら⾃動でリトライしてほしい ! OSが出すようなダイアログ出て⽌まってたら押してほしい ! ログボは受け取っておいてほしい 47
Slide 48
Slide 48 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. まずは学習基盤の整備から ! 当然学習データがないと何もしてくれない ! 先⽴つものが必要 ! テスト結果収集基盤を開発中 ! ⾃動テスト実⾏時のエビデンスとして保存 ! ⼿動テストの裏で収集 ! テストを24時間動かしてどんどんためていく ! ⾃動テストの⾃動化 48
Slide 49
Slide 49 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. まとめ ! SWETの技術・スキルそれを⽀える体制 ! 品質作り込み・計測のパイプライン構築を基本とする ! 事業の状況にあわせてパイプラインを拡張 ! 品質作り込みのサービス化 ! ⼀歩先のテストエンジニアリングへの取り組み ! サービス化とその組み合わせ ! パイプラインの最初の⼀歩を簡単に ! ⼀歩踏み出せばそれを加速するAIの活⽤ 49
Slide 50
Slide 50 text
Copyright © DeNA Co.,Ltd. All Rights Reserved. ご清聴ありがとうございました 50