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
What is TDD?
Search
浦川仁成
September 25, 2024
Programming
1k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
What is TDD?
新規PJでTDDを導入することになったので、チームメンバーにTDDのメリットを説明するため、ChatGPTにMarpでスライドを作ってもらいました。
浦川仁成
September 25, 2024
More Decks by 浦川仁成
See All by 浦川仁成
Java GOLD認定者がGoに浮気した話
urakawa_jinsei
0
40
Raycastを使いこなせ!
urakawa_jinsei
0
130
Other Decks in Programming
See All in Programming
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
180
作って学ぶSpring BootのAuto Configuration / JJUG Night Seminar 2026-10-19
rshindo
0
200
ChromeでローカルLLM
ryu1013
0
160
Domain-Driven Transformation
hschwentner
2
2.3k
最近”作らせてる” ローカルAIアプリの話
akit37
0
490
Vue Fes Japan の “作る側”に関わってみて
naokihaba
1
180
[Dev Group Paris Octobre 26] Agentforce, SIforce, Claudeforce, Slackbot… on s'y retrouve ?
nabondance
0
120
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
190
sbt 2.0: takeoff
eed3si9n
0
170
AWSに止められる覚悟してますか?
morizo_1984
2
540
現場と育てるRailsモデリング 〜Spreadsheetから始めたモデル設計〜
siroemk
2
830
R8 の設定見直しでアプリサイズ削減
andpad
0
220
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
371
20k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
460
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.7k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.9k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Making the Leap to Tech Lead
cromwellryan
135
10k
Test your architecture with Archunit
thirion
2
2.4k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.2k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
740
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
370
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
540
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