152
Test Driven Development Viktor Nordling

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

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

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