test driven development speedrun

42
\ Test Driven Development Erinda Jaupaj @ErindaJaupi Valentina Servile @EsseValentina goes to

Upload: specktech

Post on 11-Apr-2017

101 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Test Driven Development SpeedRun

\ Test Driven Development

Erinda Jaupaj@ErindaJaupi

Valentina Servile@EsseValentina

goes to

Page 2: Test Driven Development SpeedRun

\ Introduction

What is Test Driven Development?

Page 3: Test Driven Development SpeedRun

\ Introduction

What is Test Driven Development?

Page 4: Test Driven Development SpeedRun

\ Introduction

What is Test Driven Development?

Maybe we should first ask ourselves...

Page 5: Test Driven Development SpeedRun

\ Introduction

What is Test Driven Development?

What is a Test?

Page 6: Test Driven Development SpeedRun

\ Introduction: what is a test?

A test is an assertion about how your code should work

Page 7: Test Driven Development SpeedRun

\ Introduction: what is a test?

It’s automated

Page 8: Test Driven Development SpeedRun

\ Introduction: what is a test?

It has a binary output(It’s either passing or failing)

Page 9: Test Driven Development SpeedRun

\ Introduction: what is a test?

It begins with a precondition(setup)

Page 10: Test Driven Development SpeedRun

\ Introduction: what is a test?

It invokes a unit of work in the system(trigger)

Page 11: Test Driven Development SpeedRun

\ Introduction: what is a test?

It makes an assertion about the result

Page 12: Test Driven Development SpeedRun

Setting up the precondition

Invoking the desired behavior

Asserting about what happened

Page 13: Test Driven Development SpeedRun

\Patterns

Back to our

main topic...

Page 14: Test Driven Development SpeedRun

\ Introduction

What is Test Driven Development?

Page 15: Test Driven Development SpeedRun

\ Introduction

What is Test Driven Development?

It’s a technique where you let tests guide your development workflow

Page 16: Test Driven Development SpeedRun

\ Introduction: how do I TDD?

It works in 3 steps:

Page 17: Test Driven Development SpeedRun

\ Introduction: how do I TDD?

It works in 3 steps:

• Write a failing test

Page 18: Test Driven Development SpeedRun

\ Introduction: how do I TDD?

It works in 3 steps:

• Write a failing test• Write just enough code to make it pass

Page 19: Test Driven Development SpeedRun

\ Introduction: how do I TDD?

It works in 3 steps:

• Write a failing test• Write just enough code to make it pass• Refactor your mess

Page 20: Test Driven Development SpeedRun

\ Introduction: how do I TDD?

It works in 3 steps:

• Write a failing test• Write just enough code to make it pass• Refactor your mess

Rinse an

d

Repeat!

Page 21: Test Driven Development SpeedRun

\ Introduction: how do I TDD?

REFACTOR

FAIL

PASS

TDD

Page 22: Test Driven Development SpeedRun

\ Introduction

What a waste

Of time!!!

Just make

it work!!!

Page 23: Test Driven Development SpeedRun

\Patterns

TDD

Hands on

Page 24: Test Driven Development SpeedRun

\ TDD Hands on

The requirements:

• Print numbers in sequence• If the number is divisible by 3, print “Fizz”• If the number is divisible by 5, print “Buzz”• If divisible by both, print “FizzBuzz”

Page 25: Test Driven Development SpeedRun

\Patterns

The

FizzBuzz Kata

Page 26: Test Driven Development SpeedRun

\Patterns

Ta-Da!

Page 27: Test Driven Development SpeedRun

\ Wrapping up: what is TDD for?

Okay, so what?

Page 28: Test Driven Development SpeedRun

\ Wrapping up: what is TDD for?

But...

Page 29: Test Driven Development SpeedRun

\ Wrapping up: what is TDD for? ...Design!

You HAVE to think of the edge cases

Page 30: Test Driven Development SpeedRun

\ Wrapping up: what is TDD for? ...Design!

It often leads you to a simpler solution

Page 31: Test Driven Development SpeedRun

\ Wrapping up: what is TDD for? ...Design!

Makes you write pretty object interfaces

Page 32: Test Driven Development SpeedRun

\ Wrapping up: what is TDD for? ...Design!

You HAVE to think OO. And keep it simple.

Page 33: Test Driven Development SpeedRun

\ Wrapping up: what is TDD for? ...Design!

It’s easy to add new features!

Page 34: Test Driven Development SpeedRun

\ Wrapping up: what is TDD for? ...also, tests

...and to check if you broke the old ones

Page 35: Test Driven Development SpeedRun

\ Wrapping up: what is TDD for? ...also, tests

...I’ll write my tests after.

Page 36: Test Driven Development SpeedRun

\ Wrapping up: what is TDD for? ...also, tests

The code is self documented

Page 37: Test Driven Development SpeedRun

\ TDD vs Traditional

Page 38: Test Driven Development SpeedRun

\ Wrapping up: when NOT to use TDD?

• The application has little to no business logic (CRUD?)

• You are building a prototype• Quality is not important

Page 39: Test Driven Development SpeedRun

\ Wrapping up: when to use TDD?

• The application has complicated business logic

• You don’t know how your implementation will look like

• Correctness is crucial• The project is gonna be long lived

and frequently retouched

Page 40: Test Driven Development SpeedRun

\Patterns

Give it a try!

Page 41: Test Driven Development SpeedRun

www.xpeppers.com

/xpepperssrl@xpeppers

Thanks!Any questions?