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
Reactで始める リグレッションテスト概論
Search
Tsubasa SEKIGUCHI
PRO
July 17, 2025
Programming
0
60
Reactで始める リグレッションテスト概論
社用で作成したエンジニア向けのVRT紹介スライドです。
特に機密情報はないのでそのまま公開しています
Tsubasa SEKIGUCHI
PRO
July 17, 2025
Tweet
Share
More Decks by Tsubasa SEKIGUCHI
See All by Tsubasa SEKIGUCHI
スモールスタートでいこう 自作テレメトリシステム概論
tinykitten
PRO
0
39
TrainLCD v10リリース記念 TrainLCDを支える技術
tinykitten
PRO
1
460
公共交通オープンデータ × モバイルUX 複雑な運行情報を 『直感』に変換する技術
tinykitten
PRO
0
230
初めてのハッカソンを「紙芝居」で終わらせた話
tinykitten
PRO
0
46
これならできる!個人開発のすゝめ
tinykitten
PRO
0
420
今日から使える AI駆動開発のすゝめ
tinykitten
PRO
1
94
エンジニアでも捗る デザイナー的思考入門
tinykitten
PRO
1
1.4k
Gunma.web #55
tinykitten
PRO
0
300
React Nativeではじめる ハイパフォーマンス スマホアプリ開発(GENIEE Edit)
tinykitten
PRO
0
150
Other Decks in Programming
See All in Programming
Symfony + NelmioApiDocBundle を使った スキーマ駆動開発 / Schema Driven Development with NelmioApiDocBundle
okashoi
0
180
AIコードレビューの導入・運用と AI駆動開発における「AI4QA」の取り組みについて
hagevvashi
0
500
社内規程RAGの精度を73.3% → 100%に改善した話
oharu121
13
8.2k
コーディングルールの鮮度を保ちたい / keep-fresh-go-internal-conventions
handlename
0
220
AI 開発合宿を通して得た学び
niftycorp
PRO
0
150
脱 雰囲気実装!AgentCoreを良い感じにWEBアプリケーションに組み込むために
takuyay0ne
3
330
API Platformを活用したPHPによる本格的なWeb API開発 / api-platform-book-intro
ttskch
1
150
Fundamentals of Software Engineering In the Age of AI
therealdanvega
2
260
守る「だけ」の優しいEMを抜けて、 事業とチームを両方見る視点を身につけた話
maroon8021
3
1.1k
AI時代のシステム設計:ドメインモデルで変更しやすさを守る設計戦略
masuda220
PRO
6
1.1k
OTP を自動で入力する裏技
megabitsenmzq
0
120
Linux Kernelの1文字のミスで 権限昇格ができた話
rqda
0
1.9k
Featured
See All Featured
30 Presentation Tips
portentint
PRO
1
260
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
220
Speed Design
sergeychernyshev
33
1.6k
The Curse of the Amulet
leimatthew05
1
10k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
78
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
180
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
110
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
250
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
110
Bash Introduction
62gerente
615
210k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
290
Transcript
NON-CONFIDENTIAL PUBLIC DOMAIN DOCUMENTATION Freelance Frontend Engineer Tsubasa SEKIGUCHI Reactで始める
リグレッションテスト概論 Getting Started with Regression Testing in React 2025.07.18 | 技術共有会 #8
関口 翼 Tsubasa SEKIGUCHI aka TinyKitten フリーランス フロントエンドエンジニア 関口 翼
Tsubasa SEKIGUCHI aka TinyKitten / きったん フリーランス フロントエンドエンジニア 2 2025.07.18 | 技術共有会 #8
TinyKitten タイニーキトゥン aka 関口 翼 フリーランス フロントエンドエンジニア 3 2025.07.18 |
技術共有会 #8
TrainLCD スマートフォンで使えるトレインビジョン 鉄道での移動中に迷いそうな時、 電車から降りれるか不安な時 きっとあなたの役に立つはずです 日本全国の鉄道路線で使える 新感覚ナビゲーションアプリ 4 2025.07.18 |
技術共有会 #8
5 バズりました ユーザーさんがシェアしてくれたので App Storeランキング12位に入ってました 寝耳に水です TrainLCD 直近のハイライト 2025.07.18 |
技術共有会 #8
そもそも ”リグレッション”って何? What does “regression” really mean? 6 2025.07.18 |
技術共有会 #8
7 「直したら壊れた」 経験、ありませんか? ちょっと思い出してください 全画面のモーダルが壊れる テーマファイル1行修正 → モーダル、閉じられない… あれ?前は表示されてたはずなのに... ローカルだと動いてたんだけどな…
この画面、テスト対象外だったか… えっ、他の画面も使ってたの そのコンポーネント… 2025.07.18 | 技術共有会 #8
8 リグレッションとは 変更が意図せず既存の 機能を壊してしまう現象のこと バグの発生要因はさまざま コード変更、依存関係、 スタイル干渉、etc. 実のところ、 リファクタ・改善が 思わぬ副作用を呼ぶのが怖いところ
2025.07.18 | 技術共有会 #8 実はそれ、 “リグレッション” と呼ばれる現象です “直したら壊れた”経験
9 2025.07.18 | 技術共有会 #8 “壊れていないこと” を確認するテストが 必要なんです つまり、 壊れてないことを、証明できる安心感。
10 2025.07.18 | 技術共有会 #8 Visual Regression Testingとは? What is
Visual Regression Testing?
2025.07.18 | 技術共有会 #8 11 スタイル崩れ・配置ミスなど、 構造では気づきにくい変化を検出 引用: https://tech.speee.jp/entry/2020/06/30/110000 “見た目の差分”を
画像でチェック ビジュアルリグレッションテスト(VRT)
12 2025.07.18 | 技術共有会 #8 STEP2 差分画像を自動生成 STEP3 人の目でレビュー (崩れがないかを目視で確認)
STEP1 UIの変更を含むPRを作成 Pull Request ごとに 差分を画像で 確認できます。 reg-suit や Percy を使えば、
VRTを導入することで スタイルの微細な崩れに気づける CIに組み込めば コードレビューも スムーズになります VRTを運用することで “うっかり崩れ” に備える 2025.07.18 |
技術共有会 #8 13 気づけない崩れに 備えて、 今こそ導入しよう 見逃しがちなUIの崩れ、VRTで気づける
14 2025.07.18 | 技術共有会 #8 Visual Regressionの実践 Hands-on Visual Regression
Testing
15 2025.07.18 | 技術共有会 #8 差分ノイズが多すぎて 本当に見たい差分が埋もれる 毎回100枚超の画像… 差分レビューを諦めたくなる 撮りすぎが原因
→ 本当に必要な画面 だけに絞る テスト対象の 基準を決める → トラフィックが多い または購入・申込に 直結する部分だけ “差分地獄”から抜け出すには?
細かすぎるピクセル差で 「意味のない差分」が大量に出る 誤検知が多くて レビュー精度がどんどん下がる 16 2025.07.18 | 技術共有会 #8 しきい値を見直す
→ 差異率や比較対象の 範囲を調整 ノイズを減らす → date、uuid 一時的ラベル等を 検索対象から除外する 意味のある差分に集中するには?
17 2025.07.18 | 技術共有会 #8 大事な差分が検出されてない… 差分が見逃される 画面全体は同じに見えるのに... パッと見で油断する 条件を見直す
→ 遅延・アニメーション 要素に注意 意図的な変更は 「更新」として扱う → PR粒度やタイミングを チームで合わせる 「差分見逃し」から抜け出す工夫
毎回設定変更が必要で… 運用コストが地味に高い 差分レビューの知見が属人化して… ノウハウが共有されない 18 2025.07.18 | 技術共有会 #8 設定・仕組みを
共通化 → 各環境のpresetや diffルールを標準化 知見を残す・回す → PRテンプレに コメント例、 レビューガイドを追加 「差分見逃し」から抜け出す工夫
19 2025.07.18 | 技術共有会 #8 ツール選定と導入のはじめかた Getting Started with Tool
Selection and Setup
20 2025.07.18 | 技術共有会 #8 “チームで回せる” ツールを選ぼう → 一人が頑張らなくても、 仕組みで回る
まずはツール選定から コストについて OSS or SaaS、有料プランの有無 導入の手軽さ 設定のしやすさ・CI統合 チーム連携 PRへの差分通知、レビューのしやすさ
21 2025.07.18 | 技術共有会 #8 コスト・レビュー負荷 導入難度を天秤に → “試してみる”だけでも 価値がある
大事なのは「チームが使い続けられること」 SaaSy h Chromatic (Storybook公式、SaaS・GitHub連携◎ h Percy (汎用Web向け・多機能) OSSy h reg-suit (GitHub連携・軽量 h Loki (Storybookと相性◎・セットアップ簡単 h Playwright screenshot testing (E2E連動型・柔軟)
22 2025.07.18 | 技術共有会 #8 今の自分たちに 合う選択肢を探そう → フィット感のある一歩を 選ぶことが継続のカギ
「最強のツール」ではなく チームの予算と開発規模 SaaS課金はどこまでOK? 小規模ならOSSも◎ CI環境との親和性 GitHub Actions?Bitrise?Jenkins? UIの構成と技術スタック → Storybookある?E2E使ってる? React or Vue?
23 2025.07.18 | 技術共有会 #8 StorybookなしでもOKな最小構成 UIの代表画面だけキャプチャ 差分はPRにコメントで通知 →reg-suit ×
GitHub Actions 一歩進んだ構成 ・PercyやChromaticで ブラウザ描画検出 ・主要ブラウザ or 画面幅だけに絞る ・CI完結にして 「レビュー前に見える」状態を “見える化”の体験が 第一歩になる → まずは1画面からでも 始めてみよう 「完璧な導入」じゃなくてもいい
24 2025.07.18 | 技術共有会 #8 まとめ VRT導入で迷わないために Conclusion: How to
Get Started with VRT Without Getting Stuck
25 2025.07.18 | 技術共有会 #8 ツール選定はチームに合うことが最優先 「最強」より「続けられる」を選ぶ 試すだけでも価値がある 一歩踏み出すことで全体の理解が深まる “見える化”でチームの会話が変わる
コメント1つからレビュー文化が始まる でも、“使いこなす” より“チームに根付く” が大事 → 一緒に育てていくもの として始めよう VRTはまだ特殊な存在かもしれない
Freelance Frontend Engineer Tsubasa SEKIGUCHI ご清聴ありがとうございました! Thank you for listening!
2025.07.18 | 技術共有会 #8 NON-CONFIDENTIAL PUBLIC DOMAIN DOCUMENTATION