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
September 01, 2023
Technology
0
420
テストの自動化〜始める、使う、捉える
イベント登壇資料
2023/08/30(水) 三社三様!テスト自動化アプローチのあれこれ共有会
舟木 将彦氏(Circle CI)
SHIFT EVOLVE
September 01, 2023
Tweet
Share
More Decks by SHIFT EVOLVE
See All by SHIFT EVOLVE
急成長する企業で作った、エンジニアが輝ける制度/ 20250214 Rinto Ikenoue
shift_evolve
3
1.9k
ビジネスの成功x技術への好奇心 (エンジニア組織の未来 vol.2) / 20241204 Yoshihiro Yunomae
shift_evolve
0
24
AWSマルチアカウント統制環境のすゝめ / 20250115 Mitsutoshi Matsuo
shift_evolve
0
390
~ 最新AIでセキュリティ運用業務効率UP ~ セキュリティアナリストの頭の中を RAGにしてみた / 20241220 Tetsuharu Kokaki
shift_evolve
0
150
生成AIによるテスト設計支援プロセスの構築とプロセス内のボトルネック解消の取り組み / 20241220 Suguru Ishii
shift_evolve
0
380
XSS攻撃から考察するAWS設定不備の恐怖 / 20241220 Hironobu Otaki
shift_evolve
0
160
SHIFT会社紹介 ビジネスの成功x技術への好奇心(エンジニア組織の未来 vol.2)/20241204 Rinto Ikenoue
shift_evolve
0
230
価値あるサービスを作り続けるためのエンジニアのマインドセット / 20241207 Shoya Shiraki
shift_evolve
0
1.1k
自動化技術を応用したデータ分析環境の構築事例 / 20241207 Shinya Takano
shift_evolve
0
97
Other Decks in Technology
See All in Technology
PHPで印刷所に入稿できる名札データを作る / Generating Print-Ready Name Tag Data with PHP
tomzoh
0
140
偏光画像処理ライブラリを作った話
elerac
1
120
エンジニアの育成を支える爆速フィードバック文化
sansantech
PRO
3
1.1k
N=1から解き明かすAWS ソリューションアーキテクトの魅力
kiiwami
0
140
RSNA2024振り返り
nanachi
0
620
Helm , Kustomize に代わる !? 次世代 k8s パッケージマネージャー Glasskube 入門 / glasskube-entry
parupappa2929
0
270
運用しているアプリケーションのDBのリプレイスをやってみた
miura55
1
830
デスクトップだけじゃないUbuntu
mtyshibata
0
550
人はなぜISUCONに夢中になるのか
kakehashi
PRO
6
1.7k
エンジニアのためのドキュメント力基礎講座〜構造化思考から始めよう〜(2025/02/15jbug広島#15発表資料)
yasuoyasuo
18
7.1k
一度 Expo の採用を断念したけど、 再度 Expo の導入を検討している話
ichiki1023
1
230
白金鉱業Meetup Vol.17_あるデータサイエンティストのデータマネジメントとの向き合い方
brainpadpr
7
910
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
244
12k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Unsuck your backbone
ammeep
669
57k
Scaling GitHub
holman
459
140k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.5k
Side Projects
sachag
452
42k
Into the Great Unknown - MozCon
thekraken
35
1.6k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
We Have a Design System, Now What?
morganepeng
51
7.4k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
1k
A better future with KSS
kneath
238
17k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
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チャンネルを登録! (日本語プレイリストもあり )