Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig...

152
Test Driven Development Viktor Nordling

Transcript of Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig...

Page 1: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

Test Driven Development

Viktor Nordling

Page 2: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

testdriven utveckling

Page 3: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

presentera mig

Page 4: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

Viktor Nordling

Page 5: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

civilingenjör i datateknik

Page 6: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

KTH 1999-2004

Page 7: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

HÅR!

Page 8: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

Japan

Page 9: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

utbytesstudent

Page 10: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

Tokyo Institute of Technology

Page 11: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

ett tips

Page 12: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

åk!

Page 13: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

karriär

Page 14: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

2000

Page 15: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

Webest

Page 16: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

“bli rika på IT-bubblan”

Page 17: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

blev vi inte

Page 18: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

lärde oss mycket

Page 19: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

konsulter

Page 20: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

“betala med mobilen”

Page 21: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

olika företag

Page 22: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent
Page 23: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent
Page 24: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent
Page 25: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

gemensam nämnare

Page 26: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent
Page 27: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

“konsult”

Page 28: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

poker / online gaming

Page 29: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

sett mycket dålig kod

nästan alla ställen

Page 30: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

tips: gör den inte sämre

Page 31: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

se många olika företag

Page 32: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

gizmondo

Page 33: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent
Page 34: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

tradedoubler

Page 35: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent
Page 36: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

aftonbladet

Page 37: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

ingen kommentar

Page 38: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

IDAG

Page 39: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent
Page 40: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

startat 2007 med 3 kollegor från Tain

Page 41: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

flaggskeppsprodukt

Page 42: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

“FIREBASE”

Page 43: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

“server för spel på nätet med många samtidiga spelare”

Page 44: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

säljer servern till kunder som vill göra spel och hjälper dom

att göra spelen

Page 45: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

Mahjong

Page 46: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent
Page 47: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

Backgammon

Page 48: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent
Page 49: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

några av Europas största spelsajter

Page 50: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent
Page 51: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent
Page 52: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

inte miljonärer än

Page 53: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

försörjer oss som konsulter

Page 54: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent
Page 55: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

java + swing

Page 56: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

FIREBASE

Page 57: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

idén

Page 58: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent
Page 59: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent
Page 60: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

köpte pokerserver

Page 61: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

KANADA

Page 62: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

“arkitektur” “kluster”

Page 63: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent
Page 64: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent
Page 65: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

lärde oss mycket

Page 66: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

“I know several thousand things that

don’t work”- Thomas Edison

Page 67: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

som vi använde för att bygga Firebase

Page 69: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

några coola saker

Page 70: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

riktig fail over

Page 71: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

lägg till server under körning

Page 72: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

open source

Page 74: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

något annat jag lärde mig på Tain

Page 75: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

TDD

Page 76: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent
Page 77: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

Henrik Kniberg

Page 78: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent
Page 79: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

projektledare

Page 80: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

kunde programmera

Page 81: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

introduktion till TDD

Page 82: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

då jag såg ljuset

stulit några slides

Page 83: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

Vad är TDD?

Page 84: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

poll

Page 85: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

skrivit unit-tester?

Page 86: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

hört talas om TDD?

Page 87: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

använt TDD?

Page 88: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

använt Eclipse?

Page 89: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

TDD=skriv testet först, sen koden

Page 90: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

testet driver koden

Page 91: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

REDGREEN

REFACTOR

Page 92: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

RED = fallerande test

Page 93: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

GREEN = fungerande test

Page 94: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

REFACTOR = eliminera duplucering

Page 95: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

TDD != alla tester

Page 96: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

“specifikation”

Page 97: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

börja med ETT test

Page 98: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

sen kod

Page 99: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

sen test

Page 100: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

sen kod

Page 101: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

“baby steps”

Page 102: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

feedback

Page 103: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

public static void main(String args[]) {... some stuff here

System.out.println("Result = " + someValue); }

Page 104: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent
Page 105: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

ROLIGARE

Page 106: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

SNABBARE

Page 107: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

BÄTTRE

Page 108: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

AUTOMATISERA

Page 109: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

vanligt problem när man skriver ett test:

Page 110: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

“för att skapa en instans av A behöver jag en B och en C, men för att kunna skapa en C behöver jag en D...”

Page 111: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

TDD kräver tesbarhet

Page 112: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

testbarhet => “loose coupling”

Page 113: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

TDD => bättre design

Page 114: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

ett antal tester => “test harness”

Page 115: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

skyddsnät

Page 116: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent
Page 117: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

testtäckning => finmaskighet i skyddsnätet

0%-100%om man kör alla tester och kollar hur många procent av koden som testades så får man testtäckningen

Page 118: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent
Page 119: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

Text

Page 120: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

TDD => hög testtäckning

Page 121: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

fördelar

Page 122: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

fångar buggar och regressioner

Page 123: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

minskar “development by fear”

Page 124: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

tillåter större refaktoreringar

Page 125: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

när du skriver testet

Page 126: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

låtsas att du använder kod som redan finns

Page 127: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

och att koden är bra

Page 128: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

skriv sen den bra koden

Page 129: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

när du fixar en bugg

Page 130: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

börja med ett test som påvisar buggen

Page 131: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

ett BRA test är:

Page 132: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

kort

Page 133: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

testar EN sak och är TYDLIGT med vad det

testar

Page 134: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

går SNABBT att köra

Page 135: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

FALLERAR om koden det testar är trasig

Page 136: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

är TYDLIGT med vad som är fel när det

fallerar

Page 137: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

public void testFirstFibonacciIsZero() { calculator = new FibonacciCalculator(); int first = calculator.getFibonacci(0); assertEquals(0, first); }

Page 138: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

Live-demo

Page 139: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

skriv en metod som tar en kommaseparerad lista av booleans och

returnerar en java.util.List<Boolean>

Page 140: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

exempel:“true, false” =>

[true, false]

Page 141: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

nyttiga tips

Page 142: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

keep it short!

Page 143: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

testkod är lika viktig att underhålla som produktionskod

Page 144: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

undvik duplicering

Page 145: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

undvik övertestning

Page 146: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

använd TDD även när du “bara ska göra en

liten grej”

Page 147: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent
Page 148: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent
Page 149: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

frågor?

Page 150: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

vad är svårast med mjukvaruutveckling?

beroenden mellan klasser i stora system

hindra kod från att ruttna

“death by copy paste”

Page 151: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

vad önskar du dig att du hade lärt dig mer

om på KTH?hantera beroenden mellan klasser i stora projekt

TDD och dependency injection

Page 152: Test Driven DevelopmentTest Driven Development Viktor Nordling testdriven utveckling presentera mig Viktor Nordling civilingenjör i datateknik KTH 1999-2004 HÅR! Japan utbytesstudent

vad behöver man kunna mer än att

programmera?versionshantering

SVN / mercurial / git

byggverktyg, Ant eller Maven