Workshop Testfirst approach Pietu Pohjalainen Testaus perinteisesti l

  • Slides: 8
Download presentation
Workshop: Test-first approach Pietu Pohjalainen

Workshop: Test-first approach Pietu Pohjalainen

Testaus perinteisesti l Tarkoituksena löytää virheitä ohjelmasta l l l mutta mikä on virhe?

Testaus perinteisesti l Tarkoituksena löytää virheitä ohjelmasta l l l mutta mikä on virhe? Sijoittuu tavallisesti ohjelmistoprojektin loppupäähän Yleisesti tunnustetusti tylsää puuhaa

Test-first approach l l Tarkoituksena käyttää automaattisia yksikkötestejä määrittelyvälineenä Koska yksikkötestit ovat toteutettu ohjelmakoodina,

Test-first approach l l Tarkoituksena käyttää automaattisia yksikkötestejä määrittelyvälineenä Koska yksikkötestit ovat toteutettu ohjelmakoodina, voidaan ne myös suorittaa Näin nähdään toteutettavan ohjelman valmiusaste määrittelyynsä nähden Käytännössä: test a bit – code a bit

Työkaluja Javalle l Käännösprosessin automatisointiin ant l l Yksikkötestien määrittelemiseen JUnit l l http:

Työkaluja Javalle l Käännösprosessin automatisointiin ant l l Yksikkötestien määrittelemiseen JUnit l l http: //ant. apache. org http: //www. junit. org Artikkeli: ’JUnit Test Infected: Programmers Love Writing Tests’ l http: //junit. sourceforge. net/doc/testinfected/testing. htm

Käännösprosessi ANTilla l Tiedosto build. xml määrittelee käännöskohteita ja niiden välisiä riippuvuuksia l l

Käännösprosessi ANTilla l Tiedosto build. xml määrittelee käännöskohteita ja niiden välisiä riippuvuuksia l l esim. compile, test, javadoc jne. Komentoriviltä (tai IDEstä) käynnistetään prosessi komennolla % ant test l Nyt suoritetaan test-kohteessa määritellyt toiminnnot

Yksikkötestin rakenne l l l package tests; import junit. framework. *; public class Unit.

Yksikkötestin rakenne l l l package tests; import junit. framework. *; public class Unit. Test extends Test. Case { protected void set. Up() { } public void test. Multiplication() { src. Main. Class main = new src. Main. Class(); testvalue = Integer. MAX_VALUE; assert. True( main. multiply. By. Two(testvalue) == testvalue*2 ); } l l l protected void tear. Down() { } l l l }

JUnitin käyttäminen Kehyksen mukana tulee graafinen työkalu testien ajamiseen l Kun JUnit. jar löytyy

JUnitin käyttäminen Kehyksen mukana tulee graafinen työkalu testien ajamiseen l Kun JUnit. jar löytyy CLASSPATHista, ajetaan % java junit. swingui. Testrunner l Voidaan suorittaa myös komentoriviltä l

Työkaluja muille kielille l l Useimmille muille kielille löytyy jokin x. Unit Käännösten automatisointiin

Työkaluja muille kielille l l Useimmille muille kielille löytyy jokin x. Unit Käännösten automatisointiin esim. make Näille työkaluille ei kuitenkaan ole saatavilla ryhmän puolesta yhtä kattavaa ohjausta Automatisointi kannattaa kuitenkin, käytetystä kielestä ja ympäristöstä riippumatta