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
Wayama
June 30, 2021
Programming
0
570
頑張らずに始める!フロントエンド単体テストの歩み
https://spacemarket.connpass.com/event/216510/
登壇時の発表資料です
Wayama
June 30, 2021
Tweet
Share
More Decks by Wayama
See All by Wayama
なぜ我々は使われない機能開発に時間をかけ てしまったのか
disneyladysango
1
180
タスクを小さくしたら チームの生産性が上がったお話
disneyladysango
0
420
Other Decks in Programming
See All in Programming
詳解!defer panic recover のしくみ / Understanding defer, panic, and recover
convto
0
240
Deep Dive into Kotlin Flow
jmatsu
1
330
モバイルアプリからWebへの横展開を加速した話_Claude_Code_実践術.pdf
kazuyasakamoto
0
320
アルテニア コンサル/ITエンジニア向け 採用ピッチ資料
altenir
0
100
はじめてのMaterial3 Expressive
ym223
2
310
@Environment(\.keyPath)那么好我不允许你们不知道! / atEnvironment keyPath is so good and you should know it!
lovee
0
120
旅行プランAIエージェント開発の裏側
ippo012
2
900
Navigation 2 を 3 に移行する(予定)ためにやったこと
yokomii
0
170
ファインディ株式会社におけるMCP活用とサービス開発
starfish719
0
440
Improving my own Ruby thereafter
sisshiki1969
1
160
もうちょっといいRubyプロファイラを作りたい (2025)
osyoyu
1
430
今だからこそ入門する Server-Sent Events (SSE)
nearme_tech
PRO
3
190
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Mobile First: as difficult as doing things right
swwweet
224
9.9k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Agile that works and the tools we love
rasmusluckow
330
21k
RailsConf 2023
tenderlove
30
1.2k
The World Runs on Bad Software
bkeepers
PRO
70
11k
It's Worth the Effort
3n
187
28k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
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