Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

DeNAが取り組む Software Engineer in Test

20,161 views

Published on

DeNA TechCon 2016 の発表資料です。
SWET の位置付けからこれまでの歴史、最近の取り組みの事例紹介と今後の方向性、そして SWET というキャリアについて。

Published in: Technology
  • Be the first to comment

DeNAが取り組む Software Engineer in Test

  1. 1. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA TechCon 2016 DeNAが取り組む Software Engineer in Test 2016/01/29 Masaki Nakagawa SWET (Software Engineer in Test) Gr. Quality Management Dept. System Management Unit DeNA Co., Ltd.
  2. 2. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 自己紹介  中川 勝樹  株式会社ディー・エヌ・エー  SWET (Software Engineer in Test)  Testing Casual Talks  @ikasam_a  github.com/masaki  metacpan.org/author/MASAKI 2
  3. 3. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 SWET 3
  4. 4. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 Software Engineer in Test 4
  5. 5. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 今日お話すること  SWET (Software Engineer in Test) とは?  これまでの SWET の取り組み  SWET の現在、そして未来 5
  6. 6. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 WHAT IS THE SWET 6
  7. 7. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 7 Software Engineer in Test, a Quality Assurance job title in some software companies en.wikipedia.org/wiki/SET
  8. 8. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 8 Software Engineer in Test is also a developer role except their focus is on testability googletesting.blogspot.jp/2011/02/how-google-tests-software-part-two.html
  9. 9. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 9 SETs primary focus is on the developer. Enabling developers to easily test the code they write is the primary focus of the SET. googletesting.blogspot.jp/2011/02/how-google-tests-software-part-two.html
  10. 10. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 Developer Productivity 10
  11. 11. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 11 SWE SET TE SWE SWET (and TE) Google DeNA SWE = Software Engineer SET = Software Engineer in Test (Google) TE = Test Engineer SWET = Software Engineer in Test (DeNA) White Box Approach Black Box Approach
  12. 12. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 SWETのミッション・ステートメント 1. プロダクト・サービスの品質向上 2. エンジニアの開発生産性向上 12 SWETグループは  ソフトウェアテストを起点に  品質と開発生産性の向上に取り組む ソフトウェアエンジニアの集団です
  13. 13. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 SWET HISTORY 13
  14. 14. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 SWETざっくり年表  2012年  プラットフォーム開発の中のチーム  Mobage オープンプラットフォーム (WebAPI / WebUI)  2013年 夏  メンバーも増えてSWETグループとして組織化  Smartphone 向け Mobage SDK も守備範囲に  2014年 春  事業部を出て全社横断組織のSWETグループに  “Mobage” から “DeNA” へ 14
  15. 15. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 サーバ期 (WebAPI, WebUI) 15
  16. 16. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 2012年のプラットフォーム  オープンプラットフォームのグローバル展開  大規模システムの拡張とリファクタリング  (デリバリーの速度はできるだけ落とさずに…) 16 E2Eテストを確立して自動化 (checking)
  17. 17. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 RESTful API テスト自動化  APIの仕様はグローバルで共通だった  まずはバックエンドを抑える  つくったもの ⁃ HTTP(S) WebAPI テスト (Perl) ⁃ Mobage API 専用クライアント (Perl) • 開発、デバッグにも使えるツールとして 17
  18. 18. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 ブラウザテスト自動化  次はフロントエンドを抑えに行った  ブラウザゲームのプラットフォームなので…  つくったもの ⁃ オープンプラットフォームのブラウザテスト (Ruby) ⁃ Mobage ブラウザテスト (Ruby) ⁃ Mobage 専用クライアント (Ruby) • もちろん開発のお供に ⁃ プラットフォーム機能を使うテストアプリ (Perl/Ruby) 18
  19. 19. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 技術的な取り組み  2011年7月 ⁃ Selenium WebDriver (Selenium2) リリース  2011年 その後 ⁃ フィージビリティ調査  2012年 ⁃ ブラウザテストに実戦投入 ⁃ ブラウザテストのベースとした 19
  20. 20. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 20 @okitan @deme0607 @vbanthia urn:isbn:4774178942
  21. 21. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 21
  22. 22. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 クライアント期 (Smartphone SDK) 22
  23. 23. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 2013年のプラットフォーム  これまでは、ブラウザ/ゲームサーバが中心だった  一方この頃、アプリベースのゲームが増えてきた 23 デバイス上の自動化技術に 取り組む機運の高まり
  24. 24. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 Smartphone SDKの自動化の課題  SDK単体では、SDKの機能テストを実行できない ⁃ SDKを使ったテストドライバが必要 ⁃ なのでSDKを使ったテストアプリを作ることに ⁃ そしてそのアプリを、どうにかして自動操作する  SDK は種類が色々ある ⁃ for Android (Java) ⁃ for iOS (Objective-C) ⁃ for Unity (C#) ⁃ フレームワーク選定の難しさ • OS の差異を(ある程度)吸収できるものもある • 引き換えに操作可能な部分が限定される場合もある 24
  25. 25. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 Smartphone SDKの自動化  つくったもの ⁃ SDK を使ったテストアプリ • for Android (Java) • for iOS (Objective-C) • for Unity (C#) ⁃ テストアプリを使ったモバイルテスト • for Android (Java + Ruby) • for iOS (Objective-C + Ruby) 25
  26. 26. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 技術的な取り組み  Mobile Automation ⁃ まだデファクトが確立されていない ⁃ なのでフレームワークも群雄割拠 ⁃ もちろんそれぞれにメリット・デメリットがある ⁃ 自動化の要件次第で選択肢が変わってくる  取り組み ⁃ 昔は Calabash を使っていた ⁃ ブラウザテストとの統合も見据えて Appium に着手 26
  27. 27. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 27 urn:isbn:4774159905
  28. 28. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 28 urn:isbn:4774159905
  29. 29. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 NOW AND FUTURE 29
  30. 30. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 NOW 30
  31. 31. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 プラットフォームのSWETとして  各種自動テストに対応 ⁃ WebAPI、WebUI、Smartphone SDK/Application  その過程で各種アプリケーションも作成 ⁃ Webアプリ、スマートフォンアプリ  大規模サービスのCI環境構築 ⁃ コンポーネント数が半端ない… ⁃ “Jenkins 職人” 31
  32. 32. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 全社横断組織のSWETとして  各サービス・プロダクトへの対応 ⁃ Game BaaS のサポートを開始 ⁃ 他にも相談ベースでテストアーキテクチャコンサルなど  技術の全社展開 ⁃ テスト基盤チームを作りました • 今まで蓄積した技術の横展開ができるように • サービス横断で使える技術開発のために • 先端技術の実用化を進めるために 32
  33. 33. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 具体的な最近の取り組み  モバイル自動テストの技術開発  プライベートデバイスファーム構築  テスト環境の高速化・仮想化  CI基盤環境の構築 33 エンジニアの開発生産性向上によりフォーカス 基盤技術、テスト基盤としての取り組みを強化
  34. 34. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 テスト環境の高速化  シナリオテストあるある ⁃ 実行に時間がかかる • よろしい、ならば並列化だ ⁃ 分割したけど Worker によってバラつきがある • 物理的なファイル数やサイズでの分割による限界 • 論理的なシナリオ単位でできるだけ均等に分けたい  テスト実行計画管理ツールを作りました ⁃ 並列数に応じてシナリオを分割 ⁃ シナリオ単位の実行時間を集計 ⁃ 累積集計結果を次回実行計画に反映 34
  35. 35. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 テスト環境の仮想化  背景 ⁃ 分割・並列で高速化できたので、有効活用したい ⁃ 環境準備が意外と面倒なのは昔からの課題 • 構成管理、プロビジョニングも流行るわけで…  Docker はじめました ⁃ Selenium + Appium + Docker 35
  36. 36. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 デバイスファーム  デバイスファームとは? ⁃ “クラウド上にある複数のデバイスを、リモートで操作可能 にしたもの” と呼んでいます  Smartphone Test Farm (STF) ⁃ OSSのオンプレミス・デバイスファームシステム ⁃ openstf.io  STF の導入・運用・開発 ⁃ コミッターが在籍 (@vbanthia) ⁃ モバイル検証・モバイル自動テストに実践導入中 36
  37. 37. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 デバイスファームの活用  モバイル検証 ⁃ 検証用デバイスとしての利用方法 ⁃ 手元にデバイスを置かずにリモートで操作 ⁃ デバイスのログやスクリーンショットの取得が容易 ⁃ アプリケーションインストールなど面倒な操作も容易  モバイル自動テスト ⁃ 自動テストの実行デバイスとしての利用方法 ⁃ そのためには API でのデバイス操作が不可欠になった ⁃ なので API を実装しました (v2.0.0) 37
  38. 38. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 DEMO 38
  39. 39. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 FUTURE 39
  40. 40. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 これからのSWET  方向性 ⁃ モバイルテスティング関連技術 ⁃ テスト基盤技術 ⁃ …でもきっと増えると思います • 例えば IoT とかどんどん来ますよね  想い ⁃ 引き続き技術基盤としての立ち位置は大事にしたい ⁃ 課題解決のためのエンジニアリングを忘れずに 40
  41. 41. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 今日お話したこと  SWET (Software Engineer in Test) とは? ⁃ どのような役割なのか ⁃ どのようなミッションを持っているのか  これまでの SWET の取り組み ⁃ Mobage オープンプラットフォームでの取り組み  SWET の現在、そして未来 ⁃ 開発生産性向上へのフォーカス ⁃ テスト基盤としての取り組み 41
  42. 42. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 SWETというキャリアパス  キャリアの認知度として ⁃ まだ認知度が高いとは言えない役割ではある ⁃ だからこそのやりがい  エンジニアの成長として ⁃ 開拓すべき新しい技術がたくさんある • 技術的チャレンジの機会が多い ⁃ 開発サイクルの全般に関わる  エンジニアのキャリアパスとして ⁃ 僕はアーキテクトに繋がる1つの道だと思います • テストアーキテクチャにはシステムデザインが要求される • 技術的な幅や視野の広さも要求される 42
  43. 43. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technical Conference 2016 ご清聴ありがとうございました 43

×