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
440
テストの自動化〜始める、使う、捉える
イベント登壇資料
2023/08/30(水) 三社三様!テスト自動化アプローチのあれこれ共有会
舟木 将彦氏(Circle CI)
SHIFT EVOLVE
PRO
September 01, 2023
Tweet
Share
More Decks by SHIFT EVOLVE
See All by SHIFT EVOLVE
努力家なスクラムマスターが陥る「傍観者」という罠と乗り越えた先に信頼があった話 / 20250830 Takahiro Sasaki
shift_evolve
PRO
2
120
キャリアを支え組織力を高める「多層型ふりかえり」 / 20250821 Kazuki Mori
shift_evolve
PRO
2
330
製造業からパッケージ製品まで幅広く適用!5分でわかる「生成AIを利用したテストシナリオ生成」 / 20250725 Suguru Ishii
shift_evolve
PRO
0
260
教えます!AWSにおけるセキュリティ対策の可視化の方法 やってみた!!AWSにおけるセキュリティ対策の可視化の実践 / 20250423 Hironobu Otaki
shift_evolve
PRO
2
220
SHIFTのDNAとAIの融合:普及から活用へのパラダイムシフト / 20250423 Eiichi Hayashi
shift_evolve
PRO
0
16
サイバー攻撃のシミュレーション:攻撃者の視点からみる防御のむずかしさ!AWSで試してみよう / 20250423 Kumiko Hemmi
shift_evolve
PRO
1
330
Viteの魅力とビルドプロセスに迫る / 20250423 Takuto Nishikiori
shift_evolve
PRO
1
190
開発生産性Conference afterイベント「川口 耕介氏/Kent Beck氏のご紹介」 / 20250707 Hiromitsu Akiba & Ryutaro Yoshiba
shift_evolve
PRO
1
170
fukabori.fm 出張版: 売上高617億円と高稼働率を陰で支えた社内ツール開発のあれこれ話 / 20250704 Yoshimasa Iwase & Tomoo Morikawa
shift_evolve
PRO
4
12k
Other Decks in Technology
See All in Technology
【Grafana Meetup Japan #6】Grafanaをリバプロ配下で動かすときにやること ~ Grafana Liveってなんだ ~
yoshitake945
0
210
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
30k
Browser
recruitengineers
PRO
6
2.1k
現場が抱える様々な問題は “組織設計上” の問題によって生じていることがある / Team-oriented Organization Design 20250827
mtx2s
7
69k
「AI2027」を紐解く ― AGI・ASI・シンギュラリティ
masayamoriofficial
0
160
ここ一年のCCoEとしてのAWSコスト最適化を振り返る / CCoE AWS Cost Optimization devio2025
masahirokawahara
1
920
「魔法少女まどか☆マギカ Magia Exedra」での負荷試験の実践と学び
gree_tech
PRO
0
410
ガチな登山用デバイスからこんにちは
halka
1
160
Microsoft Fabric のネットワーク保護のアップデートについて
ryomaru0825
1
120
AIとTDDによるNext.js「隙間ツール」開発の実践
makotot
6
800
Snowflakeの生成AI機能を活用したデータ分析アプリの作成 〜Cortex AnalystとCortex Searchの活用とStreamlitアプリでの利用〜
nayuts
0
100
Flutterでキャッチしないエラーはどこに行く
taiju59
0
200
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
BBQ
matthewcrist
89
9.8k
Scaling GitHub
holman
463
140k
GitHub's CSS Performance
jonrohan
1032
460k
How GitHub (no longer) Works
holman
315
140k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.6k
Thoughts on Productivity
jonyablonski
69
4.8k
Faster Mobile Websites
deanohume
309
31k
Optimizing for Happiness
mojombo
379
70k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
11
1.1k
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チャンネルを登録! (日本語プレイリストもあり )