Dynaaminen analyysi II

Samankaltaiset tiedostot
Dynaaminen analyysi II Luento 4 Antti-Pekka Tuovinen

Dynaaminen analyysi I

Dynaaminen analyysi IV

Dynaaminen analyysi III

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Dynaaminen analyysi IV Luento 6 Antti-Pekka Tuovinen

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Dynaaminen analyysi III Luento 5 Antti-Pekka Tuovinen

UML- mallinnus: Tilakaavio

UML -mallinnus TILAKAAVIO

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

Ohjelmistotekniikan menetelmät, UML

Ohjelmistojen mallintaminen olioiden elinkaaret - tilakaavio Harri Laine 1

Käyttötapausanalyysi ja testaus tsoft

Ohjelmistotekniikan menetelmät, käyttötapauksiin perustuva vaatimusmäärittely

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

58160 Ohjelmoinnin harjoitustyö

UML-kielen formalisointi Object-Z:lla

Harjoitustyön testaus. Juha Taina

Ohjelmistojen mallintaminen. Luento 2, pe 5.11.

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

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

käyttötapaukset mod. testaus

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

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

Ohjelmistojen mallintaminen

Määrittelyvaihe. Projektinhallinta

T Testitapaukset TC-1

Kontrollipolkujen määrä

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

M =(K, Σ, Γ,, s, F ) Σ ={a, b} Γ ={c, d} = {( (s, a, e), (s, cd) ), ( (s, e, e), (f, e) ), (f, e, d), (f, e)

Automaattinen regressiotestaus ilman testitapauksia. Pekka Aho, VTT Matias Suarez, F-Secure

Testaussuunnitelma Labra

Lohtu-projekti. Testaussuunnitelma

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

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

Käyttötapausten mallintaminen

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. tammikuuta 2012

Kombinaatiotestauksen tekniikat. 5. Kombinaatiotestaus (P&Y: 11) Luokittelutestauksen algoritmi. Luokittelutestaus. Pankkiautomaattiin kirjautuminen

T Testiraportti - järjestelmätestaus

Ohjelmiston testaus ja laatu. Testausmenetelmiä

Staattinen testaus Dynaaminen testaus I Luento 3 Antti-Pekka Tuovinen

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaiheet 1 ja 2. Antti Jääskeläinen Matti Vuori

Onnistunut Vaatimuspohjainen Testaus

Ohjelmistotuotantoprojekti

UML:n yleiskatsaus. UML:n osat:

Testaaminen ohjelmiston kehitysprosessin aikana

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015

Ohjelmiston toteutussuunnitelma

Ohjelmistotekniikan menetelmät, kesä 2008

TESTIRAPORTTI - JÄRJESTELMÄ, ADMIN Virtuaaliyhteisöjen muodostaminen Versio 1.0

Hirviö Järjestelmätestauksen testitapaukset ja suoritusloki I1

Convergence of messaging

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

Tik Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu. LiKe Liiketoiminnan kehityksen tukiprojekti

Ohjelmistojen mallintaminen Olioperustainen ohjelmistomalli Harri Laine 1

Tilakaaviot, sekvenssikaaviot (Haikala, Märijärvi ss , )

Esimerkki 1: Kahviautomaatti.

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

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä

Ohjelmistojen mallintaminen, kesä 2009

Ohjelmistotekniikan menetelmät, kevät 2008

Ongelma(t): Mikä on Turingin kone? Miten Turingin kone liittyy funktioihin ja algoritmeihin? Miten Turingin kone liittyy tietokoneisiin?

Yhteydettömän kieliopin jäsennysongelma

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

Algoritmit 1. Luento 3 Ti Timo Männikkö

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 22. toukokuuta 2013

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Ohjelmistotestauksen perusteita II

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistojen mallintaminen Olioiden yhteistyö Harri Laine 1

Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen

Testitapausten suunnittelu

Algoritmit 1. Luento 1 Ti Timo Männikkö

UCOT-Sovellusprojekti. Testausraportti

Tietorakenteet ja algoritmit

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Unified Modeling Language

11. Javan toistorakenteet 11.1

Kuopio Testausraportti Asiakkaat-osakokonaisuus

Testaa: Vertaa pinon merkkijono syötteeseen merkki kerrallaan. Jos löytyy ero, hylkää. Jos pino tyhjenee samaan aikaan, kun syöte loppuu, niin

Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä?

Datatähti 2019 loppu

Lähdekoodin suorituksen malli. 2. Äärelliset mallit (P&Y: 5) Ohjausvuokaaviot. Atomiset ehdot OVK:ssa. Atomiset ehdot

2. Äärelliset mallit (P&Y: 5)

Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä?

Onnistunut SAP-projekti laadunvarmistuksen keinoin

Ohjelmistojen mallintaminen. Luento 11, 7.12.

TIE Ohjelmistojen testaus Harjoitustyön esittely osa 2: Vaiheet 3 & 4. Antti Jääskeläinen Matti Vuori

Testi generaattori. Testien ajotyökalu. Kuva 1. Offline mallipohjainen testaus

DOORS 7.1 Test Tracking Toolkit

TIE Ohjelmistojen testaus Harjoitustyön esittely osa 2: Vaiheet 3 & 4. Antti Jääskeläinen Matti Vuori

(p j b (i, j) + p i b (j, i)) (p j b (i, j) + p i (1 b (i, j)) p i. tähän. Palaamme sanakirjaongelmaan vielä tasoitetun analyysin yhteydessä.

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

Ohjelmistojen mallintaminen, kesä 2010

Testaus osana ohjelmistojen elinkaarta II

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0

Transkriptio:

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 black-box -tekniikoista 9 April 2013 2 1

Tilamallit testitapausten suunnittelussa 9 April 2013 3 Tilamalli Ohjelman tilamalli on abstraktio, jolla kuvataan miten ohjelman suoritushistoria vaikuttaa sen käyttäytymiseen tietyllä ajan hetkellä Ulkoisesti havaittavan käyttäytymisen malli - ei sisäisen implementaation 9 April 2013 4 2

Tilamalli Sopii käytettäväksi, jos ohjelman suorituksessa on selviä vaiheita tai jaksoja, joissa sen käyttäytyminen on oleellisesti erilaista kuin muissa vaiheissa Hyväksytyt syötteet, tuotetut tulosteet, tietosisällön muutokset ja tuetun liiketoimintaprosessin vaiheet Siirtymiseen vaiheesta toiseen voi liittyä herätteitä, toimintoja ja ehtoja 9 April 2013 5 Tilamallin määrittely tilakoneena Tilakone eli äärellinen automaatti (finite state machine) Kiinnitetty, äärellinen määrä tiloja ja syötteitä Koostuu tiloista, siirtymistä, syötteistä ja tulosteista Mallinnetaan yleensä tilojen ja niiden välisten siirtymien välisenä verkkona Tilakaavio (state diagram) Tilakoneen graafinen esitys Näyttää mahdolliset tilat sekä tapahtumat ja olosuhteet, jotka aiheuttavat siirtymän tilasta toiseen tai jotka seuraavat tilasiirtymistä 9 April 2013 6 3

Esimerkki pinon tilakaavio kurssikirja kuva 5-3, s. 128 9 April 2013 7 Tilamallin perusteella tehtävä testaus Testin kohde (test object) Koko ohjelma tai jokin yksittäinen komponentti/palvelu, usein myös yksittäinen olio Testin suoritus koostuu sarjasta kohteelle annettuja syötteitä Testauksen kattavuus Testin vähimmäisvaatimus on, että kaikissa tiloissa käydään vähintään kerran Vahvempi ehto on, että jokaisen tilan kaikki toiminnot ja tilasiirtymät tulisi suorittaa ainakin kerran Myös reagointi odottamattomiin tai vääriin syötteisiin on testattava jokaisessa tilassa 9 April 2013 8 4

Testitapausten suunnittelu Esimerkki vähimmäistestistä (pinon maksimikoko on 4) 1. Esiehto: pino on alustettu ja tilassa empty 2. Syöte: vie pinoon (push) hello 3. Syöte: vie pinoon (push) hello 4. Syöte: vie pinoon (push) hello 5. Syöte: vie pinoon (push) hello 6. Tulos: pinon huipulla (top) on hello 7. Jälkiehto: pino on tilassa full 9 April 2013 9 Testitapausten muodostaminen Testitapausten suunnittelua helpottaa (syklisen) tilakaavion purkaminen tilasiirtymäpuuksi Algoritmi 1. Aseta tilamallin alkutila puun juureksi 2. Lisää uusi oksa puuhun jokaista alkutilasta lähtevää tilasiirtymää kohden siten, että siirtymän kohdetila tulee uudeksi lehdeksi puuhun 3. Toista askelta kaksi jokaiselle puun lehdelle, kunnes jompikumpi ehdoista täyttyy: i. Uusi tila on lopputila (ei enää siirtymiä muihin tiloihin) ii. Uusi tila esiintyy jo puussa polulla juuresta lisättyyn tilaan (eli on löytynyt sykli) 9 April 2013 10 5

Pinon siirtymäpuu initial initialize empty filled push delete deleted pop push push pop top empty filled full filled filled top push* top full full filled 9 April 2013 11 Testitapausten muodostaminen Puun jokainen polku juuresta lehteen vastaa yhtä testitapausta Siirtymiin liittyvät ehdot (guard) on otettava huomioon testitapauksia muodostettaessa Jotakin tiettyä polun segmenttiä on mahdollisesti toistettava: Initial empty filled filled filled full Myös odottamattomia syötteitä on kokeiltava jokaisessa tilassa Puuta laajennetaan sisältämään vääriä syötteitä vastaavat tilat 9 April 2013 12 6

Virhetilat pinon siirtymäpuussa initial initialize FAIL pop pop FAIL empty delete top push deleted filled delete push push pop top FAIL empty filled full filled filled delete top push* top full full filled FAIL 9 April 2013 13 Tilamallit järjestelmätestauksen apuna Tilamallit sopivat luontevasti kuvaamaan siirtymiä ohjelman erilaisten loppukäyttäjän näkymien jadialogien välisten siirtymien kuvaukseen 9 April 2013 14 7

Esimerkki - DreamCar GUI kurssikirja kuva 5-6, s. 133 9 April 2013 15 Testitapausten rakenne Testitapauksessa määritellään Testin kohteen alkutila ennen testitapauksen suoritusta Annettava syöte Odotettu testikohteen tuottama tulos tai käyttäytyminen Odotettu testikohteen lopputila suorituksen jälkeen Tilasiirtymistä pitää tietää Tila, josta siirtymä tapahtuu Tapahtuma tai olosuhde, joka laukaisee siirtymän Odotettu reaktio tai toiminto, jonka siirtymä käynnistää Seuraava tila, johon siirtymä johtaa 9 April 2013 16 8

Testauksen lopetusehto Yleinen ehto heikommasta vahvempaan 1. Jokainen tila on saavutettu vähintään kerran testin aikana 2. Jokainen siirtymä on suoritettu vähintään kerran (sisältää 1:n) 3. 2 + Jokaista odottamatonta/väärää syötettä on kokeiltu kaikissa tiloissa Kriittisille ohjelmille voidaan määritellä vielä kattavampiakin siirtymiä ja niiden kombinaatioita koskevia ehtoja (esim. tiedonsiirtoprotokollien testaus) 9 April 2013 17 Tekniikan arviointia Sopii käytettäväksi, kun testin kohteella on selvästi tilapohjaista käyttäytymistä (suoritushistoria vaikuttaa toimintaan) ja prosessoinnin vaiheet tai tilat ovat erotettavissa toisistaan Erityisen luontevaa olioperustaisille järjestelmille, jossa jokainen olio tavallaan on pieni tilakone Kapseloi tilan (attribuuttien/propertyjen arvot) ja siihen kohdistuvat operaatiot (metodit) 9 April 2013 18 9

Syy-seurausverkot ja päätöstaulut testitapausten suunnittelussa 9 April 2013 19 Syötteiden väliset riippuvuudet Aiemmin esitellyt tekniikat eivät ota huomioon ohjelman/komponentin eri syötteiden välisiä riippuvuuksia ja yhteisvaikutusta testin kohteen toimintaan Syötteitä tarkastellaan erillisinä (esim. ekvivalenssiluokat) Syy-seurausverkkojen (cause-effect graph) avulla voidaan kuvata tiettyyn ohjelmiston käyttäytymiseen (action, effect) johtavat tilanteet ja syyt (condition, cause) ja niiden kombinaatiot 9 April 2013 20 10

Esimerkki pankkiautomaatin toiminta kurssikirja kuva 5-7, s.136 9 April 2013 21 Päätöstaulut Testitapausten määrittelyä varten syyseurausverkko muunnetaan päätöstauluksi Algoritmi kurssikirjassa s. 137 Päätöstaulusta voidaan suoraviivaisesti muodostaa loogiset testitapaukset, jotka kuvaavat ohjelman eri käyttäytymisvaihtoehdot ja niihin johtavat ehdot ja tapahtumapolut Konkreettiset testitapaukset vaativat syötteet ja askeleet, joilla halutut tilanteet saavutetaan 9 April 2013 22 11

Esimerkki päätöstaulu kurssikirja kuva 5-7, s.136 9 April 2013 23 Testauksen lopetusehto Jokainen päätöstaulun sarake on suoritettava vähintään yhdellä testitapauksella Verifioi kaikki järkevät ehtojen kombinaatiot ja niitä vastaavan toiminnan 9 April 2013 24 12

Tekniikan arviointia Syitten ja seurausten huolellinen analysointi syy-seurausverkkojen ja päätöstaulujen avulla voi paljastaa ehtojen kombinaatioita, jotka eivät tule esiin muilla tekniikoilla Loogisten testitapausten muodostaminen helppoa Päätöstaulun muodostamisessa ja optimoinnissa voi tapahtua virheitä Verkot ja taulut voivat kasvaa suuriksi ja niiden hallinta vaatii erityisiä työkaluja Algoritmisia ratkaisuja kuitenkin löytyy 9 April 2013 25 Käyttötapausmallit testitapausten suunnittelussa 9 April 2013 26 13

Käyttötapausmallit Käyttötapauksia (use case) ja UML:n käyttötapausmalleja käytetään yleisesti ohjelmiston toiminnalliseen määrittelyyn Käyttötapaus kuvaa ulkopuolisen toimijan (actor) vuorovaikutuksen (syötteet ja vastaukset) ohjelmiston kanssa jonkin toimijan tavoitteen saavuttamiseksi Käyttötapauksen suoritus tuottaa jotain arvoa toimijalle 9 April 2013 27 Käyttötapausmallit UML kuvaa käyttötapaukset nimeämällä toimijat ja käyttötapaukset, sekä osoittamalla käyttötapausten väliset suhteet UML-mallit eivät kuvaa yksityiskohtaisesti käyttötapaukseen liittyvää vuorovaikutusta (toimijan antamia syötteitä ja ohjelmiston tuottamia vastauksia) Yksityiskohtaiset kuvaukset valituista käyttötapauksista kannattaa kirjoittaa erikseen: http://www.agilemodeling.com/artifacts/systemus ecase.htm 9 April 2013 28 14

Esimerkki pankkiautomaatti kurssikirja kuva 5-8, s. 140 9 April 2013 29 Käyttötapausmallit Käyttötapauksiin liittyy aina tiettyjä esiehtoja ja jälkiehtoja Käyttötapausmallit ja yksityiskohtaiset käyttötapauskuvaukset soveltuvat järjestelmä- ja hyväksyntätestauksen testitapausten suunnittelun pohjaksi Käyttötapauksia voi käyttää myös ohjelmiston alijärjestelmien välisen vuorovaikutuksen määrittelyyn, jolloin ne sopivat myös integrointitestien suunnitteluun 9 April 2013 30 15

Mallinnettu toiminnallisuus Käyttötapaukset keskittyvät ohjelmiston normaalin toiminnan ja tyypillisten tilanteiden kuvaamiseen Järjestelmän vakaa ja luotettava käyttäytyminen tärkeää Usein myös tärkeimmät vaihtoehtoiset tapahtumakulut kuvataan Käyttötapauksiin perustuvat testit ovat erittäin relevantteja asiakkaan ja loppukäyttäjän kannalta! 9 April 2013 31 Testitapausten muodostaminen Käyttötapaukseen liittyy toimijan jokin tavoite, joka on tarkoitus saavuttaa (lopputulos) Toimijan ja ohjelmiston välisen vuorovaikutuksen kulku koostuu aktioreaktio askeleista, joista osa voi olla vaihtoehtoisia tai johtaa muihin aktiviteetteihin (tai käyttötapauksiin) 9 April 2013 32 16

Testitapausten muodostaminen Käyttötapauksen kuvaukseen kuuluu Lähtötilanne ja esiehdot Muut mahdolliset ehdot tai olosuhteet Odotettu tulos Jälkiehdot Konkreettiset syötteet ja tulosteet täytyy erikseen määritellä testitapauksia varten Vaihtoehtoisia tapahtumankulkuja varten on myös määriteltävä testitapaukset 9 April 2013 33 Lopetusehto Jokainen käyttötapaus sekä sen vaihtoehtoiset kulut ja laajennukset on käyty läpi vähintään yhdessä testitapauksessa 9 April 2013 34 17

Tekniikan arviointia Hyödyllinen menetelmä tyypillisten toimintojen testaamiseen Sopii parhaiten järjestelmä- ja hyväksyntätestaukseen Käyttötapaukset voivat sisältää myös vaihtoehtoisia tapahtumakulkuja ja poikkeustilanteiden kuvauksia Asioita, joita käyttötapaukset eivät kuvaa, ei voi niiden perusteella testata Tarvitaan täydentäviä tekniikoita, esim raja-arvo analyysi 9 April 2013 35 Huomioita black-box tekniikoista 9 April 2013 36 18

Black-box testauksen rajoituksia Tekniikoiden lähtökohtana ovat järjestelmän vaatimukset ja spesifikaatiot Vaatimusten ja spesifikaatioiden virheet eivät tule helposti esille, koska black-box testit voivat vain osoittaa toimiiko ohjelmiston vaatimusten mukaisesti Tarkkaavainen testien suunnittelija voi kuitenkin havaita vaatimuksissa puutteita ja ristiriitaisuuksia Määrittelyvirheitä voidaan löytää katselmoinneilla (staattisen analyysin keino) 9 April 2013 37 Black-box testauksen rajoituksia Ylimääräisen, ei-vaaditun toiminnallisuuden löytäminen black-box testeillä on sattuman kauppaa Testauksen kattavuus- ja lopetusehdot perustuvat tunnettuihin vaatimuksiin ja spesifikaatioihin, eivätkä siihen mitä on tullut implementoitua 9 April 2013 38 19

Lopuksi Black-box testaus keskittyy ohjelmiston toiminnallisuuden verifointiin Ohjelmiston oikea toiminta on kiistämättä sen kaikkein tärkein ominaisuus Sen vuoksi black-box tekniikoita on aina syytä käyttää! 9 April 2013 39 20