TDD er død. Lenge leve TDD!

45
TDD er død. Lenge leve TDD! Kjetil Klaussen Capitech AS

Transcript of TDD er død. Lenge leve TDD!

Page 1: TDD er død. Lenge leve TDD!

TDD er død. Lenge leve TDD!

Kjetil Klaussen

Capitech AS

Page 2: TDD er død. Lenge leve TDD!
Page 3: TDD er død. Lenge leve TDD!

Hva

Hvordan

Nekrolog

Test-Driven Development

Page 4: TDD er død. Lenge leve TDD!

Kunsten å velge

enkleløsninger

Page 5: TDD er død. Lenge leve TDD!

Kunsten

å kunne

endre

mening

Plan APlan BPlan C

Page 6: TDD er død. Lenge leve TDD!

First, solve the problem.

Then, write the code.

— John Johnson

Page 7: TDD er død. Lenge leve TDD!

Rød

GrønnRefaktorer

Page 8: TDD er død. Lenge leve TDD!

Make it work.

Make it right.

Make it fast.

- Kent Beck

Page 9: TDD er død. Lenge leve TDD!

Kode

Debug

Debug-Driven Development

Debug

Page 10: TDD er død. Lenge leve TDD!
Page 11: TDD er død. Lenge leve TDD!
Page 12: TDD er død. Lenge leve TDD!

Be humble about what

tests can achieve.

Tests don’t improve

quality: developers do.

- James O. Coplien

Page 13: TDD er død. Lenge leve TDD!

System-tester

Page 14: TDD er død. Lenge leve TDD!

If it doesn’t work,

it doesn’t matter how

fast it doesn’t work.

— Mich Ravera

Page 15: TDD er død. Lenge leve TDD!

Backend

IIS Apache Node

RDBMS NoSQL ESB

Frontend MobilWeb Windows

NTFS

Page 16: TDD er død. Lenge leve TDD!

Enhetstester

Page 17: TDD er død. Lenge leve TDD!

Backend C# Java Ruby Python JavaScript

Storage RDBMS NoSQL ESB MSMQ RabbitMQ

Frontend

AndroidWeb

JavaScript

HTML/CSS

WPF

XAML

C#

XML

Java

TCP Named pipesHTTP Web Sockets

TCP Named pipesHTTP Web Sockets

HTML/CSS XAML XML GUI

UI

Page 18: TDD er død. Lenge leve TDD!

Backend C# Java Ruby Python JavaScript

Frontend

AndroidWeb

JavaScript

WPF

C# Java

TDD: Test-først enhetstesting

Page 19: TDD er død. Lenge leve TDD!

Backend C# Java Ruby Python JavaScript

Frontend

AndroidWeb

JavaScript

WPF

C# Java

Proxy Facade

Mediator Strategy Factory Facade State

Observer Composite Strategy Visitor

Repository Adapter Factory Memento

Page 20: TDD er død. Lenge leve TDD!

Ekte vare Billig kopi

Page 21: TDD er død. Lenge leve TDD!
Page 22: TDD er død. Lenge leve TDD!

Backend C# Java Ruby Python JavaScript

Controller

RequestModel

ResponseModel

Repository

Domenemodell

x

y

z

Page 23: TDD er død. Lenge leve TDD!

Funksjonelle tester

BDDBehaviour-Driven Dev

ATDDAcceptance Test-Driven Dev

SbESpecification by Example

SDDStorytest-Driven Dev

AATAgile Acceptance Testing

EDDExample-Driven Dev

Page 24: TDD er død. Lenge leve TDD!

Backend C# Java Ruby Python JavaScript

Storage RDBMS NoSQL ESB MSMQ RabbitMQ

Frontend

AndroidWeb

JavaScript

HTML/CSS

WPF

XAML

C#

XML

Java

TCP Named pipesHTTP Web Sockets

TCP Named pipesHTTP Web Sockets

Page 25: TDD er død. Lenge leve TDD!
Page 26: TDD er død. Lenge leve TDD!
Page 27: TDD er død. Lenge leve TDD!

Stop obsessing about

unit tests, embrace

backfilling of tests

when you're happy with

the design, and strive for

overall system clarity

as your principle pursuit.

- David Heinemeier Hansson

Page 28: TDD er død. Lenge leve TDD!
Page 29: TDD er død. Lenge leve TDD!
Page 30: TDD er død. Lenge leve TDD!
Page 31: TDD er død. Lenge leve TDD!

Backend C# Java Ruby Python JavaScript

Storage RDBMS NoSQL ESB MSMQ RabbitMQ

Frontend

AndroidWeb

JavaScript

HTML/CSS

WPF

XAML

C#

XML

Java

TCP Named pipesHTTP Web Sockets

TCP Named pipesHTTP Web Sockets

Page 32: TDD er død. Lenge leve TDD!
Page 33: TDD er død. Lenge leve TDD!
Page 34: TDD er død. Lenge leve TDD!
Page 35: TDD er død. Lenge leve TDD!
Page 36: TDD er død. Lenge leve TDD!
Page 37: TDD er død. Lenge leve TDD!
Page 38: TDD er død. Lenge leve TDD!
Page 39: TDD er død. Lenge leve TDD!
Page 40: TDD er død. Lenge leve TDD!
Page 41: TDD er død. Lenge leve TDD!
Page 42: TDD er død. Lenge leve TDD!
Page 43: TDD er død. Lenge leve TDD!

Verktøy & Bibliotek

Enhetstesting

• C#

• XUnit.net

• NCrunch

• TestDriven.Net

• JavaScript

• Jasmine

• Karma

• Karma Test Adapter for Visual Studio

• PhantomJS

Funksjonelle tester

• SpecFlow

• Coypu

• Firefox

Page 44: TDD er død. Lenge leve TDD!

Any fool can write code

that a computer can

understand.

Good programmers write

code that humans can

understand.

- Martin Fowler

Page 45: TDD er død. Lenge leve TDD!

[email protected]

kjetilk.com

@kjetilkl

no.linkedin.com/in/kjetilk