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
UIからの自動テスト事例
Search
atom
March 15, 2024
Technology
9
6.8k
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
WebシステムやモバイルアプリにおけるUIからの自動テスト事例3選
tomasagi
1
3.2k
自動テストの変遷_分断からコラボレーションの時代へ_.pdf
tomasagi
3
470
コラボレーションがテスト自動化の成否を分ける
tomasagi
1
2.5k
ソフトウェアテスト自動化の変遷。変わったことと変わらないこと。テスト自動化の導入パターン。
tomasagi
5
20k
Other Decks in Technology
See All in Technology
dev 補講: プロダクトセキュリティ / Product security overview
wa6sn
0
1.9k
フルカイテン株式会社 採用資料
fullkaiten
0
40k
AWS⼊社という選択肢、⾒えていますか
iwamot
2
1.1k
スクラム成熟度セルフチェックツールを作って得た学びとその活用法
coincheck_recruit
1
110
OCI Vault 概要
oracle4engineer
PRO
0
9.7k
SREの組織類型に応じた リーダシップの考察
kenta_hi
PRO
1
640
信頼性に挑む中で拡張できる・得られる1人のスキルセットとは?
ken5scal
2
480
AWS Lambdaと歩んだ“サーバーレス”と今後 #lambda_10years
yoshidashingo
1
140
強いチームと開発生産性
onk
PRO
29
9.1k
形式手法の 10 メートル手前 #kernelvm / Kernel VM Study Hokuriku Part 7
ytaka23
5
830
今、始める、第一歩。 / Your first step
yahonda
2
730
隣接領域をBeyondするFinatextのエンジニア組織設計 / beyond-engineering-areas
stajima
1
250
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
427
64k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Designing on Purpose - Digital PM Summit 2013
jponch
115
7k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
370
Music & Morning Musume
bryan
46
6.2k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
Thoughts on Productivity
jonyablonski
67
4.3k
Fireside Chat
paigeccino
33
3k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
BBQ
matthewcrist
85
9.3k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
A Philosophy of Restraint
colly
203
16k
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