onsdag 26. november 2008

Hva er egentlig en enhetstest?

Det kan synes rart for mange at det (fortsatt) er diskusjon om hva en enhetstest er og hva en integrasjonstest er. Flytende overganger mellom de to forkludrer forståelsen noe.

Mange utviklere mener alt som ikke kan enkelt automatiseres er en integrasjonstest. Som database og GUI. Men i det øyeblikket det er mulig å automatisere testing av slikt blir de enhetstester? For det er jo nok av verktøy og metoder for automatisering av både database og GUI.

Definert i f.eks. Wikipedia er enhetstester selvsagt all testing som verifiserer enkeltdeler i en applikasjon for seg. Tester du en funksjon isolert og ikke dens kommunikasjon med andre funksjoner eller objekter er det enhetstesting. Når blir en test av en funksjon til en integrasjonstest?

Integrasjonstesting handler om testing av modulers samspill i gruppe. Er du tester og leser dette tenker du sikkert "hva er en modul?". I utgangspunktet er dette bare de samme enhetene som i enhetstesting, men testet i gruppe.

Er det viktig å vite forskjellen? Kanskje ikke så mye for den enkelte utvikler, men i kontraktssammenheng kan det være fantastisk viktig. Kontraktsfester man et nivå av integrasjonstesting vil det jo selvsagt være viktig å vite hva man definerer som enhetstesting og hva som er integrasjonstesting, og det blir fort mye tester. Et stort system koster mye å teste.

Ingen kommentarer: