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
VR自動テストの導入によるプロジェクトの改善と、新卒一年目の苦悩
Search
Fumihito Morita
March 26, 2022
Programming
0
79
VR自動テストの導入によるプロジェクトの改善と、新卒一年目の苦悩
Fumihito Morita
March 26, 2022
Tweet
Share
Other Decks in Programming
See All in Programming
Symfony + NelmioApiDocBundle を使った スキーマ駆動開発 / Schema Driven Development with NelmioApiDocBundle
okashoi
0
240
Angular-Apps smarter machen mit Gen AI: Lokal und offlinefähig - Hands-on Workshop!
christianliebel
PRO
0
140
GoのDB アクセスにおける 「型安全」と「柔軟性」の両立 - Bob という選択肢
tak848
0
280
ベクトル検索のフィルタを用いた機械学習モデルとの統合 / python-meetup-fukuoka-06-vector-attr
monochromegane
2
560
RailsのValidatesをSwift Macrosで再現してみた
hokuron
0
140
仕様漏れ実装漏れをなくすトレーサビリティAI基盤のご紹介
orgachem
PRO
7
3.2k
Redox OS でのネームスペース管理と chroot の実現
isanethen
0
460
Migration to Signals, Signal Forms, Resource API, and NgRx Signal Store @Angular Days 03/2026 Munich
manfredsteyer
PRO
0
170
S3ストレージクラスの「見える」「ある」「使える」は全部違う ─ 体験から見た、仕様の深淵を覗く
ya_ma23
0
1.2k
メッセージングを利用して時間的結合を分離しよう #phperkaigi
kajitack
3
460
Geminiをパートナーに神社DXシステムを個人開発した話(いなめぐDX 開発振り返り)
fujiba
0
120
テレメトリーシグナルが導くパフォーマンス最適化 / Performance Optimization Driven by Telemetry Signals
seike460
PRO
2
180
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.6k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.5k
Documentation Writing (for coders)
carmenintech
77
5.3k
Ethics towards AI in product and experience design
skipperchong
2
240
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
780
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
190
GraphQLとの向き合い方2022年版
quramy
50
14k
Rails Girls Zürich Keynote
gr2m
96
14k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
エンジニアに許された特別な時間の終わり
watany
106
240k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.5k
Transcript
VR自動テストの導入による プロジェクトの改善と新卒一年目の苦悩 森田文人 2021/05/26 Gotanda.unity #18
森田文人(ぶんぶん) 株式会社ジョリーグッド UnityとかモバイルとかCI/CD整備とか やってる雑食エンジニアです 好きな言語 RustとElm 2
テーマ Airtestを使ったVR自動テストを導入するまでの話 何も分からないのにスタートアップに入った時の苦労 3
自動テストを根付かせるまでの戦い 4
なんかノリでVRの会社に入ったぞ! Unity何も分からん 5
何も分からない Web開発から始めたのでUnityは少し しか分からなかった • コルーチン??? • Start関数の前にAwake関 数ってのもあるんです か??? 一緒に入ったインターン以外、全員中途
• レベル差なんてものじゃない • C++で例え話しないで? 6
どうやって貢献しよう? 悩んでたらある課題を見つけた 7
テストが一個もなかった • 毎回のリリース前に手作業のQAで確認 • リグレッションによって手戻りすることも少なくなかった 自分はWeb開発から入ったので、CI/CDや自動テストが整備されている環境 があることを知っていた 8
僕「(Unity何も分からないけど、これ作れば貢献できるんじゃね?)」 僕「作りましょう!!!(作り方知らないけど)」 CTO「いいよ!お願い!」 9 即快諾してもらって作成開始
技術選定 Airtest • Pythonで簡単に書ける • Pocoを使ってUnity内のオブジェ クトの操作ができる • Jenkins等のCIツールへの組み込 みも容易
10 Jenkins • 既に自動ビルドで使っていた • オンプレCIなのでテストに使う実機 とも簡単に接続できた
11
苦労したこと • 社内の誰も自動テストの知見が無 かった ◦ 全部一人で調べて作る必要 があった • VRの自動テストの前例が見つから なかった
◦ adb touchを利用して、カメ ラの回転方向・角度を指定で きるようにした 本当はもっと良い方法があ る… 12 (x, y) = (100, 30) の座標をadb touchすると上に30度回転
一ヶ月半かけて完成! けど 誰も使ってくれない😢 13
課題 • 自分以外に書ける人がおらず、ブラックボックス化 • そもそも自動テストの知見を持つ人がいない 14
みんなに使ってもらうために • ドキュメントを整備する ◦ 他の人がテストを書く時に徹底サポート • 自動テストについての勉強会 ◦ 自動テストの意義を知ってもらう •
Slackコマンドから気軽に実行できるようにする ◦ 要望・フィードバックを貰って適宜改良 • 毎晩リグレッションテストを実行 ◦ 実際にリグレッションを検知して、有用性を知ってもらう 15
半年くらいかけて • チームの半分くらいは自動テストが書けるようになった • 自動テストをもとに議論が行われるようになった • みんなが頻繁に使ってくれるようになった 16 自動テストを根付かせることに成功!!
まとめ 17
自動テストを導入して何が良かったか • リグレッションを検知して手戻りを防ぐ ◦ 常に最低限の動作を保証できる ◦ 安心感を持って開発できる • 自動テストを前提とした議論ができる ◦
QAのフローの見直し ◦ テスト結果をマージリクエストに添付 18
何でもかんでもUIテストにやらせない • UIテストは壊れやすい • 時間がかかる • できるだけユニットテストを書くよう にする 19 引用元:https://blog.knoldus.com/agile-testing-pyramid/
何も分からんのにスタートアップに入って学んだこと 20 手取り足取り教えてくれない • 研修もない • 孤独との戦い • TwitterやDiscordで質問できる人を作っ ておく
◦ 結構みんな教えてくれる • 「分からない」を楽しむ 何もできることがない • 誰もやってないことをやる ◦ スタートアップは常にリソース不足 ◦ 違う界隈を見ておくと色んなヒントが 出るかも
大変だけど楽しいこともある • 何もないからこその面白さ ◦ 「俺が作ってやるぜ!!」の精神 ◦ 根拠を持って手を上げればやらせてくれる • 熟練の人と一緒に働く楽しさ ◦
うまくキャッチアップできれば色々教えてもらえる 21
参考文献 • 自動テスト・ソフトウェアテストについて ◦ 「初めての自動テスト Webシステムのための自動テスト基礎」 Jonathan Rasmusson ◦ 「質とスピード(2020秋100分拡大版)」
和田卓人 ◦ 「テストの自動化とテスト駆動開発」 安井力 ◦ 「LINE のUI自動テスト事例」 大園 博昭 • 個人のマインドセットと組織文化の創出について ◦ 「Effective DevOps 4本柱による持続可能な組織文化の育て方」 Jennifer Davis、Ryn Daniels • AirtestとPocoの拡張方法 ◦ 「AirtestとPocoを拡張して、Componentのメソッドを直接実行する」 @mmm_hiro 22