why test driven development?

37
Test Driven Development Why Should You Care about TDD And Automated (Unit) Testing? Naresh Jain Twitter: @nashjain Blog: http://blogs.agilefaqs.com Licensed Under Creative Commons by Naresh Jain 1

Upload: naresh-jain

Post on 06-May-2015

4.290 views

Category:

Technology


1 download

DESCRIPTION

Why should developers learn and care of TDD as an important skill?

TRANSCRIPT

Page 1: Why Test Driven Development?

Test Driven DevelopmentWhy Should You Care about TDD

And Automated (Unit) Testing?

Naresh JainTwitter: @nashjain

Blog: http://blogs.agilefaqs.com

Licensed Under Creative Commons by Naresh Jain1

Page 2: Why Test Driven Development?

Test Driven Development

TDD Rhythm - Test, Code, Refactor

2

Page 3: Why Test Driven Development?

Add a Test

Test Driven Development

TDD Rhythm - Test, Code, Refactor

2

Page 4: Why Test Driven Development?

Add a Test

Run the Test

Test Driven Development

TDD Rhythm - Test, Code, Refactor

2

Page 5: Why Test Driven Development?

Add a Test

Run the TestPass

Test Driven Development

TDD Rhythm - Test, Code, Refactor

2

Page 6: Why Test Driven Development?

Add a Test

Run the Test

Fail

Pass

Test Driven Development

TDD Rhythm - Test, Code, Refactor

2

Page 7: Why Test Driven Development?

Add a Test

Run the Test

Make a little change

Fail

Pass

Test Driven Development

TDD Rhythm - Test, Code, Refactor

2

Page 8: Why Test Driven Development?

Add a Test

Run the Test

Make a little change

Run the Test

Fail

Pass

Test Driven Development

TDD Rhythm - Test, Code, Refactor

2

Page 9: Why Test Driven Development?

Add a Test

Run the Test

Make a little change

Run the Test

Fail

Fail

Pass

Test Driven Development

TDD Rhythm - Test, Code, Refactor

2

Page 10: Why Test Driven Development?

Add a Test

Run the Test

Make a little change

Run the Test

Fail

Pass

Fail

Pass

Test Driven Development

TDD Rhythm - Test, Code, Refactor

2

Page 11: Why Test Driven Development?

Add a Test

Run the Test

Make a little change

Run the Test

Refactor

Fail

Pass

Fail

Pass

Test Driven Development

TDD Rhythm - Test, Code, Refactor

2

Page 12: Why Test Driven Development?

Add a Test

Run the Test

Make a little change

Run the Test

Refactor

Fail

Pass

Fail

Pass

Test Driven Development

TDD Rhythm - Test, Code, Refactor

2

Page 13: Why Test Driven Development?

Add a Test

Run the Test

Make a little change

Run the Test

Refactor

Fail

Pass

Fail

Pass

Test Driven Development

TDD Rhythm - Test, Code, Refactor

2

Page 14: Why Test Driven Development?

Add a Test

Run the Test

Make a little change

Run the Test

Refactor

Fail

Pass

Fail

Pass

Test Driven Development

TDD Rhythm - Test, Code, Refactor

2

Page 15: Why Test Driven Development?

Why Learn TDD?

3

Page 16: Why Test Driven Development?

Manual (monkey) Checking by Developers and Tester

4

Page 17: Why Test Driven Development?

Stay away from (time hungry) debugger

5

Page 18: Why Test Driven Development?

Maintain Focus

6

Page 19: Why Test Driven Development?

Confidence

7

Page 20: Why Test Driven Development?

Reduce Wastage: Hand Overs

8

Page 21: Why Test Driven Development?

Helps youSlow down and Think

9

Page 22: Why Test Driven Development?

Communication

10

Page 23: Why Test Driven Development?

11

Page 24: Why Test Driven Development?

Ultimate Goals

12

Page 25: Why Test Driven Development?

Ultimate Goals

• Bring JOY back to programming

12

Page 26: Why Test Driven Development?

Ultimate Goals

• Bring JOY back to programming

• Understand Code Easily

12

Page 27: Why Test Driven Development?

Ultimate Goals

• Bring JOY back to programming

• Understand Code Easily

• Produce Simple, Testable, Loosely-Coupled Design

12

Page 28: Why Test Driven Development?

Ultimate Goals

• Bring JOY back to programming

• Understand Code Easily

• Produce Simple, Testable, Loosely-Coupled Design

• Build Quality In

12

Page 29: Why Test Driven Development?

Ultimate Goals

• Bring JOY back to programming

• Understand Code Easily

• Produce Simple, Testable, Loosely-Coupled Design

• Build Quality In

• Reduce Maintenance Significantly

12

Page 30: Why Test Driven Development?

Living, up-to-date specification

13

Page 31: Why Test Driven Development?

Learning:Listen to your code

14

Page 32: Why Test Driven Development?

Testable Code by Design+

Safety Net

15

Page 33: Why Test Driven Development?

Communicate Design Decisions

16

Page 34: Why Test Driven Development?

Loosely-Coupled Design

17

Page 35: Why Test Driven Development?

Refactoring

18

Page 36: Why Test Driven Development?

Ultimate Goals

• Bring JOY back to programming

• Understand Code Easily

• Produce Simple, Testable, Loosely-Coupled Design

• Build Quality In

• Reduce Maintenance Significantly

19