1 / 44

SYS48D Tietojärjestelmän kehittäminen (12 ov)

SYS48D Tietojärjestelmän kehittäminen (12 ov). Testaus Jukka Juslin, Tapio Köppä Opettaja, HELIA. Opettaja. Jukka Juslin (DI) Huone R2 1019 Puhelin 09 – 1489 0264 Vastaanottoaika: maanantaisin klo 8 – 9 @ R2 1019 Sähköposti: Jukka.Juslin@helia.fi. Testaus osana kokonaisuutta (RUP).

jasia
Download Presentation

SYS48D Tietojärjestelmän kehittäminen (12 ov)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SYS48D Tietojärjestelmän kehittäminen (12 ov) Testaus Jukka Juslin, Tapio Köppä Opettaja, HELIA Jukka Juslin ja Tapio Köppä – SYS48D, sivu 1

  2. Opettaja • Jukka Juslin (DI) • Huone R2 1019 • Puhelin 09 – 1489 0264 • Vastaanottoaika: maanantaisin klo 8 – 9 @ R2 1019 • Sähköposti: Jukka.Juslin@helia.fi Jukka Juslin ja Tapio Köppä – SYS48D, sivu 2

  3. Testaus osana kokonaisuutta (RUP) Työvaiheiden (Unified Process) tyypillinen kuormitus (Unified Process - kirja, sivu 335): Jukka Juslin ja Tapio Köppä – SYS48D, sivu 3

  4. Testauksen sisäiset vaiheet • Edellisessä kuvassa näimme mihin testaus yleensä sijoittuu ohjelmistoprojektissa • Tämän lisäksi on tärkeää ymmärtää testauksen sisällä olevat vaiheet ja riippuvuus muista ohjelmistoprojektin osista • Siitä seuraavassa kalvossa... Jukka Juslin ja Tapio Köppä – SYS48D, sivu 4

  5. Testauksen V-malli (Vaatimus) Määrittely Järjestelmä- testaus Testauksen suunnittelu Integrointi- testaus Arkkitehtuuri- suunnittelu ja tulosten verifiointi Moduuli- testaus Moduuli- suunnittelu Ohjelmointi Haikala, Märijärvi. Ohjelmistotuotanto 1996, 3. painos. Sivu 234. Jukka Juslin ja Tapio Köppä – SYS48D, sivu 5

  6. RUP ja testaus • RUP korostaa testausta yhtenä työvirtana (work flow), Perry sivu 295 - • RUP:in idea testauksen(kin) suhteen on skaalautuvuus ja iteraatioittan edistyvä testaus – V-mallin mukaan tapahtuvia testaus V-tilanteita olisi N-kappaletta, eikä vain yhtä (kuten vesiputousmallissa) Jukka Juslin ja Tapio Köppä – SYS48D, sivu 6

  7. Testaus osana tietojärjestelmän kehittämistä • Testaus on osa tietojärjestelmän kehittämistä riippumatta siitä mitä kehitysprosessia käytetään (esim. RUP) • Testit jaetaan aina ns. ”test caseihin” testattaviin käyttötapauksiin (testitapauksiin) • Testitapaukset pitää dokumentoida konsistentisti ja tapaukset on valittava huolella kaikkien mahdollisten tapauksien joukosta Jukka Juslin ja Tapio Köppä – SYS48D, sivu 7

  8. Testaus kehittämisen eri vaiheissa • Käyttöliittymän testaus: voidaan suorittaa joko manuaalisesti testaajan toimesta (myös kehittäjä voi olla testaaja) tai automaattisella ”testirobotilla” – esimerkiksi Rationalin ”robot” • Käyttöönoton yhteydessä tehdään koko järjestelmän käyttöönottotestaus Jukka Juslin ja Tapio Köppä – SYS48D, sivu 8

  9. Testaussuunnitelma Jukka Juslin & Tapio Köppä Jukka Juslin ja Tapio Köppä – SYS48D, sivu 9

  10. Yleistä • Kuvataan yleisesti testauksen toteuttaminen: suunnittelukatselmus, loppukatselmus, modulitestaus, integrointitestaus ja järjestelmätestaus Jukka Juslin ja Tapio Köppä – SYS48D, sivu 10

  11. Suunnittelukatselmus • Tarkastetaan suunnittelukuvasto ja mahdollinen sijoittelumalli • Kohteet: jäljitettävyys, ulkoinen ja sisäinen johdonmukaisuus (ristiriidattomuus), testattavuus, seuraavan työvaiheen mahdollistaminen, järjestelmän käytön ja ylläpidon mahdollistaminen sekä toimivuus Jukka Juslin ja Tapio Köppä – SYS48D, sivu 11

  12. Suunnittelukatselmus – jatkuu • Iterointi • Hyväksymiskriteerit • Virheiden jaottelu: ennen jatkoa / korjataan seuraavassa vaiheessa • Mitä jatkotoimenpiteitä (virheiden korjaus seuraavassa vaiheessa) • Miten dokumentoidaan ja raportoidaan • Ketkä, milloin, miten toteutetaan? Jukka Juslin ja Tapio Köppä – SYS48D, sivu 12

  13. Loppukatselmus • Tarkastetaan toteutettu järjestelmä ja sen dokumentaatio: • Edellisten katselmusten (dokumentaatio ja) raportointi • Modulitestausten (dokumentaatio ja) raportointi • Integrointitestausten (dokumentaatio ja) raportointi • Järjestelmätestauksen (dokumentaatio ja) raportointi Jukka Juslin ja Tapio Köppä – SYS48D, sivu 13

  14. Loppukatselmus – jatkuu • Kohteet: • Määritysten mukaisuus (validointi) sekä atk-järjestelmän osalta että muiltakin osin (vaatimukset, manuaalitoiminnot, koulutus, …) • Jäljitettävyys, ulkoinen ja sisäinen johdonmukaisuus (ristiriidattomuus), käyttöönoton ja hyväksymistestauksen mahdollistaminen sekä järjestelmän käytön ja ylläpidon mahdollistaminen • Toimivuus ja virheettömyys Jukka Juslin ja Tapio Köppä – SYS48D, sivu 14

  15. Loppukatselmus – jatkuu • Iterointi: • Hyväksymiskriteerit • Virheiden jaottelu: käytön estävät / ei käyttöä estävät • Mitä jatkotoimenpiteitä (virheiden korjaus ylläpitona) Jukka Juslin ja Tapio Köppä – SYS48D, sivu 15

  16. Loppukatselmus – jatkuu • Miten dokumentoidaan ja raportoidaan • Ketkä • Milloin • Miten toteutetaan Jukka Juslin ja Tapio Köppä – SYS48D, sivu 16

  17. Testitapausten tekosuunnitelma • Järjestelmä-, integrointi- ja mahdollisesti modulitestauksia varten • Miten dokumentoidaan • Ketkä • Milloin (ja missä yhteydessä) • Miten toteutetaan (ja miten testitapaukset tehdään) • Testitapausten käyttö moduli-, integrointi- ja järjestelmätestauksissa Jukka Juslin ja Tapio Köppä – SYS48D, sivu 17

  18. Modulitestaus • Kohde: yksittäisten moduulien toimivuus ja virheettömyys (modulin toiminta ja määritysten mukaisuus) • Miten dokumentoidaan ja raportoidaan • Ketkä • Milloin • Miten toteutetaan Jukka Juslin ja Tapio Köppä – SYS48D, sivu 18

  19. Modulitestaus - jatkuu • Iterointi: • Hyväksymiskriteerit • Virheiden jaottelu: käytön estävät / ei käyttöä estävät • Uusintatestit • Mitä jatkotoimenpiteitä (jäljelle jäävien virheiden korjaus) • Testitapausten teko: • Musta-/lasilaatikko • Toistettavuus (regressiomalli?) Jukka Juslin ja Tapio Köppä – SYS48D, sivu 19

  20. Integrointitestaus • Kohde: yksittäisistä moduleista muodostettujen kokonaisuuksien toimivuus ja virheettömyys (kokonaisuuden, esim. build, toiminta, modulien yhteistoiminta sekä määritysten mukaisuus) • Miten dokumentoidaan ja raportoidaan • Ketkä Jukka Juslin ja Tapio Köppä – SYS48D, sivu 20

  21. Integrointitestaus - jatkuu • Milloin • Miten toteutetaan • Iterointi • Hyväksymiskriteerit • Virheiden jaottelu: käytön estävät / ei käyttöä estävät • Uusintatestit • Mitä jatkotoimenpiteitä (jäljelle jäävien virheiden korjaus) Jukka Juslin ja Tapio Köppä – SYS48D, sivu 21

  22. Integrointi • Testitapausten teko - Mustalaatikko - Toistettavuus (regressiomalli?) Jukka Juslin ja Tapio Köppä – SYS48D, sivu 22

  23. Järjestelmätestaus • Kohde: toteutetun atk-järjestelmän toimivuus ja virheettömyys (määritysten mukaisuus) • Miten dokumentoidaan ja raportoidaan • Ketkä • Milloin • Miten toteutetaan Jukka Juslin ja Tapio Köppä – SYS48D, sivu 23

  24. Järjestelmätestaus – jatkuu • Iterointi • Hyväksymiskriteerit • Virheiden jaottelu: käytön estävät / ei käyttöäestävät • Uusintatestit • Mitä jatkotoimenpiteitä (jäljelle jäävien virheiden korjaus) Jukka Juslin ja Tapio Köppä – SYS48D, sivu 24

  25. Järjestelmätestaus • Testitapausten teko • Mustalaatikko • Toistettavuus (regressiomalli?) Jukka Juslin ja Tapio Köppä – SYS48D, sivu 25

  26. Kehittämisprosessit Lähde:Valsta Jukka Juslin ja Tapio Köppä – SYS48D, sivu 26

  27. Ohjelmistolaadun tekniset ulottuvuudet Jukka Juslin (DI) Jukka Juslin ja Tapio Köppä – SYS48D, sivu 27

  28. Ohjelmistolaadun tekniset ulottuvuudet... • Sopeutuvuus uusiin ympäristöihin • Siirrettävyys • Uudelleenkäytettävyys • Yhteensopivuus • Muuntautumiskyky • Ylläpidettävyys • Muunneltavuus • Testattavuus Jukka Juslin ja Tapio Köppä – SYS48D, sivu 28

  29. ...Ohjelmistolaadun tekniset ulottuvuudet • Toiminnalliset ominaisuudet • Virheettömyys • Luotettavuus • Tehokkuus • Tietoturvallisuus • Käytettävyys • Mittaaminen ?! • Testattavia ?! Jukka Juslin ja Tapio Köppä – SYS48D, sivu 29

  30. Laadunvarmistuksen menetelmiä • Ohjelmistotekniset menetelmät ja työkalut • Tekniset katselmukset ja tarkastukset • Testaus • Standardien noudattaminen • Dokumentointi • Muutosten hallinta • Kattava mittaaminen • Prosessin seuranta ja raportointi Jukka Juslin ja Tapio Köppä – SYS48D, sivu 30

  31. Käsitteitä • Virhe (defect) • poikkeama määrityksistä (puute, väärä, ylimäärä) • mikä tahansa käyttäjän tyytymättömyys • virhe (error): ohjelmiston kehittäjän (ihmisen) tekemä virhe, aiheuttaa vian ohjelmakoodiin • vika (defect, fault, bug): väärin toimiva ohjelmiston osa, saattaa aiheuttaa häiriön • häiriö (failure): ulkoisesti havaittavissa oleva poikkeama toiminnassa verrattuna sen vaatimuksiin ja spesifikaatioon, tietojenkäsittelyn virheellinen tulos Jukka Juslin ja Tapio Köppä – SYS48D, sivu 31

  32. Käsitteitä, jatkuu... • Tarkastus/Katselmus/Esitestaus (Static testing) • määrämuotoinen, menetelmällinen katselmus on tilaisuus, jossa etsitään virheitä yhden tai useamman kirjallisesti tai suullisesti esitetyn raportin pohjalta (tarkistuslista) Jukka Juslin ja Tapio Köppä – SYS48D, sivu 32

  33. Käsitteitä, jatkuu... • Testaus (Dynamic testing) • järjestelmän tai sen osan tarkastus, jossa käytetään syöttötietoja ja jossa voidaan etukäteen määritysten perusteella päättää, mitä tulostietoja pitäisi saada • osan toimittua voidaan todellisia tuloksia verrata oikeiksi tiedettyihin tuloksiin • useimmiten toiminta tapahtuu tietokoneessa, mutta toimintaa voidaan myös matkia manuaalisesti Jukka Juslin ja Tapio Köppä – SYS48D, sivu 33

  34. Käsitteitä, jatkuu... • Testattavuus (Testability): missä määrin objektiivisella ja sopivalla testillä voidaan määrittää, onko jokin vaatimus toteutunut • Jäljitettävyys (Auditability): missä määrin jokin ulkopuolinen voi jälkikäteen selvittää, miten jokin asia on tehty • Todentaminen (Verification): lopputulosten arviointi virheettömyyden ja yhtäpitävyyden suhteen verrattuina alkutilanteeseen ja sovellettaviin standardeihin Jukka Juslin ja Tapio Köppä – SYS48D, sivu 34

  35. Käsitteitä, jatkuu... • Vahvistus (Validation): toteutusvaiheen lopputulosten vertailu määrittelyissä kuvattuihin järjestelmän vaatimuksiin Jukka Juslin ja Tapio Köppä – SYS48D, sivu 35

  36. Testauksen konkretisointi Jukka Juslin ja John-Erik Wigström SYS48D Jukka Juslin ja Tapio Köppä – SYS48D, sivu 36

  37. Olennaiset materiaalit testien konkretisoinnissa • http://myy.helia.fi/~sys48d/Testaus/varasto_testaussuunnitelma.doc • http://myy.helia.fi/~sys48d/Testaus/Testauslomake.doc • http://myy.helia.fi/~sys48d/Testaus/TsArvio.htm Jukka Juslin ja Tapio Köppä – SYS48D, sivu 37

  38. Testaustietokanta • Talletettu tietämys mitä testejä on ajettu, milloin, kenen toimesta, milloin testin sisältöä on muutettu (missä tarkka testin kuvaus näkyy), mitä ohjelmistoversiota ja mitä ohjelmistoa vasten testin on ajettu ja mikä oli testin tulos (PASSED, FAILED) • Voi olla yksinkertaisesti esimerkiksi MS Excel Sheet Jukka Juslin ja Tapio Köppä – SYS48D, sivu 38

  39. Integrointitestaus • Kohde: yksittäisistä moduleista muodostettujen kokonaisuuksien toimivuus ja virheettömyys (kokonaisuuden, esim. build, toiminta, modulien yhteistoiminta sekä määritysten mukaisuus) • Miten dokumentoidaan ja raportoidaan? • Ketkä? • Milloin? • Miten toteutetaan? • Iterointi • Hyväksymiskriteerit? • Virheiden jaottelu: käytön estävät / ei käyttöä estävät • Uusintatestit? • Mitä jatkotoimenpiteitä (jäljelle jäävien virheiden korjaus) • Testitapausten teko • Mustalaatikko • Toistettavuus (regressiomalli?) Jukka Juslin ja Tapio Köppä – SYS48D, sivu 39

  40. Ylemmän tason testit • Järjestelmän hyväksymistestaus • Järjestelmätestaus • Käyttöliittymän Use Case-testaus • Luovutusvaiheessa tehtävä testaus Jukka Juslin ja Tapio Köppä – SYS48D, sivu 40

  41. Modulitestaus käytännössä • Voidaan suorittaa esimerkiksi JUnit:a hyväksikäyttäen • JUnit on Javan de facto modulitestausstandardi • Seuraavassa esittelemme JUnitin käyttöä käytännön testaukseen Jukka Juslin ja Tapio Köppä – SYS48D, sivu 41

  42. Tarvittavat kirjastot Jukka Juslin ja Tapio Köppä – SYS48D, sivu 42

  43. JUnit - aloitus • Määrittele aliluokka junit.framework.TestCase:lle • Määrittele yksi tai useampia public testXXX() metodeja • Määrittele assertXXX() metodeja • Testi epäonnistuu kun assertXXX() lauseke epäonnistuu Jukka Juslin ja Tapio Köppä – SYS48D, sivu 43

  44. Simple Testcase package demo; import junit.framework.TestCase; public class VectorTest extends TestCase { private java.util.Vector testVector = null; protected void setUp() { // setup the fixture testVector = new java.util.Vector(); } protected void tearDown(){ testVector = null; } public void testIsEmpty() { assertTrue("Vector is not empty", testVector.isEmpty()); } public void testAddElement() { testVector.add(new Object()); assertEquals("Wrong size!", 1, testVector.size()); } public static void main(String[] args){ junit.textui.TestRunner.run(VectorTest.class); } } Jukka Juslin ja Tapio Köppä – SYS48D, sivu 44

More Related