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. 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. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
SWET
3
4. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
Software Engineer in Test
4
5. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
今日お話すること
SWET (Software Engineer in Test) とは?
これまでの SWET の取り組み
SWET の現在、そして未来
5
6. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
WHAT IS THE
SWET
6
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. 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. 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. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
Developer
Productivity
10
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. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
SWETのミッション・ステートメント
1. プロダクト・サービスの品質向上
2. エンジニアの開発生産性向上
12
SWETグループは
ソフトウェアテストを起点に
品質と開発生産性の向上に取り組む
ソフトウェアエンジニアの集団です
13. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
SWET
HISTORY
13
15. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
サーバ期
(WebAPI, WebUI)
15
16. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
2012年のプラットフォーム
オープンプラットフォームのグローバル展開
大規模システムの拡張とリファクタリング
(デリバリーの速度はできるだけ落とさずに…)
16
E2Eテストを確立して自動化
(checking)
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. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
ブラウザテスト自動化
次はフロントエンドを抑えに行った
ブラウザゲームのプラットフォームなので…
つくったもの
⁃ オープンプラットフォームのブラウザテスト (Ruby)
⁃ Mobage ブラウザテスト (Ruby)
⁃ Mobage 専用クライアント (Ruby)
• もちろん開発のお供に
⁃ プラットフォーム機能を使うテストアプリ (Perl/Ruby)
18
19. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
技術的な取り組み
2011年7月
⁃ Selenium WebDriver (Selenium2) リリース
2011年 その後
⁃ フィージビリティ調査
2012年
⁃ ブラウザテストに実戦投入
⁃ ブラウザテストのベースとした
19
20. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
20
@okitan
@deme0607
@vbanthia
urn:isbn:4774178942
21. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
21
22. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
クライアント期
(Smartphone SDK)
22
23. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
2013年のプラットフォーム
これまでは、ブラウザ/ゲームサーバが中心だった
一方この頃、アプリベースのゲームが増えてきた
23
デバイス上の自動化技術に
取り組む機運の高まり
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. 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. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
技術的な取り組み
Mobile Automation
⁃ まだデファクトが確立されていない
⁃ なのでフレームワークも群雄割拠
⁃ もちろんそれぞれにメリット・デメリットがある
⁃ 自動化の要件次第で選択肢が変わってくる
取り組み
⁃ 昔は Calabash を使っていた
⁃ ブラウザテストとの統合も見据えて Appium に着手
26
27. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
27
urn:isbn:4774159905
28. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
28
urn:isbn:4774159905
29. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
NOW AND FUTURE
29
30. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
NOW
30
31. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
プラットフォームのSWETとして
各種自動テストに対応
⁃ WebAPI、WebUI、Smartphone SDK/Application
その過程で各種アプリケーションも作成
⁃ Webアプリ、スマートフォンアプリ
大規模サービスのCI環境構築
⁃ コンポーネント数が半端ない…
⁃ “Jenkins 職人”
31
32. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
全社横断組織のSWETとして
各サービス・プロダクトへの対応
⁃ Game BaaS のサポートを開始
⁃ 他にも相談ベースでテストアーキテクチャコンサルなど
技術の全社展開
⁃ テスト基盤チームを作りました
• 今まで蓄積した技術の横展開ができるように
• サービス横断で使える技術開発のために
• 先端技術の実用化を進めるために
32
33. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
具体的な最近の取り組み
モバイル自動テストの技術開発
プライベートデバイスファーム構築
テスト環境の高速化・仮想化
CI基盤環境の構築
33
エンジニアの開発生産性向上によりフォーカス
基盤技術、テスト基盤としての取り組みを強化
34. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
テスト環境の高速化
シナリオテストあるある
⁃ 実行に時間がかかる
• よろしい、ならば並列化だ
⁃ 分割したけど Worker によってバラつきがある
• 物理的なファイル数やサイズでの分割による限界
• 論理的なシナリオ単位でできるだけ均等に分けたい
テスト実行計画管理ツールを作りました
⁃ 並列数に応じてシナリオを分割
⁃ シナリオ単位の実行時間を集計
⁃ 累積集計結果を次回実行計画に反映
34
35. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
テスト環境の仮想化
背景
⁃ 分割・並列で高速化できたので、有効活用したい
⁃ 環境準備が意外と面倒なのは昔からの課題
• 構成管理、プロビジョニングも流行るわけで…
Docker はじめました
⁃ Selenium + Appium + Docker
35
36. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
デバイスファーム
デバイスファームとは?
⁃ “クラウド上にある複数のデバイスを、リモートで操作可能
にしたもの” と呼んでいます
Smartphone Test Farm (STF)
⁃ OSSのオンプレミス・デバイスファームシステム
⁃ openstf.io
STF の導入・運用・開発
⁃ コミッターが在籍 (@vbanthia)
⁃ モバイル検証・モバイル自動テストに実践導入中
36
37. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
デバイスファームの活用
モバイル検証
⁃ 検証用デバイスとしての利用方法
⁃ 手元にデバイスを置かずにリモートで操作
⁃ デバイスのログやスクリーンショットの取得が容易
⁃ アプリケーションインストールなど面倒な操作も容易
モバイル自動テスト
⁃ 自動テストの実行デバイスとしての利用方法
⁃ そのためには API でのデバイス操作が不可欠になった
⁃ なので API を実装しました (v2.0.0)
37
38. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
DEMO
38
39. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
FUTURE
39
40. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
これからのSWET
方向性
⁃ モバイルテスティング関連技術
⁃ テスト基盤技術
⁃ …でもきっと増えると思います
• 例えば IoT とかどんどん来ますよね
想い
⁃ 引き続き技術基盤としての立ち位置は大事にしたい
⁃ 課題解決のためのエンジニアリングを忘れずに
40
41. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
今日お話したこと
SWET (Software Engineer in Test) とは?
⁃ どのような役割なのか
⁃ どのようなミッションを持っているのか
これまでの SWET の取り組み
⁃ Mobage オープンプラットフォームでの取り組み
SWET の現在、そして未来
⁃ 開発生産性向上へのフォーカス
⁃ テスト基盤としての取り組み
41
42. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
SWETというキャリアパス
キャリアの認知度として
⁃ まだ認知度が高いとは言えない役割ではある
⁃ だからこそのやりがい
エンジニアの成長として
⁃ 開拓すべき新しい技術がたくさんある
• 技術的チャレンジの機会が多い
⁃ 開発サイクルの全般に関わる
エンジニアのキャリアパスとして
⁃ 僕はアーキテクトに繋がる1つの道だと思います
• テストアーキテクチャにはシステムデザインが要求される
• 技術的な幅や視野の広さも要求される
42
43. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technical Conference 2016
ご清聴ありがとうございました
43