Ohjelmistotekniikka - Luento 10

Save this PDF as:
 WORD  PNG  TXT  JPG

Koko: px
Aloita esitys sivulta:

Download "Ohjelmistotekniikka - Luento 10"

Transkriptio

1 Ohjelmistotekniikka - Luento 10 Luku 17: Testausstrategiat V-malli ja vaiheet yksikkö- ja integrointitestaus validointitestaus järjestelmätestaus debuggaus Luku 18: Perinteisten sovellusten testaus testattavuus valkealaatikko- ja mustalaatikkotestaus mallipohjainen testaus (testivetoisen ohjelmistokehityksen ominaisuudet) Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila

2 Soveltuvat lait ja pohdiskelun aiheita 1. Testauksella voidaan esittää virheiden olemassaolo, mutta ei todistaa virheettömyyttä / no 22, Dijkstra Noin 80 % virheistä tulee 20 % moduuleista / no 24, Pareto 1897, Fenton 2000 Mitkä ominaisuudet tekevät ohjelmistosta helpommin testattavan? Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 2

3 Ohjelmiston testaus Testing is the process of exercising a program with the specific intent of finding errors prior to delivery to the end user. Testauksessa pyritään etsimään ohjelmasta (ohjelmaa suorittamalla) virheitä ennen sen toimittamista asiakkaalle. Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 3

4 Testauksella saadaan esille virheet vaatimusten noudattaminen suorituskyky tuntuma laatuun Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 4

5 Millä tekniikoilla ohjelmiston laatua parannetaan? Käyttäjän tarpeet Ohjelmisto käytössä Vaatimusmäärittely Yksikkötestaus Käytettävyystestaus Tarkastus (formaali tekninen katselmointi) eri vaiheissa Toiminnallinen suunnittelu - käyttöliittymän suunnittelu - käyttötapausanalyysi Puhdastila (Cleanroom) Testisuunnitelmat Toiminnallinen testaus Regressiotestaus Koodaus Ohjelmistosuunnittelu Integrointitestaus Järjestelmätestaus Hyväksymistestaus Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 5

6 Verification vs. validation Verification (todentaminen) V-mallin vasen puoli (tarkastus) are we building the product right Validation (osoittaminen kelvolliseksi) V-mallin oikea puoli (testaus) are we building the right product Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 6

7 Kuka testaa? kehittäjä Understands the system but, will test "gently" and, is driven by "delivery" riippumaton testaaja Must learn about the system, but, will attempt to break it and, is driven by quality Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 7

8 Testausstrategiat yksikkötesti validointitesti järjestelmätesti integrointitesti Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 8

9 Testausstrategia Aloita testing-in-the-small ja siirry kohti testing-in-thelarge Perinteiselle ohjelmistolle aluksi kohteena moduulit sitten integrointi Olio-ohjelmistolle aluksi kohteena luokka, joka kapseloi attribuutit ja operaatiot sitten siirrytään luokkien väliseen kommunikointiin ja yhteistyöhön Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 9

10 Strategiset tehtävät Aseta selvät tavoitteet. Ymmärrä, keitä ovat ohjelmiston käyttäjät ja kehitä jokaiselle käytäjäluokalle oma profiili. Kehitä testisuunnitelma, joka korostaa rapid cycle testing. Rakenna kestävä ohjelmisto, joka testaa itse itseään. Käytä tehokasta katselmointia (formal technical reviews) jo ennen tastausvaiheita. Kohdista katselmointia myös testausstrategiaan ja testitapauksiin. Paranna testausprosessia jatkuvasti. Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 10

11 Yksikkötestaus testattava moduuli tulokset ohjelmisto suunnittelija testitapaukset Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 11

12 testattava moduuli rajapinnat paikalliset tietorakenteet raja-arvot riippumattomat polut virheiden käsittelypolut testitapaukset Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 12

13 Yksikkötestauksen ympäristö (driver) Moduuli ajuri rajapinnat paikalliset tietorakenteet raja-arvot riippumattomat polut virheiden käsittelypolut (stub) tynkä tynkä testitapaukset Tulokset Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila

14 Top Down Integrointi A moduulia testataan tynkien kanssa B F G C tyngät korvataan yksi kerrallaan (depth first) D E kun uusia moduuleita integroidaan osa testeistä ajetaan uudelleen Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 14

15 Bottom-Up Integrointi A B F G C Ajurimoduulit korvataan yksi kerrallaan depth first ryväs D E moduulit on ryhmitelty buildeiksi ja integroitu Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 15

16 Sandwich Testaus A B F G Moduulit testataan tynkien kanssa C D E moduulit on ryhmitelty buildeiksi ja integroitu ryväs Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 16

17 Regressiotestaus Integrointitestauksen tärkeä osa. Kun tehdään suurempia muutoksia tai lisätään uusi moduuli, varmistetaan ettei muutos/lisäys aiheuta ongelmia aikaisemmin virheettömissä osissa (sivuvaikutusten poistaminen). Regressiotestit koostuvat kolmenlaisista testeistä edustava otos testeistä, jotka testaavat kaikkia toimintoja lisätestejä, jotka kohdistuvat toimintoihin, joihin muutos todennäköisimmin vaikuttaa testejä, jotka kohdistuvat muutettuihin ohjelmistokomponentteihin Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 17

18 Savutestaus (Smoke Testing) Integrointitestaukseen kuuluva testi. Käytetään ohjelmistotuotteen päivittäisten lisäysten testaamiseen - perustuu testattavien koosteiden ( buildien ) luontiin Savutestauksen vaiheet: Ohjelmistokomponentit, jotka on käännetty koodiksi, integroidaan testattavaksi koosteeksi (buildiksi) Tämä osa sisältää kaikki tarvittavat datatiedostot, kirjastot, uudelleenkäytettävät moduulit ja rakennetut komponentit, joita tarvitaan yhden tai useamman tuotteen toiminnon toteutukseen Suunnitellaan joukko testejä, joilla löydetään vakavat virheet, jotka estävät testattavaa osaa toimimasta määrittelyjen mukaisesti Tarkoituksena on paljastaa show stopper virheet, eli virheet jotka todennäköisesti viivästyttäisivät projektia. Osa integroidaan muiden osien kanssa ja koko tuote (sen hetkisessä muodossa) testataan päivittäin Integrointi voi tapahtua top down tai bottom up. Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 18

19 OOT Strategia luokkatestaus vastaa yksikkötestausta luokan operaatiot testataan luokan tilakäyttäytyminen testataan integrointitestauksessa kolme strategiaa säieperustainen testaus - integroidaan luokat, joita tarvitaan käsittelemään jonkin syöte tai tapahtuma käyttöpohjainen testaus - integroidaan luokat, joita tarvitaan jokin käyttötapauksen mukaiseen toimintaan ryväspohjainen testaus - integroidaan luokat, joita tarvitaan toteuttamaan haluttu yhteistyö Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 19

20 Olioperustainen testaus aloitetaan arvioimalla OOA ja OOD mallien oikeellisuutta ja yhdenmukaisuutta muutokset testausstrategiassa yksikkö-käsite laajenee kapseloinnin tuloksena integrointi kohdistuu luokkiin ja niiden suoritukseen säikeessä tai käyttöskenaarion rajaamana ryvästestausta (cluster) käytetään testaamaan yhteistyössä toimivien luokkien toimintaa Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 20

21 Olioperustaisen koodin tarkastus ja testaus Koodin ymmärtämisen ja siten myös tarkastuksen ja testauksen ongelmana on toiminnallisuuden hajautuminen pienen palan ymmärtäminen vaatii monien muiden metodien ja luokkahierarkioiden läpikäyntiä Dunsmore et al. IEEE Software July/August 2003 private void purge() { GregorianCalendar today = new GregorianCalendar(); today.roll(calendar.date, false); for (int i=0; i < reservations.size(); i++) { if (today.after(((reservation)reservations.elementat(i)).getdate())) { reservations.removeelementat(i); date = 0; } } } Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 21

22 Toiminnallisuuden hajautuminen (delocalization) Luokat Java luokkakirjastossa Calendar Muut systeemiluokat Reservation GregorianCalendar Video purge() Vector purge operaation dokumentointi Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 22

23 Validointitestaus Validointitestaus / hyväksymistestaus testataan, että vaatimuksissa asetetut tavoitteet toteutuvat testisuunnitelma voidaan tehdä jo vaatimusten määrittelyvaiheessa Alpha/Beta testaus järjestelmään testataan asiakkaan toimesta alphatestaus suoritetaan kehittäjän tiloissa kontrolloidussa testitilanteessa ja myös kehittäjä osallistuu testitilaisuuteen betatestaus suoritetaan valittujen asiakkaiden omissa tiloissa, asiakkaat kirjaavat ongelmat ja raportoivat kehittäjälle Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 23

24 Järjestelmätestaus Järjestelmätestaus on joukko testejä, joiden tarkoituksena on testata, että järjestelmän integrointi on onnistunut ja että järjestelmä toteuttaa sille määritellyt toiminnot Elpymistestaus (Recovery testing) aiheutetaan järjestelmän kaatuminen ja testataan, että elpyminen (esim. tietokanta) toimii Turvallisuustestaus (Security testing) varmistetaan, että rakennetut turvatoimet suojaavat järjestelmää luvattomalta käytöltä, väärinkäytöltä ja hyökkäyksiltä Kuormitustestaus (Stress testing) testataan järjestelmän sietoa epätavallisen suurella käyttäjämäärällä, syöttötiedolla ja toimintaa muistin ylärajoilla Suorituskykytestaus (Performance testing) testataan integroidun järjestelmän suorituskykyä (pysyy asetetuissa rajoissa) Toimituksen testaus (Deployment testing) ohjelmiston täytyy toimia useilla alustoilla (platform), eli tarkoittaa samaa kuin konfiguraatiotestaus (tärkeä erityisesti Web-sovelluksissa) Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 24

25 Aikaisemmin esitelty esimerkki: VirtualShowRoom Autonvalmistaja haluaa web-pohjaisen autojen myyntijärjestelmän (VirtualShowRoom, VSR). Tätä ohjelmistoa tarjotaan käyttöön kaikille asiakkaille maailmanlaajuisesti. Auton ostosta kiinnostunut asiakas voi sen avulla määritellä haluamansa auton ominaisuudet (malli, tyyppi, väri, lisävarusteet, jne.). Kun asiakas on tehnyt ostopäätöksen, hän voi vahvistaa tilauksen, valita sopivan maksutavan ja maksaa tilauksen. Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 25

26 Vaatimuksista johdetut testitapaukset (hinnan laskenta VSR järjestelmässä) R 100: Käyttäjä voi valita automallin mallilistasta R 101: Valittuun automalliin saatavat lisävarusteet esitellään. Käyttäjä voi valita halutut lisävarusteet listasta. R 102: Kokonaishinta valitulle konfiguraatiolle lasketaan jokaisen valinnan jälkeen ja näytetään välittömästi käyttäjälle. Testitapaukset, joita voi käyttää järjestelmätestauksessa ja hyväksymistestauksessa. T 102.1: Automalli on valittu, esitteen mukainen auton perushinta näytetään käyttäjälle T 102.2: Lisävaruste on valittu, auton hintaan on lisätty lisävarusteen hinta ja se näytetään käyttäjälle T 102.3: Lisävaruste on poistettu, auton hinnasta on vähennetty lisävarusteen hinta ja se näytetään käyttäjälle T 102.4: Kolme lisävarustetta on valittu, tällöin tulee mukaan alennusprosentti, joka on määritelty dokumentissa XX. Testataan, että alennusprosenttia käytetään määrittelyn mukaisesti. Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 26

27 Lisähuomioita Muutetaan testattavaa koodia testien suoritusten jälkeen, lisäämällä ei-toimivaa (mutta kääntyvää) koodia Jos testit menevät läpi, testit eivät testaa oikeita asioita Elpymistestaus ylläolevan kanssa Keskellä asetusten tms. kirjoitusprosessia tiedostoon, aiheutetaan tarkoituksella ohjelman kaatuminen (esim. lisäämällä poikkeuksen heittäminen ko. kohtaan) Käynnistetään ohjelma ja katsotaan miten se pystyy käsittelemään korruptoituneen asetustiedoston lukemisen Mietitään miten estetään asetustiedoston korruptointi kesken sinne kirjoittamisen Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 27

28 Debuggaus: diagnosointi Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 28

29 Debuggausprosessi testitapaukset regressio testit uudet testitapaukset epäillyt syyt tulokset korjaukset tunnistetut syyt Debuggaus Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila

30 Mihin aika kuluu debuggauksessa? korjataan virheet ja suoritetaan regressiotestaus diagnosoidaan oireet ja syyt Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 30

31 Oireet & syyt oire ja sen syy voivat olla sijaita eri paikoissa oire voi hävitä, kun korjataan jotain toista ongelma syynä voi olla virheettömien osien yhdistelmä syynä voi olla järjestelmä- tai kääntäjävirhe oire syy/ aiheuttaja syynä voi olla oletukset, joihin kaikki uskovat oireet voivat olla ajoittaisia Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila

32 Virheiden vaikutukset damage infectious catastrophic extreme serious disturbing annoying mild Bug Type Bug Categories: function-related bugs, system-related bugs, data bugs, coding bugs, design bugs, documentation bugs, standards violations, etc. Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 32

33 Häiriö (failure) = järjestelmä ei käyttäydy käyttäjän tai asiakkaan toivomalla tavalla Jos puutteellisuutta ei löydetä kehitysvaiheessa, ohjelmaan jää vika (fault), joka aiheuttaa joko säännöllisiä tai satunnaisia häiriöitä Ohjelmistosuunnittelija tai ohjelmoija tekee virheen (mistake), joka aiheuttaa puutteellisuuden (defect, bug) ohjelmistosuunnitelmaan tai koodiin Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 33

34 Luku 18: Perinteisten sovellusten testaus - testattavuus - valkealaatikko- ja mustalaatikkotestaus - mallipohjainen testaus - (testivetoisen ohjelmistokehityksen ominaisuudet) - (seitsemän periaatetta ohjelmistojen testaukseen) Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila

35 Testaustaktiikat: Testattavuus/ Bach 2003 Testattavuus = kuinka helposti ohjelma voidaan testata Ohjattavuus (Controllability) The better we can control it, the more the testing can be automated and optimized Havainnollisuus (Observability) What you see is what can be tested Saatavuus (Availability) To test it, we have to get at it Yksinkertaisuus (Simplicity) The simpler it is, the less there is to test Vakaus (Stability) The fewer the changes, the fewer the disruptions to testing Informaatio (Information) The more information we have, the smarter we will test Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 35

36 Testitapauksen suunnittelu "Bugs lurk in corners and congregate at boundaries..." Boris Beizer OBJECTIVE CRITERIA CONSTRAINT paljastaa virheet täydellisesti minimityöpanoksella ja ajalla Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 36

37 Perusteellinen testaus loop < 20 X Jos on esim. 100 rivin ohjelma, jossa on kaksi sisäkkäistä silmukkaa, jotka suoritetaan 1-20 kertaa. Jos vielä sisemmässä silmukassa on neljä if-then-else rakennetta, niin ohjelmassa on arviolta mahdollista testattavaa polkua. Jos yhden testitapauksen suoritukseen menee millisekunti, perusteellinen testaus vie 3170 vuotta!! Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila

38 Valikoiva testaus Selected path Testikattavuutta voidaan arvioida - lausekattavuudella - päätöskattavuudella - ehtokattavuudella - polkukattavuudella Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 38

39 Ohjelmiston testaustekniikat white-box methods black-box methods Methods Strategies Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 39

40 Käyttäjän tarpeet Ohjelmisto käytössä Vaatimusmäärittely Yksikkötestaus Käytettävyystestaus Tarkastus eri vaiheissa Toiminnallinen suunnittelu - käyttöliittymän suunnittelu - käyttötapaus-analyysi Puhdastila (Cleanroom) Testisuunnitelmat Toiminnallinen testaus Ohjelmistosuunnittelu Integrointitestaus Järjestelmätestaus Regressiotestaus Musta laatikko Koodaus Hyväksymistestaus Valkea laatikko Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 40

41 Valkea laatikko testaus... varmistetaan, että jokainen lause ja ehto on suoritettu ainakin kerran Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 41

42 Polkutestaus Syklomaattinen kompleksisuus yksinkertaisten päätösten määrä + 1 tai rajattujen alueiden määrä + 1 Tässä V(G) = 4 Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 42

43 Syklomaattinen kompleksisuus Tutkimusten mukaan voidaan päätellä, että mitä korkeampi moduulin V(G) arvo, sitä suurempi todennäköisyys virheille nämä moduulit ovat virheherkimpiä V(G) 1-10 yksinkertainen, pieni riski mutkikkaampi, keskinkertainen riski mutkikas, korkea riski > 50 ei testattava, erittäin korkea riski Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 43

44 Polkutestaus 1 Koska V(G) = 4, on neljä riippumatonta polkua Path 1: 1,2,3,6,7,8 Path 2: 1,2,3,5,7,8 Path 3: 1,2,4,7,8 Path 4: 1,2,4,7,2,4,...7,8 7 8 Sitten täytyy kehittää testitapaukset, joilla polut testataan Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 44

45 Mustalaatikkotestaus vaatimukset tulosteet syötteet tapahtumat Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 45

46 Mustalaatikkotestaus Mustalaatikkotesteissä keskitytään esim. näihin kysymyksiin Miten toiminnallinen oikeellisuus testataan? Miten järjestelmän käyttäytymistä ja suorituskykyä testataan? Mistä syöttötiedoista (luokista) saadaan hyviä testitapauksia? Onko järjestelmä erityisen herkkä tietyille syötteille? Millaisia tietomääriä järjestelmä kestää? Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 46

47 Ekvivalenssiositus Ekvivalenssiositus & rajaarvoanalyysi päätellään ensin ekvivalenssiluokat ja sitten määritellään luokkia edustava testiaineisto syötteiden perusteella saadaan käypien arvojen arvoalue, käypien arvojen lukumäärä, käypien arvojen joukko käypien (sopivien) arvojen alueelta määritellään yksi testiarvo ja ei-käypien (sopimattomien) alueelta kaksi testiarvoa Raja-arvoanalyysi keskitytään testaamaan ekvivalenssiosituksen raja-arvokohtia Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 47

48 Esimerkki ekvivalenssiosituksesta ja raja-arvoanalyysistä Ohjelmassa tutkitaan 1930 ja 1960 välillä syntyneitä henkilöitä testataan henkilöillä, jotka ovat syntyneet välillä ja ennen 1930 sekä jälkeen 1960 testataan henkilöillä, jotka ovat syntyneet 1920, 1950, 1970, (1929), (1930), (1931), (1959), (1960), (1961) sopimaton alue sopiva arvoalue sopimaton alue Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 48

49 VSR järjestelmä: calculate_price funktion testaus Funktio määritellään seuraavasti Auton perusmallin hinta on perushinta (baseprice), josta on vähennetty alennus (discount). Auton myyjä määrittelee alennuksen. Ostaja voi ostaa myös erikoismallin ja erikseen lisävarusteita. Lisävarusteiden alennusprosentti (addon_discount) on 10%, jos lisävarusteita (extras) on enemmän kuin 3 ja 15%, jos lisävarusteita on enemmän kuin 5. Auton hinta muodostuu siten perushinnasta, mahdollisesta erikoismallin hinnasta (specialprice) ja mahdollisten lisävarusteiden hinnasta (extraprice). Jos myyjän antama alennusprosentti on suurempi kuin lisävarusteiden, käytetään myyjän antamaa alennusprosenttia. Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 49

50 VSR järjestelmä: calculate_price funktion testaus double calculate_price(double baseprice, double specialprice, double extraprice, int extras, double discount) { double addon_discount; double result; if (extras >= 5) addon_discount = 15; else if (extras >= 3) addon_discount = 10; else addon_discount = 0; if (discount > addon_discount) addon_discount = discount; } result = baseprice/100.0*(100-discount) + specialprice + extraprice/ 100.0*(100-addon_discount); return result; Huom: funktiossa ei kaikkea syötteiden tarkistusta, tehdään ennen kutsua Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 50

51 Parametri Ekvivalenssiluokka Testiaineisto baseprice vec 11 : [0,..., MAX_DOUBLE] iec 11 : [MIN_DOUBLE,..., 0 [ iec 12 : ei numero abc specialprice vec 21 : [0,..., MAX_DOUBLE] iec 21 : [MIN_DOUBLE,..., 0 [ iec 22 : ei numero abc extraprice vec 31 : [0,..., MAX_DOUBLE] extras iec 31 : [MIN_DOUBLE,..., 0 [ iec 32 : ei numero vec 41 : [0,...,2] vec 41 : [3, 4] vec 41 : [5,...,MAX_INT] iec 41 : [MIN_INT,..., 0 [ iec 42 : ei numero abc abc discount vec 51 : [0,..., 100] iec 51 : [MIN_DOUBLE,..., 0 [ iec 52 : iec 53 : ei numero abc Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 51

52 testitapaus baseprice specialprice extraprice extras discount result NOT_VALID 5 abc NOT_VALID NOT_VALID abc NOT_VALID NOT_VALID abc NOT_VALID NOT_VALID abc NOT_VALID NOT_VALID NOT_VALID abc NOT_VALID Testitapauksia tarvitaan 3 käypää (1*1*1*3*1) ja 11 ei-käypää ( ) Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 52

53 VSR järjestelmä: calculate_price funktion testaus testiajuri bool test_calculate_price() { double price; bool test_ok = TRUE; //testitapaus 1 price = calculate_price( , , , 1, 10); test_ok = test_ok && (abs(price ) < 0.01); //testitapaus 2 price = calculate_price( , , , 3, 10); test_ok = test_ok && (abs(price ) < 0.01); } return test_ok; Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 53

54 Testivetoisen ohjelmistokehityksen ominaisuudet testit kirjoitetaan ennen ohjelmakoodia sama henkilö kirjoittaa testitapauksen ja koodin koodi ei mene tuotantoon ilman testitapausta testi ohjaa koodin toimintaa testi määrittelee koodin toiminnan testit ovat eristettyjä ja automatisoituja testit voidaan toistaa joka kerta samalla tavalla Astels 2003 Test-driven development Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 54

55 Testivetoisen ohjelmistokehityksen vaiheet Lisää testi Onnistui Testien mennessä onnistuneesti läpi voidaan ohjelmakoodi refaktoroida Kirjoita koodi Aja testit Tee korjaus koodiin Epäonnistui Epäonnistui Aja testit Kehitys jatkuu Kehitys loppui Ambler 2003 Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 55

56 Soveltuvat lait ja pohdiskelun aiheita 1. Testauksella voidaan esittää virheiden olemassaolo, mutta ei todistaa virheettömyyttä / no 22, Dijkstra 1970 perusteellinen testaus ei ole mahdollista 2. Noin 80 % virheistä tulee 20 % moduuleista / no 24, Pareto 1897, Fenton 2000 myös muita 20 % virheitä aiheuttaa 80 % korjaustyöstä 20 % moduuleista sisälsi 60 % virheistä 10 % virheistä aiheutti 90 % järjestelmän katkoista Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila 56

57 Whittaker J.A., What Is Software Testing? And Why It Is So Hard?, IEEE Software, vol 17, no 1, 2000, pp Jeffries R., Melnik G., TDD: The Art of Fearless Programming, IEEE Software, vol 24, no 3, 2007, pp Martin R., Professionalism and Test-Driven Development, IEEE Software, vol 24, no 3, 2007, pp

Ohjelmistotekniikka - Luento 10 Jouni Lappalainen

Ohjelmistotekniikka - Luento 10 Jouni Lappalainen Ohjelmistotekniikka - Luento 10 Jouni Lappalainen Luku 17: Testausstrategiat V-malli ja vaiheet yksikkö- ja integrointitestaus validointitestaus järjestelmätestaus debuggaus Luku 18: Perinteisten sovellusten

Lisätiedot

Ohjelmistotekniikka - Luento 9 Jouni Lappalainen

Ohjelmistotekniikka - Luento 9 Jouni Lappalainen Ohjelmistotekniikka - Luento 9 Jouni Lappalainen Luku 17: Testausstrategiat V-malli ja vaiheet yksikkö- ja integrointitestaus validointitestaus järjestelmätestaus debuggaus Luku 18: Perinteisten sovellusten

Lisätiedot

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testausdokumentti Kivireki Helsinki 17.12.2007 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Anu Kontio Ilmari

Lisätiedot

Laadunvarmistustekniikat

Laadunvarmistustekniikat Laadunvarmistustekniikat Ohjelmistojen laadunvarmistustekniikoita: testaus (testing) ohjelman suorittamista tarkoituksena löytää virheitä tarkastukset (inspections, reviews) asiantuntijoiden suorittamia

Lisätiedot

Ohjelmistotuotanto s

Ohjelmistotuotanto s Laadunvarmistustekniikoita Ohjelmistotuotanto 1 testaus (testing) ohjelman suorittamista tarkoituksena löytää virheitä tarkastukset (inspections, reviews) asiantuntijoiden suorittamia dokumentin (voi olla

Lisätiedot

Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi. Verifiointi- ja validointitekniikat. Verifiointi- ja validointitekniikat II

Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi. Verifiointi- ja validointitekniikat. Verifiointi- ja validointitekniikat II 7. Verifiointi ja validointi Verifiointi ja validointi (V&V) on ohjelmistotuotannon työvaihe, missä varmistetaan, että ohjelmisto täyttää sille asetetut implisiittiset ja eksplisiittiset vaatimukset ja

Lisätiedot

Kontrollipolkujen määrä

Kontrollipolkujen määrä Testaus Yleistä Testaus on suunnitelmallista virheiden etsimistä Tuotantoprosessissa ohjelmaan jää aina virheitä, käytettävistä menetelmistä huolimatta Hyvät menetelmät, kuten katselmoinnit pienentävät

Lisätiedot

Testaaminen ohjelmiston kehitysprosessin aikana

Testaaminen ohjelmiston kehitysprosessin aikana Testaaminen ohjelmiston kehitysprosessin aikana 04.02.2004 http://cs.joensuu.fi/tsoft/ Sisällys 1. Johdanto 2. Yksikkö- ja integrointitestaus 3. Järjestelmätestaus 4. Hyväksymistestaus http://cs.joensuu.fi/tsoft/

Lisätiedot

Testaussuunnitelma PULSU. Syksy 2008 Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testaussuunnitelma PULSU. Syksy 2008 Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testaussuunnitelma PULSU Syksy 2008 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (9 op) Projektiryhmä Heikki Manninen Noora Joensuu

Lisätiedot

Ohjelmiston testaus ja laatu. Testausmenetelmiä

Ohjelmiston testaus ja laatu. Testausmenetelmiä Ohjelmiston testaus ja laatu Testausmenetelmiä Testausmenetelmiä - 1 Testauksen menetelmien päälähestymistapoina ovat black-box testi testaaja ei voi tutkia lähdekoodia testaus perustuu sovellukselle suunnitteluvaiheessa

Lisätiedot

Testaus käsite. Sekalaista testausasiaa. Testauksen käsitteestä. Kattavuusmitat. Jos ajatellaan, että testaus = V&V, voidaan erottaa:

Testaus käsite. Sekalaista testausasiaa. Testauksen käsitteestä. Kattavuusmitat. Jos ajatellaan, että testaus = V&V, voidaan erottaa: Testaus käsite Sekalaista asiaa Sami Kollanus 15.11.2006 Jos ajatellaan, että = V&V, voidaan erottaa: Staattinen Dynaaminen Toisaalta voidaan määritellä Myersin (1979) mukaan: Testaus on ohjelman suoritusta,

Lisätiedot

Ohjelmistotuotantoprojekti

Ohjelmistotuotantoprojekti Ohjelmistotuotantoprojekti Ryhmä Muppett TESTAUSDOKUMENTTI Helsinki 5.8.2008 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Ohjelmistotuotantoprojekti, kesä 2008 Projekti: Muutos- ja korjauspyyntöjen

Lisätiedot

Ohjelmiston testaus ja laatu. Testaustasot

Ohjelmiston testaus ja laatu. Testaustasot Ohjelmiston testaus ja laatu Testaustasot Testauksen vaihejako Tarpeet / sopimus Järjestelmätestaus Hyväksymiskoe Määrittely testauksen suunnittelu ja tulosten verifiointi Arkkitehtuurisuunnittelu Moduulisuunnittelu

Lisätiedot

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Ohjelmistojen mallintaminen. Luento 11, 7.12. Ohjelmistojen mallintaminen Luento 11, 7.12. Viime viikolla... Oliosuunnittelun yleiset periaatteet Single responsibility eli luokilla vain yksi vastuu Program to an interface, not to concrete implementation,

Lisätiedot

7. Verifiointi ja validointi

7. Verifiointi ja validointi 7. Verifiointi ja validointi Verifiointi ja validointi (V&V) on ohjelmistotuotannon työvaihe, missä varmistetaan, että ohjelmisto täyttää sille asetetut implisiittiset ja eksplisiittiset vaatimukset ja

Lisätiedot

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit Ohjelmiston testaus ja laatu Ohjelmistotekniikka elinkaarimallit Vesiputousmalli - 1 Esitutkimus Määrittely mikä on ongelma, onko valmista ratkaisua, kustannukset, reunaehdot millainen järjestelmä täyttää

Lisätiedot

Testausraportti. Oppimistavoitteiden hallintajärjestelmä harri

Testausraportti. Oppimistavoitteiden hallintajärjestelmä harri Testausraportti Oppimistavoitteiden hallintajärjestelmä harri Helsinki 13.12.2007 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti

Lisätiedot

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen Ohjelmistotekniikka - Luento 2 Jouni Lappalainen Luku 2: Prosessimallit - miten spiraalimalliin päädyttiin - spiraalimallista (R)UP malliin - oman ammattitaidon kehittäminen; PSP ja TSP mallit 1 Luento

Lisätiedot

Laadunvarmistustekniikoita. Ohjelmistotuotanto. Testaus termejä. Testaus periaatteita. Testaus havaintoja. Testaus havaintoja

Laadunvarmistustekniikoita. Ohjelmistotuotanto. Testaus termejä. Testaus periaatteita. Testaus havaintoja. Testaus havaintoja Laadunvarmistustekniikoita Ohjelmistotuotanto Ohjelmistojen testaus 1 Testaus (testing) ohjelman suorittamista tarkoituksena löytää virheitä Tarkastukset, katselmukset (inspections, reviews) asiantuntijoiden

Lisätiedot

Convergence of messaging

Convergence of messaging Convergence of messaging Testaussuunnitelma The Converge Group: Mikko Hiipakka Anssi Johansson Joni Karppinen Olli Pettay Timo Ranta-Ojala Tea Silander Helsinki 20. joulukuuta 2002 HELSINGIN YLIOPISTO

Lisätiedot

Ohjelmistotekniikka - Luento 2

Ohjelmistotekniikka - Luento 2 Ohjelmistotekniikka - Luento 2 Luku 2: Prosessimallit - miten spiraalimalliin päädyttiin - spiraalimallista (R)UP malliin - oman ammattitaidon kehittäminen; PSP ja TSP mallit 1 Luento 2: Prosessimallit

Lisätiedot

Testaussuunnitelma. PUSU-ryhmä. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testaussuunnitelma. PUSU-ryhmä. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testaussuunnitelma PUSU-ryhmä Helsinki 13.12.2007 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (9 op) Projektiryhmä Jussi Hynninen

Lisätiedot

58160 Ohjelmoinnin harjoitustyö

58160 Ohjelmoinnin harjoitustyö 58160 Ohjelmoinnin harjoitustyö Testaus 30.3.2009 Tuntiop. Sami Nikander sami.nikander@helsinki.fi 58160 Ohjelmoinnin harjoitustyö, Sami Nikander 30.3.2009 1 Testaus Ohjelman systemaattista tutkimista

Lisätiedot

Testaussuunnitelma. Asdf. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testaussuunnitelma. Asdf. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testaussuunnitelma Asdf Helsinki 22.2.2008 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Kuisma Sami Louhio

Lisätiedot

Ohjelmistotuotanto, verifiointi ja validointi Syksy Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi

Ohjelmistotuotanto, verifiointi ja validointi Syksy Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi 7. Verifiointi ja validointi Verifiointi ja validointi (V&V) on ohjelmistotuotannon työvaihe, missä varmistetaan, että ohjelmisto täyttää sille asetetut implisiittiset ja eksplisiittiset vaatimukset ja

Lisätiedot

Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta

Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta 582101 - Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta 1 Toteutuksesta ja testauksesta Suunnitteluprosessista Tarkan tason luokkasuunnittelu Siirtyminen UML-kaavioista Java-toteutukseen

Lisätiedot

Testaussuunnitelma Labra

Testaussuunnitelma Labra Testaussuunnitelma Labra Helsinki 25.8.2008 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 1 Kurssi 581260 Ohjelmistotuotantoprojekti (9+1op) Projektiryhmä Anssi Kapanen,

Lisätiedot

Testaussuunnitelmat. Luennon tavoitteista. Motivointia. Haikala ja Märijärvi, Ohjelmistotuotanto. Pressman, Software Engineering

Testaussuunnitelmat. Luennon tavoitteista. Motivointia. Haikala ja Märijärvi, Ohjelmistotuotanto. Pressman, Software Engineering Testaussuunnitelmat Luennon tavoitteista Luennon sisällöstä Motivointia Lähteinä: Haikala ja Märijärvi, Ohjelmistotuotanto Pressman, Software Engineering 1 Tavoitteista Luentojen jälkeen opiskelijan tulisi

Lisätiedot

Testaussuunnitelma. Koskelo. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testaussuunnitelma. Koskelo. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testaussuunnitelma Koskelo Helsinki 16.12.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Tom Bertell Johan

Lisätiedot

Yksikkötestaus. Kattava testaus. Moduulitestaus. Ohjelman testaus. yksikkotestaus/ Seija Lahtinen

Yksikkötestaus. Kattava testaus. Moduulitestaus. Ohjelman testaus. yksikkotestaus/ Seija Lahtinen Yksikkötestaus Kattava testaus Moduulitestaus Ohjelman testaus 1 Kattava testaus Testauksen perimmäinen tarkoitus on LÖYTÄÄ VIRHEITÄ Testaus pitäisi olla täydellinen: - Jokainen pyydetty arvo pitäisi testata

Lisätiedot

Harjoitustyön testaus. Juha Taina

Harjoitustyön testaus. Juha Taina Harjoitustyön testaus Juha Taina 1. Johdanto Ohjelman teko on muutakin kuin koodausta. Oleellinen osa on selvittää, että ohjelma toimii oikein. Tätä sanotaan ohjelman validoinniksi. Eräs keino validoida

Lisätiedot

Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta

Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta 582101 - Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta 1 Toteutuksesta ja testauksesta Suunnitteluprosessista Tarkan tason luokkasuunnittelu Siirtyminen UML-kaavioista Java-toteutukseen

Lisätiedot

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus Yhteenveto Ohjelmistotuotanto vs. muut insinööritieteet Monimutkaisuus Näkymättömyys (Usein näennäinen) luotettavuus ja edullisuus Muunnettavuus Epäjatkuvuus virhetilanteissa Skaalautumattomuus Copyright

Lisätiedot

Onnistunut Vaatimuspohjainen Testaus

Onnistunut Vaatimuspohjainen Testaus Onnistunut Vaatimuspohjainen Testaus Kari Alho Solution Architect Nohau Solutions, Finland Sisältö Mitä on vaatimuspohjainen testaus? Vaatimusten ymmärtämisen haasteet Testitapausten generointi Työkalujen

Lisätiedot

Lohtu-projekti. Testaussuunnitelma

Lohtu-projekti. Testaussuunnitelma Lohtu-projekti Testaussuunnitelma Versiohistoria: 1.0 19.2.2003 1. versio Mari 1.1 20.2.2003 Muutoksia Mari 1.2 25.2.2003 Katselmoinnissa esiin tulleet Mari muutokset 1.3 17.3.2003 2. syklissä tehtävät

Lisätiedot

Testausraportti. Orava. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testausraportti. Orava. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testausraportti Orava Helsinki 5.5.2005 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Juhani Bergström Peter

Lisätiedot

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen (etu.suku@lut.fi) Kevät 2015

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen (etu.suku@lut.fi) Kevät 2015 CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET Jussi Kasurinen (etu.suku@lut.fi) Kevät 2015 NOPEA KERTAUS TESTAUS HYVIN LYHYESTI Miten normaali testaajan arki ohjelmistoprojektissa sitten rullaa? Käytännössä

Lisätiedot

JUnit ja EasyMock (TilaustenKäsittely)

JUnit ja EasyMock (TilaustenKäsittely) OHJELMISTOJEN TESTAUS JA HALLINTA Syksy 2015 / Auvo Häkkinen JUnit ja EasyMock (TilaustenKäsittely) Tehtävässä tarvittava koodi löytyy osoitteella http://users.metropolia.fi/~hakka/oth/mockesimerkki.zip

Lisätiedot

Dynaaminen analyysi III

Dynaaminen analyysi III Dynaaminen analyysi III Luento 8 Antti-Pekka Tuovinen 16 April 2013 1 Tavoitteet White box testitapausten suunnittelutekniikat Lausekattavuus Haarautumakattavuus Ehto- ja polkukattavuus Huomioita white

Lisätiedot

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } } Yksikkötestauksella tarkoitetaan lähdekoodiin kuuluvien yksittäisten osien testaamista. Termi yksikkö viittaa ohjelman pienimpiin mahdollisiin testattaviin toiminnallisuuksiin, kuten olion tarjoamiin metodeihin.

Lisätiedot

Testaustyökalut. Luento 11 Antti-Pekka Tuovinen. Faculty of Science Department of Computer Science

Testaustyökalut. Luento 11 Antti-Pekka Tuovinen. Faculty of Science Department of Computer Science Testaustyökalut Luento 11 Antti-Pekka Tuovinen 25 April 2013 1 Tavoitteet Työkalutyyppejä Testauksen hallinta Testien määrittely Staattinen analyysi Dynaaminen testaus 25 April 2013 2 1 Työkalut ja testaus

Lisätiedot

Dynaaminen analyysi IV

Dynaaminen analyysi IV Dynaaminen analyysi IV Luento 9 Antti-Pekka Tuovinen 16 April 2013 1 Tavoitteet Kokemusperäinen testitapausten suunnittelu Yhteenvetoa suunnittelutekniikoista 16 April 2013 2 1 Testitapausten kokemusperäinen

Lisätiedot

Ohjelmistotestaus -09

Ohjelmistotestaus -09 Ohjelmistotestaus Testaustyökalut- ja automaatio Testaustyökalut ja -automaatio Testaustyökaluilla tuetaan testaustyötä sen eri vaiheissa Oikea työkalu oikeaan tarkoitukseen Testausautomaatio perustuu

Lisätiedot

Järjestelmätestauksen vaatimukset. 6. Järjestelmätestaus (B, 14) Järjestelmätestauksen korkean tason testausstrategia

Järjestelmätestauksen vaatimukset. 6. Järjestelmätestaus (B, 14) Järjestelmätestauksen korkean tason testausstrategia . Järjestelmätestaus (B, ) Järjestelmätestaus (system testing) tehdään integrointitestauksen jälkeen. Siinä järjestelmää testataan kokonaisuutena, johon kuuluvat ohjelmiston lisäksi laitteisto ja järjestelmän

Lisätiedot

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3 AgilElephant SEPA Diary Petri Kalsi 55347A Heikki Salminen 51137K Tekijä: Petri Kalsi Omistaja: ElectricSeven Aihe: PK&HS Sivu 1 / 7 Dokumenttihistoria Revisiohistoria Revision päiväys: 29.11.2004 Seuraavan

Lisätiedot

ITK130 Ohjelmistojen luonne

ITK130 Ohjelmistojen luonne ITK130 Ohjelmistojen luonne Luennon sisältö Ohjelmistotekniikka ja vaatimukset Ohjelmistotuote Ei-toiminnallisten vaatimusten luokittelu Sisäiset ja ulkoiset vaatimukset Oikeellisuus Luotettavuus Kestävyys

Lisätiedot

WCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma

WCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma TKK/DISKO/Tik-76.115 WCLIQUE Projektiryhmä Clique http://www.hut.fi/jekahkon/wclique/testplan.html WCLIQUE Ohjelmistoprojekti Projektiryhmä Clique: Janne Dufva, 75008T, email: janne.dufva@nokia.com, 75014C,

Lisätiedot

Testaussuunnitelma. Pizzeria - Pitseria HAAGA-HELIA ammattikorkeakoulu Tietojenkäsittelyn koulutusohjelma. WebPizza

Testaussuunnitelma. Pizzeria - Pitseria HAAGA-HELIA ammattikorkeakoulu Tietojenkäsittelyn koulutusohjelma. WebPizza Testaussuunnitelma Pizzeria - Pitseria HAAGA-HELIA ammattikorkeakoulu Tietojenkäsittelyn koulutusohjelma Versio 1.0 Ehdotus Laatija Raine Kauppinen VERSIOHISTORIA Versionotyyppi Versio- Päiväys Tekijä

Lisätiedot

Dynaaminen analyysi I

Dynaaminen analyysi I Dynaaminen analyysi I Luento 6 Antti-Pekka Tuovinen 4 April 2013 1 Tavoitteet Testitapausten suunnittelun ja suorituksen perusteet Black-Box testitapausten suunnittelu Ekvivalenssiluokat Raja-arvo (reuna-arvo)

Lisätiedot

Ohjelmiston testaussuunnitelma

Ohjelmiston testaussuunnitelma Ohjelmiston testaussuunnitelma Ryhmän nimi: Tekijä: Toimeksiantaja: Toimeksiantajan edustaja: Muutospäivämäärä: Versio: Katselmoitu (pvm.): 1 1 Johdanto Tämä lukaa antaa yleiskuvan koko testausdokumentista.

Lisätiedot

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen (etu.suku@lut.fi) Kevät 2015

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen (etu.suku@lut.fi) Kevät 2015 CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET Jussi Kasurinen (etu.suku@lut.fi) Kevät 2015 JATKUU VIIME KERRASTA OHJELMISTOTUOTANTO JA OHJELMISTOTESTAUS Ohjelmistotuotannon prosessi Suunnittelu Määrittely Toteutus

Lisätiedot

Test-Driven Development

Test-Driven Development Test-Driven Development Syksy 2006 Jyväskylän yliopisto Test-Driven Development Testilähtöinen ohjelmistojen kehitystapa. Tehdään ensin testi, sitten vasta koodi. Tarkoituksena ei ole keksiä kaikkia mahdollisia

Lisätiedot

T Testiraportti - järjestelmätestaus

T Testiraportti - järjestelmätestaus T-76.115 Testiraportti - järjestelmätestaus 18. huhtikuuta 2002 Confuse 1 Tila Versio: 1.0 Tila: Päivitetty Jakelu: Julkinen Luotu: 18.04.2002 Jani Myyry Muutettu viimeksi: 18.04.2002 Jani Myyry Versiohistoria

Lisätiedot

Käyttötapausanalyysi ja testaus tsoft

Käyttötapausanalyysi ja testaus tsoft Käyttötapausanalyysi ja testaus tsoft 15.09.2004 http://cs.joensuu.fi/tsoft/ Johdanto Use Case analyysi (käyttötapausanalyysi) on yleisesti käytetty järjestelmälle asetettujen toiminnallisten vaatimusten

Lisätiedot

Standardin IEC testaustekniikoista. V-malli vai ketterämpi prosessi?

Standardin IEC testaustekniikoista. V-malli vai ketterämpi prosessi? Standardin IEC 61508-3 testaustekniikoista V-malli vai ketterämpi prosessi? Mika Katara mika.katara@tut.fi Tampereen teknillinen yliopisto Ohjelmistotekniikan laitos 2 Sisältö Termien käännökset Johdanto

Lisätiedot

@Tampereen Testauspäivät (2012-06)

@Tampereen Testauspäivät (2012-06) @Tampereen Testauspäivät (2012-06) Testausodotukset räätälöityjen järjestelmien projekteissa Maaret Pyhäjärvi, testausasiantuntija Twitter: maaretp Testausvastaava @ Granlund Oy Yrittäjä

Lisätiedot

Yhteenveto. Menettelytavat

Yhteenveto. Menettelytavat Yhteenveto Ohjelmistotuotanto: Luotettavien ja tehokkaiden ohjelmistojärjestelmien tuottamista noudattaen hyviksi havaittuja menettelytapoja. Menettelytavat Prosessimalli (vesiputous/spiraali/kasvattava)

Lisätiedot

Tapahtuipa Testaajalle...

Tapahtuipa Testaajalle... Tapahtuipa Testaajalle... - eli testaus tosielämässä 09.10.2007 Juhani Snellman Qentinel Oy 2007 Agenda Minä ja mistä tulen Testauksen konteksti Tapauksia tosielämästä ja työkaluja 2 Minä Juhani Snellman

Lisätiedot

Automaattinen yksikkötestaus

Automaattinen yksikkötestaus Teknillinen Korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö Lineaaristen rajoitteiden tyydyttämistehtävän ratkaisija L models Automaattinen yksikkötestaus Ryhmä Rajoitteiset Versio Päivämäärä Tekijä

Lisätiedot

Testaus-tietoisku: Tärkeimpiä asioita testauksesta projektityökurssilaisille

Testaus-tietoisku: Tärkeimpiä asioita testauksesta projektityökurssilaisille 1(23) Testaus-tietoisku: Tärkeimpiä asioita testauksesta projektityökurssilaisille Matti Vuori, Tampereen teknillinen yliopisto 30.10.2012 Sisällysluettelo 1/2 Esityksen tarkoitus 4 Laatu on tärkeää, ei

Lisätiedot

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen (etu.suku@lut.fi) Kevät 2016

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen (etu.suku@lut.fi) Kevät 2016 CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET Jussi Kasurinen (etu.suku@lut.fi) Kevät 2016 VIIME KERRALLA MENETELMIÄ Musta laatikko Valkea laatikko Harmaa laatikko Regressio Automaatio Rasitus (kuormitus)

Lisätiedot

Ohjelmistotestauksen perusteita II

Ohjelmistotestauksen perusteita II Ohjelmistotestauksen perusteita II Luento 2 Antti-Pekka Tuovinen 14 March 2013 1 Luennon oppimistavoitteet Testausprosessin perustoiminnot Testauksen psykologiaa Testauksen seitsemän periaatetta 14 March

Lisätiedot

Testaussuunnitelma. Oppimistavoitteiden hallintajärjestelmä harri

Testaussuunnitelma. Oppimistavoitteiden hallintajärjestelmä harri Testaussuunnitelma Oppimistavoitteiden hallintajärjestelmä harri Helsinki 15.11.2007 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti

Lisätiedot

Test-Driven Development

Test-Driven Development Test-Driven Development Ohjelmistotuotanto syksy 2006 Jyväskylän yliopisto Test-Driven Development Testilähtöinen ohjelmistojen kehitystapa. Tehdään ensin testi, sitten vasta koodi. Tarkoituksena ei ole

Lisätiedot

Toisessa viikkoharjoituksessa on tavoitteena tutustua JUnit:lla testaukseen Eclipse-ympäristössä.

Toisessa viikkoharjoituksessa on tavoitteena tutustua JUnit:lla testaukseen Eclipse-ympäristössä. Toisessa viikkoharjoituksessa on tavoitteena tutustua JUnit:lla testaukseen Eclipse-ympäristössä. JUnit-ympäristö 1. Luo tests -pakkaukseen uusi luokka. Nimeä VHTestit. 2. Laita VHTestit periytymään TestCase:sta

Lisätiedot

812336A C++ -kielen perusteet, 21.8.2010

812336A C++ -kielen perusteet, 21.8.2010 812336A C++ -kielen perusteet, 21.8.2010 1. Vastaa lyhyesti seuraaviin kysymyksiin (1p kaikista): a) Mitä tarkoittaa funktion ylikuormittaminen (overloading)? b) Mitä tarkoittaa jäsenfunktion ylimääritys

Lisätiedot

10. Tarkastukset. Tarkastusten rakenne

10. Tarkastukset. Tarkastusten rakenne 10. Tarkastukset Tarkastus (inspection) on tehokas analyysitekniikka, jota voidaan käyttää minkä tahansa projektin tuotoksen läpikäyntiin. Tarkastus on systemaattinen ja yksityiskohtainen katselmointi

Lisätiedot

Tarkastusten rakenne. 10. Tarkastukset. Tuotoksen tekijän rooli. Tarkastustiimi. Tarkastusprosessin vaiheet. Tarkastusprosessi

Tarkastusten rakenne. 10. Tarkastukset. Tuotoksen tekijän rooli. Tarkastustiimi. Tarkastusprosessin vaiheet. Tarkastusprosessi 10. Tarkastukset Tarkastus (inspection) on tehokas analyysitekniikka, jota voidaan käyttää minkä tahansa projektin tuotoksen läpikäyntiin. Tarkastus on systemaattinen ja yksityiskohtainen katselmointi

Lisätiedot

Ohjelmistojen testaus

Ohjelmistojen testaus Ohjelmistojen testaus Juha Taina 1. Perusteet (P&Y:1-4) Kurinalainen insinöörityö sisältää suunnittelun ja rakentamisen lisäksi välttämättä tehtäviä, joiden tarkoitus on tunnistaa ja poistaa keskeneräisestä

Lisätiedot

Testaus elinkaaressa

Testaus elinkaaressa Testaus elinkaaressa Järjestelmätestaus Järjestelmätestaus Tarkoittaa koko järjestemän laajuuteen kohdistuvaa testausta, koko järjestelmän toiminnan näkökulmasta Järjestelmän ei tarvitse olla valmis vaan

Lisätiedot

Dynaaminen analyysi II

Dynaaminen analyysi II Dynaaminen analyysi II Luento 7 Antti-Pekka Tuovinen 9 April 2013 1 Tavoitteet Black-box testitapausten suunnittelutekniikat II Tilamallien käyttö Syys-seurausverkot ja päätöstaulut Käyttötapaukset Yhteenveto

Lisätiedot

Testaussuunnitelma. Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie

Testaussuunnitelma. Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie Testaussuunnitelma Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie Helsinki 14.7.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti

Lisätiedot

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant AgilElephant SEPA Diary Petri Kalsi 55347A Heikki Salminen 51137K Tekijä: Petri Kalsi Omistaja: ElectricSeven Aihe: PK&HS Sivu 1 / 7 Dokumenttihistoria Revisiohistoria Revision Numero Revision Päiväys

Lisätiedot

T Tietojenkäsittelyopin ohjelmatyö. Testiraportti, vaihe T1. Tietokonegrafiikka-algoritmien visualisointi. Testiraportti, vaihe T1

T Tietojenkäsittelyopin ohjelmatyö. Testiraportti, vaihe T1. Tietokonegrafiikka-algoritmien visualisointi. Testiraportti, vaihe T1 T-76.115 Tietojenkäsittelyopin ohjelmatyö Sisältö Tästä dokumentista ilmenee T1-vaiheessa suoritettu testaus, sen tulokset ja poikkeamat testisuunnitelmasta. Päivämäärä 1.12.2002 Projektiryhmä Keimo keimo-dev@list.hut.fi

Lisätiedot

2. Ohjelmistotuotantoprosessi

2. Ohjelmistotuotantoprosessi 2. Ohjelmistotuotantoprosessi Peruskäsitteet: prosessimalli: mahdollisimman yleisesti sovellettavissa oleva ohjeisto ohjelmistojen tuottamiseen ohjelmistotuotantoprosessi: yrityksessä käytössä oleva tapa

Lisätiedot

Luento 5. Timo Savola. 28. huhtikuuta 2006

Luento 5. Timo Savola. 28. huhtikuuta 2006 UNIX-käyttöjärjestelmä Luento 5 Timo Savola 28. huhtikuuta 2006 Osa I Shell-ohjelmointi Ehtolause Lausekkeet suoritetaan jos ehtolausekkeen paluuarvo on 0 if ehtolauseke then lauseke

Lisätiedot

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit IDL - proseduurit 25. huhtikuuta 2017 Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 81122P (4 ov.) 30.5.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan

Lisätiedot

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014 18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

Järjestelmän kriittisimmille toiminnallisuuksille (listattu alla), toteutetaan 1

Järjestelmän kriittisimmille toiminnallisuuksille (listattu alla), toteutetaan 1 1. Testattavat asiat Järjestelmän kriittisimmille toiminnallisuuksille (listattu alla), toteutetaan 1 selainyhteensopivuustesti käyttäen Suomessa eniten käytössä olevia selaimia. Uuden keräyksen lisääminen

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat

Lisätiedot

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä www.niksula.cs.hut.fi/~jjkankaa// Testauksen loppuraportti v. 1.0 Päivitetty 23.4.2001 klo 19:05 Mikko Viljainen 2 (14) Dokumentin versiohistoria Versio Päivämäärä Tekijä / muutoksen tekijä Selite 1.0

Lisätiedot

Eclipse ja JUnit-ohjelmoijatestit

Eclipse ja JUnit-ohjelmoijatestit Eclipse ja JUnit-ohjelmoijatestit Tarkoitus on tutustua Eclipsen käyttöön vähän lähemmin ja varsinkin JUnit-ohjelmoijatesteihin (ohjelmoijatesti on vanhalta nimeltä yksikkötesti). Ohjelmoijatestit ovat

Lisätiedot

Ohjelmistojen mallintaminen, syksy 2011, laskuharjoitus 2

Ohjelmistojen mallintaminen, syksy 2011, laskuharjoitus 2 Ohjelmistojen mallintaminen, syksy 2011, laskuharjoitus 2 Viikon 2 laskareita ei pidetä mikrosaleissa, käytössä ovat opetusohjelmaan merkatut salit. Tämän viikon tehtävistä 1-6 tehdään etukäteen kotona.

Lisätiedot

Testaussuunnitelma. HenTyLi. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testaussuunnitelma. HenTyLi. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testaussuunnitelma HenTyLi Helsinki 8.12.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 1 Johdanto... 4 2 Testauksen tavoite... 4 3 Testausstrategia... 4 4 Testauksen

Lisätiedot

Ohjelmointi 2 / 2010 Välikoe / 26.3

Ohjelmointi 2 / 2010 Välikoe / 26.3 Ohjelmointi 2 / 2010 Välikoe / 26.3 Välikoe / 26.3 Vastaa neljään (4) tehtävään ja halutessa bonustehtäviin B1 ja/tai B2, (tuovat lisäpisteitä). Bonustehtävät saa tehdä vaikkei olisi tehnyt siihen tehtävään

Lisätiedot

Testausoppeja toimialavaihdoksesta

Testausoppeja toimialavaihdoksesta Testausoppeja toimialavaihdoksesta Maaret Pyhäjärvi Email: Gsm: 040-8233777 Erkki Pöyhönen & Maaret Pyhäjärvi Nimeä Attribution (Finland) http://creativecommons.org/licenses/by/1.0/fi/

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

Lisätiedot

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2 4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä muuttujia ja vakioita. Esittely

Lisätiedot

Testaus elinkaaressa. Testaustasot ja vaiheet

Testaus elinkaaressa. Testaustasot ja vaiheet Testaus elinkaaressa Testaus kehittämisen tukena Yksikkötestaus Integrointitestaus Testaustasot ja vaiheet Testaustaso = tietyn testauksen kohteen ja tavoitteen mukainen testaus joka jatkuu koko ajan tai

Lisätiedot

Testaussuunnitelma. Karstula. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testaussuunnitelma. Karstula. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testaussuunnitelma Karstula Helsinki 20.4.2007 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Juha-Pekka Juutilainen

Lisätiedot

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä

Lisätiedot

Ohjelmistotekniikka - Luento 10 Jouni Lappalainen

Ohjelmistotekniikka - Luento 10 Jouni Lappalainen Ohjelmistotekniikka - Luento 10 Jouni Lappalainen Luku 19: Oliosuuntautuneiden sovellusten testaus - oliotestauksen testaustasot - oliotestauksen ominaispiirteitä ja testausmenetelmiä - luokkatason testausmenetelmät

Lisätiedot

Mihin kaikkeen voit törmätä testauspäällikön saappaissa?

Mihin kaikkeen voit törmätä testauspäällikön saappaissa? Mihin kaikkeen voit törmätä testauspäällikön saappaissa? Arto Stenberg Copyright Kuntien Tiera Oy Kuntien Tiera Copyright Kuntien Tiera Oy Tiera on vuonna 2010 perustettu yli 200:n kuntatoimijan omistama

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 22. huhtikuuta 2016 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille! Kirjoittamasi luokat, funktiot ja aliohjelmat

Lisätiedot

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö Yleistä Tehtävä: Tee Javalla LineBreaker-ohjelma tekstirivin sovittamiseen tekstialueelle riviä katkomalla. Lausekielinen ohjelmointi II -kurssin pakollinen

Lisätiedot

Mihin kaikkeen voit törmätä testauspäällikön saappaissa?

Mihin kaikkeen voit törmätä testauspäällikön saappaissa? Mihin kaikkeen voit törmätä testauspäällikön saappaissa? Arto Stenberg Copyright Kuntien Tiera Oy Kuntien Tiera Copyright Kuntien Tiera Oy Tieran toiminta perustuu osaamisverkoston rakentamiseen, mikä

Lisätiedot

WCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma

WCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma TKK/DISKO/Tik-76.115 WCLIQUE Projektiryhmä Clique http://www.hut.fi/~jekahkon/wclique/testplan.pdf WCLIQUE Ohjelmistoprojekti WCLIQUE_TP Projektiryhmä Clique: Janne Dufva, 75008T, email: janne.dufva@nokia.com

Lisätiedot

Testilähtöinen ohjelmistokehitys. Testilähtöinen ohjelmistokehitys. TDD Testilähtöinen ohjelmistokehitys. Testi! Testi

Testilähtöinen ohjelmistokehitys. Testilähtöinen ohjelmistokehitys. TDD Testilähtöinen ohjelmistokehitys. Testi! Testi Testilähtöinen ohjelmistokehitys Kevät 2008 Jonne Itkonen Jyväskylän yliopisto Testilähtöinen ohjelmistokehitys Test-Driven Development, TDD Tehdään ensin testi, sitten vasta koodi. TDD Testilähtöinen

Lisätiedot