bygg applikasjonen din testbar

29
Bygg applikasjonen din testbar Miniseminar NTNU Janniche Haugen

Upload: janniche

Post on 28-Jun-2015

248 views

Category:

Technology


3 download

DESCRIPTION

Slides from presentation at NTNU. Slides are in norwegian.

TRANSCRIPT

Page 1: Bygg applikasjonen din testbar

Bygg applikasjonen din testbar

Miniseminar NTNU

Janniche Haugen

Page 2: Bygg applikasjonen din testbar

Vedlikehold av tester over tid

Page 3: Bygg applikasjonen din testbar

Kravarbeid

Page 4: Bygg applikasjonen din testbar
Page 5: Bygg applikasjonen din testbar
Page 6: Bygg applikasjonen din testbar
Page 7: Bygg applikasjonen din testbar
Page 8: Bygg applikasjonen din testbar
Page 9: Bygg applikasjonen din testbar
Page 10: Bygg applikasjonen din testbar
Page 11: Bygg applikasjonen din testbar

INVEST

Page 12: Bygg applikasjonen din testbar

IndependentN

ValuableES

Testable

Page 13: Bygg applikasjonen din testbar

Om kravene dine virker detestable, må du gjøre noe med det

Page 14: Bygg applikasjonen din testbar

Et spørsmål om tid…

Page 15: Bygg applikasjonen din testbar
Page 16: Bygg applikasjonen din testbar

class Ordre {

Date lagretTidspunkt;

lagre() {

this.lagretTidspunkt = new Date();

(… resten av koden for å lagre…)

}

}

Page 17: Bygg applikasjonen din testbar
Page 18: Bygg applikasjonen din testbar

new Date(); new Date(); new Date(); new Date(); new Date(); new Date();

new Date(); new Date(); new Date(); new Date(); new Date(); new Date();new Date(); new Date(); new Date();new Date(); new Date(); new Date();new Date(); new Date(); new Date();new Date(); new Date(); new Date();new Date(); new Date(); new Date();new Date(); new Date(); new Date();new Date(); new Date(); new Date();new Date(); new Date(); new Date();new Date(); new Date(); new Date();

Page 19: Bygg applikasjonen din testbar

interface Klokke {

Date nå();

}

Page 20: Bygg applikasjonen din testbar

class Ordre {

Date lagretTidspunkt;

Klokke klokke;

public Ordre(Klokke klokke) {

this.klokke = klokke;

}

(…)

Page 21: Bygg applikasjonen din testbar

(…)

lagre() {

this.lagretTidspunkt = klokke.nå();

}

}

Page 22: Bygg applikasjonen din testbar

class SystemKlokke implements Klokke {

public Date nå() {

return new Date();

}

}

Page 23: Bygg applikasjonen din testbar

class JusterbarKlokke implements Klokke {

Date tid;

public Date nå() {

return tid;

}

public justerTid(Date tid) {

this.tid = tid;

}

}

Page 24: Bygg applikasjonen din testbar

@Test

public testSammenslåing() {

Klokke klokke = new JusterbarKlokke();

Ordre ordre1 = new Ordre(klokke);

Ordre ordre2 = new Ordre(klokke);

(…)

Page 25: Bygg applikasjonen din testbar

(…)

klokke.justerTid(new Date(10, 09, 21));

ordre1.lagre();

klokke.justerTid(new Date(10, 09, 22));

ordre2.lagre();

// sjekk ordre ikke sammenslått

}

Page 26: Bygg applikasjonen din testbar

Stub ut avhengigheter til tid for å gjøre koden din testbar

Page 27: Bygg applikasjonen din testbar

Altså:

For å bygge testbare applikasjoner

må vi tenkte testbarhet gjennom hele

utviklingsprosessen

Page 28: Bygg applikasjonen din testbar

spørsmål?

Page 29: Bygg applikasjonen din testbar

BEKK CONSULTING ASSKUR 39, VIPPETANGEN. P.O. BOX 134 SENTRUM, 0102 OSLO, NORWAY.

WWW.BEKK.NO

Janniche HaugenSenior Consultant+47 986 28 859

[email protected]_haugen @ twitter