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
頑張らずに始める!フロントエンド単体テストの歩み
Search
Wayama
June 30, 2021
Programming
640
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
頑張らずに始める!フロントエンド単体テストの歩み
https://spacemarket.connpass.com/event/216510/
登壇時の発表資料です
Wayama
June 30, 2021
More Decks by Wayama
See All by Wayama
なぜ我々は使われない機能開発に時間をかけ てしまったのか
disneyladysango
1
270
タスクを小さくしたら チームの生産性が上がったお話
disneyladysango
0
630
Other Decks in Programming
See All in Programming
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
150
Turning Architecture into Unit Tests in the AI Era (NSSpain XIV)
steliosf
PRO
1
130
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
130
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
7
1.8k
Unity6 URPによる海底をテーマにしたVJシステムの解説 | Unity Shader 完全に理解した 勉強会
gam0022
0
320
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
13
6.4k
CodeRabbitの効果検証と過ごしてみた3ヶ月
armondando
0
130
Java 27新機能 / Java 27 new features
kishida
2
200
Embedded Swiftで作る自作USBデバイス によるiOSデバイスの自動テスト / iOSDC Japan 2026 glassfiber
glassfiber
0
290
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
440
AI が書く Go コードの品質を劇的に向上させる Linter: “declscope”
mpyw
0
480
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
440
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
Abbi's Birthday
coloredviolet
4
10k
Optimising Largest Contentful Paint
csswizardry
37
4k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
How to Think Like a Performance Engineer
csswizardry
28
2.9k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.2k
How to build a perfect <img>
jonoalderson
1
6.1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
Writing Fast Ruby
sferik
630
63k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Transcript
頑張らずに始める! フロントエンド単体テストの歩み 2021/06/30 和山 祐也
2 自己紹介 ゲームセンターの店長からエンジニアへ転職 エンジニアとしてのキャリアを3年ほど経て 2020年7月にスペースマーケットへ JOIN Javaからプログラミングを知った影響か 静的型付け言語が好き あとディズニーも好き
3 本日お話すること
4 本日お話しすること 1. 単体テストに関する2つの取り組み 2. 「頑張らないで始める」ために頑張らなければいけないこと 2.1. UTハンズオン 2.2. なぜテストコードが必要なのかを言語化
2.3. 評価制度への組み込み 3. さいごに
5 単体テストに力を入れて半年が経ちました
6 単体テストに関する2つの取り組み ⭐ 気軽な情報共有や相談ができる場を設ける チーム定例の場を使う → ツールの導入をした際に使い方を共有 → 不明点があれば議題としてあげる Slackでテスト専用チャンネルを作る
→ テストに絞った話題が参照できる ⭐ 現状のカバレッジをSlackで通知する仕組み 毎週金曜日の夜に各リポジトリのカバレッジを通知 → 週単位でアクションできたかどうかが一目瞭然
7 「頑張らないで始める」ために 頑張らなければいけないこと
8 「頑張らないで始める」ために頑張らなければいけないこと ある日突然上司に テストコードを実装できるように環境を整えました これからは必ず実装時にテストコードを書いてください と言われたらあなたはできますか?
9 「頑張らないで始める」ために頑張らなければいけないこと ある日突然上司に テストコードを実装できるように環境を整えました これからは必ず実装時にテストコードを書いてください と言われたらあなたはできますか? テストコードを書いたことがなければ実施のハードルが高い
10 「頑張らないで始める」ために頑張らなければいけないこと なぜできないのか? 問題点 やったこと 書き方が分からない UTハンズオンの実施 必要性が理解できていない なぜテストコードが必要なのかを言語化 負担の増加
評価制度への組み込み
11 「頑張らないで始める」ために頑張らなければいけないこと • やったこと • 進め方 UTハンズオン 非同期処理を行う コンポーネント イベント処理の
扱い方 フロントエンド 単体テスト入門 単体テスト入門 課題が完了したら PRを提出しレビュー 課題を用意 チュートリアルの コードに沿って説明
12 「頑張らないで始める」ために頑張らなければいけないこと チーム内で話し合う • バグを防いだり、既存コードへの影響を把握する • 手で確認するより自動テストのコードを実行する方が早いので楽ができる • コーディング時の思考内容を明確化・単純化するため •
ゴールが決まるので、コーディングが過程を合わせるだけの作業になる etc…. なぜテストコードが必要なのかを言語化 各メンバーがどのように考えているか、チーム内で認識を合わせる
13 「頑張らないで始める」ために頑張らなければいけないこと 人を動かす原則 原則3:人の立場に身を置く 人に何かをしてほしいなら、その人が何を欲しているかを考え ること。相手の利益と自分の利益を一致させる 。 評価制度への組み込み コードの保守性も上がり、 テストコードを書くことで評価も上がる状態に
14 さいごに
15 さいごに • 積極的にテストコードを実装するようになった ◦ 軽微なバグ修正から新規開発までテストコードを全員書くようになりました ◦ 特に既存コードはClassコンポーネント+Fatコントローラ化しているので、コードをファイル単 位で分割しそこにテストを実装するといった取り組みができています •
バグ修正でのデグレが減った ◦ 開発時にQAなどで上がったバグに対して修正 → テストが落ちる → 想定外の変更が加 わったという発見が早くなりデグレが減りました。
16 さいごに • 積極的にテストコードを実装するようになった ◦ 軽微なバグ修正から新規開発までテストコードを全員書くようになりました ◦ 特に既存コードはClassコンポーネント+Fatコントローラ化しているので、コードをファイル単 位で分割しそこにテストを実装するといった取り組みができています •
バグ修正でのデグレが減った ◦ 開発時にQAなどで上がったバグに対して修正 → テストが落ちる → 想定外の変更が加 わったという発見が早くなりデグレが減りました。 是非皆さんのチームでも素敵なテストライフを!
None