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
What is TDD?
Search
浦川仁成
September 25, 2024
Programming
1
680
What is TDD?
新規PJでTDDを導入することになったので、チームメンバーにTDDのメリットを説明するため、ChatGPTにMarpでスライドを作ってもらいました。
浦川仁成
September 25, 2024
Tweet
Share
More Decks by 浦川仁成
See All by 浦川仁成
Raycastを使いこなせ!
urakawa_jinsei
0
47
Other Decks in Programming
See All in Programming
Designing Your Organization's Test Pyramid ( #scrumniigata )
teyamagu
PRO
4
960
VitestのIn-Source Testingが便利
taro28
8
2.4k
ウォンテッドリーの「ココロオドル」モバイル開発 / Wantedly's "kokoro odoru" mobile development
kubode
1
270
Enterprise Web App. Development (1): Build Tool Training Ver. 5
knakagawa
1
120
個人開発の学生アプリが企業譲渡されるまで
akidon0000
2
1.2k
KANNA Android の技術的課題と取り組み
watabee
0
200
Laravel × Clean Architecture
bumptakayuki
PRO
0
150
The Nature of Complexity in John Ousterhout’s Philosophy of Software Design
philipschwarz
PRO
0
160
Browser and UI #2 HTML/ARIA
ken7253
2
170
開発者フレンドリーで顧客も満足?Platformの秘密
algoartis
0
200
実践Webフロントパフォーマンスチューニング
cp20
45
10k
Flutterでllama.cppをつかってローカルLLMを試してみた
sakuraidayo
0
130
Featured
See All Featured
Become a Pro
speakerdeck
PRO
28
5.3k
YesSQL, Process and Tooling at Scale
rocio
172
14k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Being A Developer After 40
akosma
91
590k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.8k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
The World Runs on Bad Software
bkeepers
PRO
68
11k
Making the Leap to Tech Lead
cromwellryan
133
9.3k
Making Projects Easy
brettharned
116
6.2k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
5
560
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
32
5.6k
Transcript
テスト駆動開発( TDD)について ソフトウェア開発における手法 1
テスト駆動開発( TDD)とは? TDD( Test Driven Development) は、ソフトウェアの機能をテストケースから始 める開発手法 3つのステップで進行: i.
テストを書く ii. コードを書く iii. リファクタリング 2
TDDのメリット コードの品質が向上する バグが早期に発見されやすい 小さなステップで開発が進むため、修正が容易 設計が洗練される 3
TDDの 3つのサイクル 1. Red: 失敗するテストを書く 2. Green: テストを通すために最小限のコードを書く 3. Refactor:
コードを整理し改善する 4
Red: 失敗するテストを書く まず、期待する動作を定義するテストを書きます。 // calculator_test.go package calculator import "testing" func
TestAdd(t *testing.T) { result := Add(2, 3) expected := 5 if result != expected { t.Errorf("expected '%d', but got '%d'", expected, result) } } 5
Green: 最小限のコードを書く 意図的にバグのあるコードを書き、テストが失敗することを確認します。 // calculator.go package calculator func Add(a, b
int) int { return a - b // 足し算ではなく、間違って引き算を実装 } この時点でテストは失敗します。これが TDDによってバグが早期に発見される例 です。 6
テスト失敗の確認 テストを実行すると、以下のエラーが表示されます: calculator_test.go:10: expected '5', but got '-1' テストがバグを早期にキャッチしました。バグがプロダクション環境に入る前に 修正可能です。
7
Green: 正しいコードを書く バグを修正して、正しい足し算を行うコードにします。 // calculator.go package calculator func Add(a, b
int) int { return a + b } 8
Refactor: コードを整理する テストが通ったら、コードの重複や無駄を取り除き、整理します。 リファクタリングの例はここでは省略しますが、機能を壊さないように注意しつつコ ードの改善を行います。 9
TDDのメリット : バグの早期発見 TDDを使用することで、コードを書いてすぐにテストが実行されるため、バグが 早期に発見されやすくなります。 例えば、間違ったコードを書いたとしても、テストがすぐに失敗を教えてくれま す。 バグが本番環境に入る前に修正できるので、品質が大幅に向上します。 10
まとめ TDDの 3つのサイクル Red: テストを書く Green: コードを書く Refactor: コードを改善する 継続的にテストを作成・実行することで、安定した品質のコードを提供できま
す。 11
最後に TDDは最初は難しく感じるかもしれませんが、繰り返すことで強力な開発手法に なります。 最初の一歩はテストを書くことから始めましょう! 12