DeNAにおけるSWETの役割
-
Upload
toshiyuki-hirata -
Category
Technology
-
view
482 -
download
1
Transcript of DeNAにおけるSWETの役割
自己紹介
平田敏之@DeNA
SWET (Software Engineer in Test)
私がやっていること(一部)
• クライアントアプリ周りのテスト戦略、自動テストの開発
• CI/CD環境整備
• テスト基盤環境の開発(マスティフ、ダルメシアン etc)
• iOS / Android Test Night 主宰
• 12/5 iOS Test Night #6 - 1周年 -
• 12/15 Android Test Night #2
今までのSWETの話(一部)
• DeNA TechConf 2016
• DeNAが取り組む Software Engineer in Test
• http://www.slideshare.net/masaki/dena-software-engineer-in-test
• DeNA TechConf 2017
• DeNAの取り組むテストエンジニアリング
• https://speakerdeck.com/okitan/denafalsequ-rizu-mutesutoensiniarinku
SWETとは?Software Engineer in Test
• ミッション・ステートメント
• ソフトウェアテストを起点とした
• プロダクト・サービスの品質向上
• エンジニアの開発生産性向上
• 価値のあるものを素早く提供できるようにする
Make Testing Fun, Smart, and Delighting End-Users
テストをもっと楽しく賢くそしてユーザのデライトにつながるようにしていきたい
Vision
各チームの役割
• 事業サポートチーム(深さ担当)
• 事業チームの開発生産性・品質の向上
• 事業チームのテスト成熟度の向上
• 事業チームの品質的なコミットメントの引き出し
• テスト技術の追求と蓄積
• テスト基盤チーム(広さ担当)
• 共通で利用できるサービスの開発
• 一歩(以上)先のテストエンジニアリング
• R&D的な要素が強い
事業サポートチーム対象:Sakasho
Sakashoとは?• ゲームアプリ向けの内製BaaS
• ゲーム開発者にSDK(Unity / C++)と管理ツールを提供
• 多種多用な機能(一部)
• マスターデータ配信
• アセット配信
• プレイヤー管理
• 課金
• Push通知
DeNA TechConf 2017
• DeNAのゲームを支えるプラットフォーム Sakasho
• https://www.slideshare.net/dena_tech/dena-sakasho-denatechcon-72603307
事業サポートチームSWETのやったこと・やっていること
• 対象サービスのドメイン知識の獲得(必須)
• SDK(C++/Unity)を利用したテストアプリの開発、改良
• 初期:知識の獲得や初期ユーザとして1つ1つ実装
• 今:開発コストをあまりかける必要がないように改良
• 開発効率化
• CI(Jenkins)環境の改善
• Ansibleや独自pluginなども導入
• Dangerの導入
• リリース周りの最適化
• リリースプロセスの改善
• CI環境のパイプラインによるサポート
• E2Eの自動テストの導入(C++SDK / UnitySDK)
委譲できるタイミングになれば開発側に委譲し運用を任せる
事業サポートチーム自動テスト(C++SDK/UnitySDK)の進め方
• [SWET] どのように攻めていくかを決める
• どの機能か、正常系か、準正常系か、どのバージョンか
• [SWET]テストコードの実装周りの初期サポート
• 自動テストのコード、Helperやsetupスクリプトなど用意
• [SWET] CI環境(Jenkins)の用意
• 自動テストを実行するjobを用意
• 実行環境:iOS:シミュレーター、Android:OpenSTF
• nightlyで自動テストを定期実行
• 自動テストの安定性の確認など
• [開発側] 自動テストの実装
• [SWET] 初期のレビューはSWETが担当
事業部が自ら品質にコミットメント出来るように整えていく
テスト基盤チーム
共通で利用できる基盤開発を主軸とするチーム
※事業サポートが無い事業チームにおいても基盤としてサポートすることができる※
• やっていること(一部)
• ゲーム自動化
• 犬シリーズの開発
• CIサポート
• 導入支援
• Jenkinsのplugin開発、運用ツールの開発
• CircleCI Enterpriseサポート
テスト基盤チーム犬シリーズ
SWETが開発しているサービスは犬の名前が命名されています
• マスティフ• バージョンアップ対応軽減サービス
• ダルメシアン• コードレビュープロセスサポート
• ポメラニアン• テスト並列化サポート
• ラブラドール・レトリーバー• 機械学習を使ったUIテストの簡易化
テスト基盤チーム犬シリーズ:マスティフ(1/3)
• バージョンアップ対応で苦労したことありませんか?
• Xcode、ライブラリなど
• こんな経験はありませんか?
• 新バージョンへの移行時のコスト見積もりが難しいので先延ばし
• バージョンアップしてみたらビルドすら通らなかった
• バージョンを固定化していたのに動かなくなった
• fastlane/deliverとか使っているとあったり(Apple側の改修で..)
• いつバージョンがあがるか(あがったか)は分からない
• 気づいたときにバージョンアップをしてみる
テスト基盤チーム犬シリーズ:参考資料
各カンファレンス、勉強会などで紹介していますので詳細はそちらの資料を参考に。
• マスティフ• @iOS Test Night
• https://www.slideshare.net/tarappo/for-xcode-beta
• https://www.slideshare.net/tarappo/ss-71179542
• ダルメシアン• @Android Test Night、iOS Test Night
• https://www.slideshare.net/tarappo/danger-x-android
• https://www.slideshare.net/ShunsukeMaeda/ios-80347918
• ポメラニアン• @iOSDC2017、iOS Test Night
• https://speakerdeck.com/yusukehosonuma/uitestshort
• https://www.slideshare.net/tarappo/ui-76205186
• ラブラドール・レトリーバー• @SeleniumConf Berlin
• https://www.slideshare.net/ToshiyaKomoda/introduce-machine-learning-into-ui-tests
おわりに
• SWETとは
• 「事業サポート x テスト基盤」の「深さ x 広さ」の体制
• SWETの技術・スキルを支え、展開する体制
• 一歩先のテストエンジニアリングへの取り組み
• 技術的チャレンジの機会が多いグループ
• 課題
• SWET/SETの認知度
ブランディング
SWET/SETはまだまだ知名度が低いためブランディングが重要
• Test Engineers Meetup
• https://test-engineers-meetup.connpass.com/
• iOS Test Night / Android Test Night
• https://testnight.connpass.com/
• testnightのslack
• https://testnight-invitation.herokuapp.com/
• SWETのブログ
• http://swet.dena.com/