Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
UIからの自動テスト事例
Search
atom
March 15, 2024
Technology
9
7k
UIからの自動テスト事例
JaSST Tokyo 2024
にて発表した資料です。
HP:
http://www.humancrest.co.jp
#JaSST #テスト自動化 #自動テスト #TestAutomation
atom
March 15, 2024
Tweet
Share
More Decks by atom
See All by atom
プロセス改善とE2E自動テストによる、プロダクトの品質向上事例
tomasagi
1
3.8k
WebシステムやモバイルアプリにおけるUIからの自動テスト事例3選
tomasagi
1
3.3k
自動テストの変遷_分断からコラボレーションの時代へ_.pdf
tomasagi
3
480
コラボレーションがテスト自動化の成否を分ける
tomasagi
1
2.6k
ソフトウェアテスト自動化の変遷。変わったことと変わらないこと。テスト自動化の導入パターン。
tomasagi
5
20k
Other Decks in Technology
See All in Technology
GitHub Actions의 다양한 기능 활용하기 - GitHub Universe '24 Recap
outsider
0
520
開志専門職大学特別講義 2024 オープニング
1ftseabass
PRO
0
230
多様なロール経験が導いたエンジニアキャリアのナビゲーション
coconala_engineer
1
160
宇宙最速のランチRecap LT会(開発者ツール&運用監視編)
nnydtmg
1
180
品質管理チームのEMとして大事にしていること / QA EM
nihonbuson
0
840
【AWS re:Invent 2024】Amazon Bedrock アップデート総まとめ
minorun365
PRO
7
610
re:Inventで発表された Bedrockの新機能を色々使って、マルチRAGエージェントにクラウド選定させてみた件
minorun365
PRO
3
230
40歲的我會給20歲的自己,關於軟體開發的7個建議
line_developers_tw
PRO
0
2.5k
2000年てづくりキーボードの旅
tagomoris
1
170
「品質とスピードはトレード・オンできる」に向き合い続けた2年半を振り返る / Quality and speed can be traded on.
mii3king
0
730
GeminiとUnityで実現するインタラクティブアート
hokkey621
0
640
検証と資産化を形にするプロダクト組織へ/tapple_pmconf2024
corin8823
1
9.5k
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Building an army of robots
kneath
302
43k
How GitHub (no longer) Works
holman
310
140k
VelocityConf: Rendering Performance Case Studies
addyosmani
326
24k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
29
2k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
43
9.3k
The Language of Interfaces
destraynor
154
24k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
Designing for Performance
lara
604
68k
Transcript
株式会社ヒューマンクレスト UIからの⾃動テスト事例2選 取締役 兼 技術推進本部 本部⻑ 浅⻩ 友隆 1
© 2024 Human Crest Co., Ltd. AGENDA 本⽇のアジェンダ 1. ⾃動テストの⼭
2. 環境の変化 3. 事例 1. 何を⾃動テストするのか︖ 2. 運⽤課題を克服する 4. 継続したその先に 5. まとめ 2
© 2024 Human Crest Co., Ltd. ⾃⼰紹介 浅⻩ 友隆 技術推進本部
本部⻑ 3 • ⾃動テスト⼤好き • 趣味 : カメラ、ドライブ • 職歴 : 営業→開発→テスト
© 2024 Human Crest Co., Ltd. 株式会社ヒューマンクレスト 4 • ソフトウェアのテストを専業にしている
© 2024 Human Crest Co., Ltd. 株式会社ヒューマンクレスト 5 Japan Quality
Co., Ltd./ DADラボ(海外検証拠点) ベトナム ダナン 16F, Da Nang Software Park, 02 Quang Trung, Thach Thang Ward, Hai Chau District, Da Nang, VIETNAM ARRANGILITY SDN. BHD. マレーシア サイバージャヤ Unit LG-02 & LG-03, Ground Floor, CoPlace 5 Block 3710, Persiaran APEC, Cyber 8, 63000 Cyberjaya Selangor Darul Ehsan, MALAYSIA
© 2024 Human Crest Co., Ltd. 本⽇の事例に関して • 決してだれかを⾮難しているわけではありません。 •
⾃動テストは、UI層を操作するE2Eテストに限った話です。Unitテスト等は 含まれておりません。 UI Service Unit 6
© 2024 Human Crest Co., Ltd. 現状、⾃動テストやってないんですか︖ • やりたいんだけど、どこからやればいいのか︖ •
⾃動テストを始めるに当たって ◦ どんな技術を使っているのか︖ ◦ どのように実現しているのか︖ ◦ どんなテストを実⾏しているのか︖ 7
© 2024 Human Crest Co., Ltd. 8 ⽬的 実⾏ レポーティング
結果分析 ツ ー ル フ レ ー ム ワ ー ク 環 境 CI/CD ス コ ー プ 戦略 設 計 リソース チーム ⽂化 スキルセット テスト⾃動化 ソリューション
© 2024 Human Crest Co., Ltd. ⾃動テストの⼭ 1. 9
© 2024 Human Crest Co., Ltd. 1. ⾃動テストの⼭ ⾃動テスト ⾃動テスト
登るべき⼭が2つある 10
© 2024 Human Crest Co., Ltd. 1. ⾃動テストの⼭ 始める 継続する
⾃動テスト ⾃動テスト 11
© 2024 Human Crest Co., Ltd. 1. ⾃動テストの⼭ 始める 継続する
⾃動テスト ⾃動テスト 12
© 2024 Human Crest Co., Ltd. 1. ⾃動テストの⼭ 始める 継続する
⾃動テスト ⾃動テスト 初期構築を素早くできるか︖ 13
© 2024 Human Crest Co., Ltd. 1. ⾃動テストの⼭ 始める 継続する
⾃動テスト ⾃動テスト テストをリファクタリングできるか︖ 14
© 2024 Human Crest Co., Ltd. 環境の変化 2. 15
© 2024 Human Crest Co., Ltd. 2.1 環境の変化 ー プロセス
• ウォーターフォールからアジャイルへ 16
© 2024 Human Crest Co., Ltd. 2.2 環境の変化 ー テクノロジー
• ツールの変化 商⽤ツール OSS SaaS 17
© 2024 Human Crest Co., Ltd. 2.3 環境の変化 ー テストへの期待
18 • テストは、実施するものではなく、実⾏されているもの • テストは、バグを⾒つけるものではなく、フィードバックを得るもの
© 2024 Human Crest Co., Ltd. 事例 3. 19
© 2024 Human Crest Co., Ltd. 事例の前に、共通している「技術」の話 • テスト⾃動化のフレームワーク ◦
Selenium(Selenium Grid) ◦ Appium • テストフレームワーク ◦ JUnit ◦ Cucumber • テスト実⾏環境 ◦ 実機 ◦ Workspaces ◦ Docker • CI環境 ◦ Jenkins ◦ GitLab • スクリプト⾔語 ◦ Java • テストケース管理 ◦ エクセル ◦ (テストフレームワーク) • その他 ◦ OpenCV(画像⽐較) 20
© 2024 Human Crest Co., Ltd. ⼀般的な構成図 21 WorkSpaces Node
Hub EC2 Availability Zone ap-northeast-1a Availability Zone ap-northeast-1c LynxDashboard LynxRun GitLab Excel管理 テストケース テスト 対象
© 2024 Human Crest Co., Ltd. 事例 1 何を⾃動テストするのか︖ 3.1
22
© 2024 Human Crest Co., Ltd. 事例 1 • BtoB
Webサービス会社 • テスト対象システム Webアプリケーション ◦ A システム(PHP) ◦ B システム(Java) • ステージング環境 23
© 2024 Human Crest Co., Ltd. 事例1 チームに関して • プロダクト毎にチームがある(5〜8名)
◦ プロダクトオーナー ◦ 開発者 ◦ サポート • チーム内のコミュニケーションは良好 ◦ 毎週、チーム毎にミーティングを⾏い、⽬標、結果、対応状況の共有 • 開発プロセスはウォーターフォール ◦ 期限はあるが、開発者にお任せ状態 ◦ 機能追加、機能改善などを⾏いながらも、サポートからの問い合わせ、調査が発 ⽣した場合は、優先事項が変更され⽇々追われている 24
© 2024 Human Crest Co., Ltd. 事例1 • 課題 ◦
リグレッションテストができていないなど品質⾯で不安がある、不具合はユーザ ーからの報告があがって初めて気がつくこともある • 思い ◦ アップデートで動かなくなったところがないか、確認したい ◦ 不具合が発⽣していないか知りたい ◦ 毎⽇⾃動テストが動いている状態にしたい 25
© 2024 Human Crest Co., Ltd. 事例1 ⾃動テストを始める 何を⾃動テストにするか︖ 26
© 2024 Human Crest Co., Ltd. 事例1 テストピラミッド 27 UI
Service Unit 2009年 Mike Cohn, Succeeding with Agile: Software Development Using Scrum Manual Testing
© 2024 Human Crest Co., Ltd. 事例1 ⾃動テストを始める ユーザーに提供している 基本的な機能をテストする
28
© 2024 Human Crest Co., Ltd. 事例1 ⾃動テストを始める 29
© 2024 Human Crest Co., Ltd. 事例1 ⾃動テストを始める 30
© 2024 Human Crest Co., Ltd. 事例1 ⾃動テストを始める • テストケース数
◦ Aシステム︓20ケース ◦ Bシステム︓77ケース • 最初の1テストケースが回り始めるまで 3週間 • 全てのテストケースが作成完了したのが、2ヶ⽉後 • テスト実⾏は、毎⽇1回 • テスト失敗時、Slackへ概要とスクショを送信 31
© 2024 Human Crest Co., Ltd. 事例1 変化 • スクラムが導⼊された。
• Unitテストの⾃動化も始まった。 • リファクタリングできるようになった。 • 今後 ◦ アンチパターンにならないように 気をつける必要がある 32 https://testing.googleblog.com/2020/11/fixing-test-hourglass.html
© 2024 Human Crest Co., Ltd. 事例1 ⾃動テストを始める とにかく 1テストケースが
毎⽇実⾏される テスト実⾏環境を 最速でつくる 33
© 2024 Human Crest Co., Ltd. 事例 2 運⽤課題を克服する 3.2
34
© 2024 Human Crest Co., Ltd. 事例2 35
© 2024 Human Crest Co., Ltd. 事例2 ⾃動テストの概要 「CASIO WATCHES」にてデグレチェックを中⼼とした⾃動テストを実施し、
基本機能が正常に稼働していることを確認する • ⽬的 ◦ 開発中の不具合の早期発⾒、⼿戻り削減、開発負荷の軽減、テスト⼯数の削減 ◦ 本番リリース後の全体チェック、市場不具合の早期発⾒、市場品質の確保 • 対象 ◦ 開発環境でのリグレッションテスト(回帰テスト) ◦ 本番環境でのリグレッションテスト(回帰テスト) ◦ (市場問題となったケース) 36
© 2024 Human Crest Co., Ltd. 事例2 ⾃動テストの概要 • 対象アプリ
◦ 本番アプリ ◦ 開発アプリ ◦ (リリース直前) • テスト内容 ◦ 機能テスト ◦ 284ケース/スイート • テスト実⾏頻度 ◦ 固定時間(0時、12時) 37
© 2024 Human Crest Co., Ltd. 事例2 ⾃動テストの全体構成 1200実⾏/⽇ 38
Mac Mac mini Mac mini Mac mini
© 2024 Human Crest Co., Ltd. 事例2 テスト実⾏の⼯夫 39
© 2024 Human Crest Co., Ltd. ⾃動テストを継続するために 運⽤の課題を克服する 40
© 2024 Human Crest Co., Ltd. 事例2 ⾃動テスト運⽤で発⽣した課題 1. テスト失敗時の対応が⼤変
2. テストが不安定すぎる 41
© 2024 Human Crest Co., Ltd. 事例2 ⾃動テスト運⽤における課題1 • 課題︓テストが失敗した時、原因調査、修正まで数時間かかる
◦ 1テストケースの実⾏時間が⻑い(10〜30分) →再実⾏→途中で落ちる… 修正確認で、また落ちる… • 原因 ◦ 画⾯単位のテストケースを⾃動化していた。 • 対策 ◦ ⾃動テスト⽤にケースを再設計し分割。 元々は48ケースだったが、現在284ケース(最終的には500ケース) • 効果 ◦ テストが安定した ◦ 原因調査時間を⼤幅に短縮できた 42
© 2024 Human Crest Co., Ltd. 事例2 ⾃動テスト運⽤における課題2 • ちょっとした画⾯の変更でテストが失敗する
◦ テストスクリプトの修正が頻発 ◦ (常に不安定な箇所がたくさんあった) • 原因 ◦ ⻑いXPATH、スクロールで変わってしまう ◦ OpenCVの画像マッチングの精度問題 • 対策 ◦ (Appiumで認識できる) IDをつける • 効果 ◦ テストが安定した ◦ 開発チームとコラボレーションができた 43
© 2024 Human Crest Co., Ltd. 事例2 継続する為のポイント • 担当者を決める(まずは属⼈化)
• 失敗テストを放置しない(24時間以内に⽅針を決める) • テストを安定化させる(不安定なテストは捨てる) • テストのリファクタリングを常に⾏う(テストの⽬的、価値を再構築する) • 開発者や他のメンバーの協⼒を得る(コラボレーションしよう︕) 44
© 2024 Human Crest Co., Ltd. 継続したその先に 4. 45
© 2024 Human Crest Co., Ltd. 4. 新しい技術を取り⼊れよう • 10年
⾃動テストを続けているお客様がいる • 常に新しい技術を取り⼊れ、安定したテストを⽬指す 46 初期 • Windows実機 • Selenium 1.X • Windowsスケ ジューラー クラサバ期 • SeleniumGrid • Jenkinsの導⼊ クラウド化 • コンテナ化 • AWSの利⽤
© 2024 Human Crest Co., Ltd. 4.最近の取り組み • Firebase Test
Lab上での⾃動テスト 47
© 2024 Human Crest Co., Ltd. まとめ 5. 48
© 2024 Human Crest Co., Ltd. 5. ⾃動テストの⼭ つまずきポイント1 始める
継続する ⾃動テスト ⾃動テスト 49
© 2024 Human Crest Co., Ltd. 5. ⾃動テストの⼭ つまずきポイント2 始める
継続する ⾃動テスト ⾃動テスト 50
© 2024 Human Crest Co., Ltd. 5. ⾃動テストの⼭ つまずきポイント2 始める
継続する ⾃動テスト ⾃動テスト 初期構築を素早く⾏う 51
© 2024 Human Crest Co., Ltd. 5. ⾃動テストの⼭ つまずきポイント3 始める
継続する ⾃動テスト ⾃動テスト 52
© 2024 Human Crest Co., Ltd. 5. ⾃動テストの⼭ つまずきポイント3 始める
継続する ⾃動テスト ⾃動テスト テストを リファクタリングする 53
© 2024 Human Crest Co., Ltd. (再掲) 事例2 継続する為のポイント •
担当者を決める(まずは属⼈化) • 失敗テストを放置しない(24時間以内に⽅針を決める) • テストを安定化させる(不安定なテストは捨てる) • テストのリファクタリングを常に⾏う(テストの⽬的、価値を再構築する) • 開発者や他のメンバーの協⼒を得る(コラボレーションしよう︕) 54
© 2024 Human Crest Co., Ltd. 5. まとめ E2Eの⾃動テストは •
基本的な機能のテストにとどめる • すぐ始める • リファクタリングする • 技術トレンドを追う 55 UI Service Unit 始める 継続する ⾃動テスト ⾃動テスト
© 2024 Human Crest Co., Ltd. See the world not
as it is, but as it should be. 56 あるがままでなく、あるべき世界をみろ
© 2024 Human Crest Co., Ltd. 変⾰と研鑽 57
© 2024 Human Crest Co., Ltd. ご清聴ありがとうございました 58