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
テストの自動化〜始める、使う、捉える
Search
SHIFT EVOLVE
PRO
September 01, 2023
Technology
0
430
テストの自動化〜始める、使う、捉える
イベント登壇資料
2023/08/30(水) 三社三様!テスト自動化アプローチのあれこれ共有会
舟木 将彦氏(Circle CI)
SHIFT EVOLVE
PRO
September 01, 2023
Tweet
Share
More Decks by SHIFT EVOLVE
See All by SHIFT EVOLVE
製造業からパッケージ製品まで、あらゆる領域をカバー!生成AIを利用したテストシナリオ生成 / 20250627 Suguru Ishii
shift_evolve
PRO
1
140
CloudBruteによる外部からのS3バケットの探索・公開の発見について / 20250605 Kumiko Henmi
shift_evolve
PRO
3
510
やってみよう!生成AIを使用して実際の不具合情報から、汎用的なテスト観点を育てツールで管理する! / 20250530 Suguru Ishii
shift_evolve
PRO
0
180
AWS LambdaでSocket通信サーバーレスアプリケーションのリアルタイム通信 / 20250523 Kumiko Hennmi
shift_evolve
PRO
1
410
6ヶ月でカットオーバー!ファンクション型 BtoB SaaS で実装したインフラレイヤーのセキュリティ / 20250523 Satoshi Torano
shift_evolve
PRO
0
110
生成AI時代における人間の情熱とプロダクト志向 / 20250517 Takuya Oikawa
shift_evolve
PRO
2
1.2k
幸せに働ける組織を目指すリーダーの葛藤と挑戦 / 20250517 Tadahiro Yasuda & Rinto Ikenoue
shift_evolve
PRO
1
700
Kent Beckの思想と学びの道筋 / 20250517 Ryutaro Yoshiba & Hiromitsu Akiba
shift_evolve
PRO
1
920
若手中心の内製アジャイル開発で研究開発に挑戦 / 20250517 Nobuhiro Kawamura & Dami Lee & Tomohiko Tanikawa
shift_evolve
PRO
1
670
Other Decks in Technology
See All in Technology
変化する開発、進化する体系時代に適応するソフトウェアエンジニアの知識と考え方(JaSST'25 Kansai)
mizunori
1
230
AIの最新技術&テーマをつまんで紹介&フリートークするシリーズ #1 量子機械学習の入門
tkhresk
0
140
Understanding_Thread_Tuning_for_Inference_Servers_of_Deep_Models.pdf
lycorptech_jp
PRO
0
130
A2Aのクライアントを自作する
rynsuke
1
180
SalesforceArchitectGroupOsaka#20_CNX'25_Report
atomica7sei
0
180
25分で解説する「最小権限の原則」を実現するための AWS「ポリシー」大全 / 20250625-aws-summit-aws-policy
opelab
9
1.2k
Абьюзим random_bytes(). Фёдор Кулаков, разработчик Lamoda Tech
lamodatech
0
350
Fabric + Databricks 2025.6 の最新情報ピックアップ
ryomaru0825
1
140
Postman AI エージェントビルダー最新情報
nagix
0
120
生成AIでwebアプリケーションを作ってみた
tajimon
2
150
セキュリティの民主化は何故必要なのか_AWS WAF 運用の 10 の苦悩から学ぶ
yoh
1
170
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
26k
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.6k
Build The Right Thing And Hit Your Dates
maggiecrowley
36
2.8k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
930
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
Raft: Consensus for Rubyists
vanstee
140
7k
Into the Great Unknown - MozCon
thekraken
39
1.9k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
GraphQLとの向き合い方2022年版
quramy
48
14k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Transcript
1 テストの自動化 簡単に始める、みんなで使う、 現況を捉える 三社三様!テスト自動化アプローチのあれこれ共有会 Masahiko Funaki (舟木将彦) @mfunaki Principal
Developer Advocate
2 Agenda テスト自動化を始める テストを自動化し倒す 自動テストした結果を捉える 1 2 3
3 1. テスト自動化を始める
4 CI (継続的インテグレーション) とは? 開発者が書いたソースコードをリポジトリにマージすることで、 ビルドやテストを自動的に実行する開発の手法です。 … リリースに向けた一連の手順を決め、それを CI/CDパイプラインという形で 定義し実行することで、誰が実施しても、同じ流れのデプロイを実現できます。
このCI/CDにより、リリースに対するアジリティが高まることが利点のひとつ ですが、筆者にはリリースに対する心理的ハードルが下がることが、 一番のメリットであると考えています。 〜新井雅也/馬勝淳史(2020)『AWSで学ぶクラウドネイティブ実践入門』
5 テスト自動化に取り掛かろう 「Java(Maven)プロジェクトのビルドを CircleCI+Orbsで自動化」 https://qiita.com/mfunaki/items/b393a531e4b04a224368
6 2. テストを自動化し倒す 並列実行、実行環境のスペック変更、テスト環境への SSH ログイン
7 クラウド上のCI環境で自動テストを実行する利点 • 誰でも実行できるし、誰がやっても同じ結果が得られる 誰かのビルド環境/テスト環境に依存しない。 ソースコードを作成/修正して、コミット、プッシュすれば、 クラウド上で自動的に実行される。 • テストの抜け漏れがない ◦
不注意による抜け漏れ(コマンドを実行し忘れた) ◦ 故意の抜け漏れ (「ここの部分の修正であれば、このテストは実行しなくてもよいはず」 ) だけであれば、(もしかしたら)注意深い人が慎重に自分の環境でテストを手動実行 すればよいのでは?
8 2.1 並列実行で時間短縮 2. テストを自動化し倒す
9 テストを並行実行して完了時間を短縮(1) 並列実行時の割り振り方 •ファイル名のアルファベット順 •過去のテスト実行時の所要時間 ベースで均等割(timings) •ファイルサイズで均等割 (filesize) •マニュアル指定
10 テストを並行実行して完了時間を短縮(2) 時間は1/3、 費用はほとんど変わらない 100秒かかるテストケースを 見直さないと、 並列数を増やしても、 これ以上の短縮は見込めない。
11 2.2 実行環境のスペック変更 2. テストを自動化し倒す
12 CircleCIで利用可能な実行環境(リソースクラス)一例
13 Stable Diffusion のテストをCPU/GPU/M1 Macで Executorなど一部の定義を 外出しすることで、 プラットフォームを跨って (かつ並列で)テスト実行が 可能!
14 2.3 テスト環境へのSSHログイン 2. テストを自動化し倒す
15 SSHでシェルにログイン 自動テストを実行するワークフローを組む過程で シェル上で確認・検証したい場合に「非常に」有用 (「自動化するまでが大変」を大幅に軽減)
16 シェルの利用だけでなくポートフォワードも可能 sshでCircleCIのテスト環境にログインする際、 ポートフォワードも合わせて設定 ssh -p NNNNN -L 7860:localhost:7860 aa.bbb.ccc.ddd
あとはローカルのブラウザ上で localhost:7860 に アクセスすることで、 CircleCI クラウドのテスト環境 (GPU/CPU/Apple Silicon)を使って実際の動作を確認可能 Programmar drinking coke wearing jeans
17 3. 自動テストした結果を捉える
18 Tests Insights で自動テストの結果からインサイトを 1ワークフローあたりの 平均テスト実行数 Flakyな(結果が不安 定な)テストの検出数 失敗した テストの数
(P95の中で)最も遅い テストの所要時間 グラフをクリックすることで、 実際にどのテストが成功/失敗 して、時間がかかっているのか 簡単に参照可能
19 並列実行の効果もダッシュボード上で可視化可能
CircleCIをもっと知りたい!なら 最新の情報なら @CircleCIJapan をフォロー! #CircleCIJp タグつけて情報共有! イベント、セミナー、勉強会の情報なら connpassのCircleCIグループから! https://circleci.connpass.com/ 動画でCircleCIについて学ぶなら
CircleCIチャンネルを登録! (日本語プレイリストもあり )