Workshop Testfirst approach Pietu Pohjalainen Testaus perinteisesti l
- Slides: 8
Workshop: Test-first approach Pietu Pohjalainen
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, 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: //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 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. 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 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 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