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
0
110
What is TDD?
新規PJでTDDを導入することになったので、チームメンバーにTDDのメリットを説明するため、ChatGPTにMarpでスライドを作ってもらいました。
浦川仁成
September 25, 2024
Tweet
Share
Other Decks in Programming
See All in Programming
為醫療加裝Python的引擎
cclai999
0
240
Делим тесты между QA и разработчиком
mariyasaygina
0
230
M5Stack に色々な M5ユニットをつないで扱う為の新たなアプローチ
gob
0
150
Iteratorでページネーションを実現する
sonatard
2
640
遅延評価勉強法で良質な学びを
yuhisatoxxx
1
110
Modernisation Progressive d’Applications PHP
hhamon
0
150
Flutterアプリを生成AIで生成する勘所
rizumita
0
210
Rails 8 Frontend: 10 commandments & 7 deadly sins in 2025
yshmarov
0
330
Amazon BedrockでサーバレスなAIお料理ボットを作成する!!
tosuri13
0
320
Data Contracts In Practice With Debezium and Apache Flink
gunnarmorling
0
180
Beyond the RuboCop Defaults
koic
1
320
GitHub Copilot Workspace で我々のアプリ開発がどう変わるのか?
shuyakinjo
0
650
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
136
6.6k
Adopting Sorbet at Scale
ufuk
73
8.9k
How to train your dragon (web standard)
notwaldorf
86
5.6k
Testing 201, or: Great Expectations
jmmastey
36
7k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
28
1.6k
Automating Front-end Workflow
addyosmani
1365
200k
We Have a Design System, Now What?
morganepeng
48
7.1k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
41
6.5k
10 Git Anti Patterns You Should be Aware of
lemiorhan
653
59k
Unsuck your backbone
ammeep
667
57k
Build your cross-platform service in a week with App Engine
jlugia
228
18k
Principles of Awesome APIs and How to Build Them.
keavy
125
17k
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