Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Vueのテスト手法とVRTのススメ
Search
unotovive
February 05, 2020
Programming
8.9k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Vueのテスト手法とVRTのススメ
Bonfire frontend#5の登壇資料です
unotovive
February 05, 2020
More Decks by unotovive
See All by unotovive
Designship2022 デザインエンジニアが語る、隣接領域を学ぶということ
unotovive
2
3.2k
ゆめみのデザインエンジニア概要2022
unotovive
0
970
NIF2020 - Giral
unotovive
0
530
ふとした時に読みたくなる3冊
unotovive
0
180
【ABD】SCRUM BOOT CAMP p16-18
unotovive
0
110
ノンデザイナーズ・デザインツール
unotovive
1
470
Other Decks in Programming
See All in Programming
外から家のPCの電源入れたい!をPHPで解決する
kawashimo0
1
130
Agents on Rails - Rails at Scale 2026
irinanazarova
0
560
SREの越境 / SRE Collaboration
y0hgi
2
310
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
380
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
1k
パスワード再設定メールのURLについて知っておこう
uyuki234
0
160
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
2
630
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
5
5.1k
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
390
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
180
Unity6 URPによる海底をテーマにしたVJシステムの解説 | Unity Shader 完全に理解した 勉強会
gam0022
0
370
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
290
Featured
See All Featured
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
500
Test your architecture with Archunit
thirion
2
2.4k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
360
ラッコキーワード サービス紹介資料
rakko
1
5.3M
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
380
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Crafting Experiences
bethany
1
380
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1.1k
Leo the Paperboy
mayatellez
10
2.4k
Large-scale JavaScript Application Architecture
addyosmani
516
110k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
410
Transcript
Vueのテスト手法と VRTのすすめ Bonfire frontend#5 おとべ(株式会社ゆめみ)
自己紹介させてください
おとべです instagram twitter note github { , , , ,
} .com/unotovive
おとべです ・フロントエンド ・デザイン ・ゆめみでバイトしてる大学 生です。
本題
テスト書いてますか? フロントエンドで
テストについて初歩的な話 今日は おすすめのVRテスト と を話します
そもそもテストいる? フロントエンドで
弊社のフロントエンドエンジニアSさん
場合による
重い 案件が重い・実装が重い
案件の重さとテストの重さ ショボい案件 単体 テスト VR テスト E2E テスト
案件の重さとテストの重さ ショボい案件 単体 テスト VR テスト E2E テスト
バランスが必要 ショボい案件 単体 テスト
バランスが必要 デカくて ムズい 案件 単体 テスト VR テスト E2E テスト
バランスだけじゃ駄目 でも
どんなテストが必要か 考えて取捨選択する
どんなテストがあって どういう特徴で 何に適しているのか
Vueのテスト手法いろいろ テストを知る
単体テスト (コンポーネントテスト)
どんなテスト? ・機能や関数、コンポーネントなどの小さい単位で行うテスト ・小さい単位なので軽く高速であるべき ・常に100%を目指すべき
Vueでは?
Vueの単体テスト ・内部の実装(関数など)にフォーカスしすぎない ・コンポーネントのインターフェースをテストする ・@vue/test-utilsを使ってコンポーネントをマウントする
vue-test-utils
ブラックボックス? Props Render Actions component computed filter methods
ブラックボックス? Props Render Actions component computed filter methods 入り口と出口だけを気にする
https://www.youtube.com/watch?v=OIpfWTThrK8
ブラックボックス内に 子コンポーネントがある…
単体テストなので 子コンポーネントを一緒に チェックとかはしたくない
とか
子コンポーネントなので 渡しているPropsを変えて テストしたい
とか
子コンポーネントなので イベントが発行されている かをテストしたい
とか
全部Vue Test Utilsで 出来ます!!!
単体テストが適するところ ・ロジックが多い大型案件(自社サービスに多めな印象) ・権限周りとかで表示出し分けが複雑になってる所 ・サイトと言うよりはアプリケーションと呼ばれるような物
単体テストが適さない所 ・ペライチLP作ってください〜 ・要るわけがない ・複雑でないミニマルなアプリケーション(バランスを見て)
E2E Test (インテグレーションテスト)
どんなテスト? ・実際にブラウザを通して一連の操作を行ってみるテスト ・ブラウザを通すしストーリーがあるので都度とても長い ・開発の終盤にQAチームとかが手動でやったりもする
Vueでは? ・Vueと言うよりも出来てるアプリケーションで行うテスト ・そのためVue独自の何か、がある訳ではない ・正直なところ僕は大体QAチームに丸投げ
ということで詳しいことは スキップ Seleniumとか使うみたい
e2eテストが適するところ ・ 品質がとても大事な案件 ・QAチームを通す予定が無いもの ・継続的に機能改良などを続けていく大型の案件 ・ 品質がとても大事な案件 ・QAチームを通す予定が無いもの ・継続的に機能改良などを続けていく大型の案件
e2eテストが適さない所 ・QAさんがいる ・ある程度の信頼性が担保されてればまあ良い所
Visual Regression Test (画像差分テスト) 今日の推し
Visual Regression Test (画像回帰テスト) みんな使って
どんなテスト? ・今のスクショと前のスクショを比較してくれる ・1pxのズレも見逃さない ・予期せぬスタイル崩れとかを予防できる! ・開いてスクショトルのでソコソコに重い+遅い
こんなかんじ
Vueでは? ・Storybookのストーリー単位で見れる(Reg-suit+storycap) ・PR時にCIで動作し、GitHubやSlackにレポートを送信 ・僕の事を救ってくれたテストランキング第一位
Storybook ・ コンポーネント単位でUIを確認できる ・デザイナーとの疎通などが楽になる ・コンポーネントカタログ的な使い方ができる
Storybook
None
Reg-suit ・「よしなに」VRTをやってくれる ・レポートをS3とかに上げて自動共有 ・ドキュメントがとても充実してる
None
VueでVRTを使ってみる 超かんたん
カンタン3STEP 1.Storybookを入れて設定する 2.Reg-suitとStorycapを入れて設定 3.CIrcleCIの設定を書く(CIなら何でもいいけど)
これだけ!
せっかくなのでTips: ・CIで動かすDockerは公式のイメージを使うとイイ ・日本語の表示はDockerにフォントのインストールが必要
ほかのテストと違って Storyさえ書いてれば良い
VRTが適するところ ・中規模以上のアプリケーション ・大量にコンポーネント分けしてる場合 ・新規Joinのメンバーが来たりする場合
VRTが適さない所 ・さっさと作って終わり!メンテも改善も無し!みたいなの ・単一画面とかコンポーネント分けがされてない所(無くても ・PRを眺めただで関係ない所のCSSの問題が見抜ける神がいる
まとめ テストの種類が分かったので
バランスが大事 テストを実装するかどうかは
取捨選択をする テストの種類が分かったので
Unit テスト VR テスト E2E テスト 規模やアプリケーションの形態に 応じて使い分ける 高い信頼性が必要なときや 工数に余裕があるときにプラス
選択の指標
Vue Test Utilsを使っとけば 間違いないしカンタン Vueのテストは
VRTはフロントエンドとして とても良い選択肢 認知度低めの
平和なエンジニアライフを 目指しましょう 何が必要か考えて
最後に宣伝
Yumemi.vue#6 2/2 (木) Roppongi.vue#5 2/25 (火)
おわり まさかり歓迎です。優しく投げて下さい。