24.11.2014 Views

Käyttötapausanalyysi ja testaus Johdanto - Joensuu

Käyttötapausanalyysi ja testaus Johdanto - Joensuu

Käyttötapausanalyysi ja testaus Johdanto - Joensuu

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Käyttötapausanalyysi <strong>ja</strong><br />

<strong>testaus</strong><br />

tSoft<br />

Voitto Tapola<br />

15.09.2004<br />

http://cs.joensuu.fi/tSoft/<br />

<strong>Johdanto</strong><br />

■ Use Case analyysi (käyttötapausanalyysi) on yleisesti<br />

käytetty järjestelmälle asetettujen toiminnallisten<br />

vaatimusten mallinnustekniikka<br />

■ Käyttötapaus kuvaa järjestelmän <strong>ja</strong> toimi<strong>ja</strong>n välisen<br />

vuorovaikutuksen eri tilanteissa järjestelmän vastatessa<br />

toimi<strong>ja</strong>n tekemään palvelupyyntöön<br />

■ Vuorovaikutus ei aina ole tarkalleen samanlainen, eli<br />

samalla käyttötapauksella on useita skenaarioita<br />

http://cs.joensuu.fi/tSoft/ 16.9.2004 2<br />

Voitto Tapola


<strong>Johdanto</strong><br />

■ Skenaario voi päättyä tavoitteen saavuttamiseen, mutta<br />

kaikki skenaariot eivät välttämättä pääty siihen: skenaario<br />

voi päättyä esimerkiksi järjestelmän antamaan<br />

virheilmoitukseen.<br />

http://cs.joensuu.fi/tSoft/ 16.9.2004 3<br />

Voitto Tapola<br />

<strong>Johdanto</strong><br />

■ Käyttötapaus kokoaa yhteen kaikki samaan<br />

käyttötapaukseen liittyvät eri skenaariot, sekä tavoitteen<br />

toteutumiseen päättyvät että tavoitteen saavuttamisessa<br />

epäonnistuvat skenaariot<br />

■ Käyttötapauksessa kukin skenaario kuvataan askel<br />

askeleelta: kuinka järjestelmän <strong>ja</strong> toimi<strong>ja</strong>n välinen<br />

vuorovaikutus tapahtuu<br />

http://cs.joensuu.fi/tSoft/ 16.9.2004 4<br />

Voitto Tapola


<strong>Johdanto</strong><br />

■ Käyttötapausanalyysin käyttöönotto<br />

● Mikä on sopiva "karkeustaso" käyttötapaukselle?<br />

● Mikäli käytetään karkean tason käyttötapauksia, pitäisikö ne <strong>ja</strong>kaa<br />

"pienempiin" käyttötapauksiin?<br />

● Mikäli <strong>ja</strong>etaan, kuinka muodostuneita "alikäyttötapauksia"<br />

käytetään?<br />

● Miten käyttäjän <strong>ja</strong> järjestelmän dialogi kuvataan?<br />

● Pitäisikö käyttöliittymän toiminnallisuus <strong>ja</strong> dynamiikka kuvata<br />

käyttötapauksessa?<br />

● Missä kuvataan muut järjestelmän tulosteet?<br />

http://cs.joensuu.fi/tSoft/ 16.9.2004 5<br />

Voitto Tapola<br />

<strong>Johdanto</strong><br />

■ http://cs.joensuu.fi/tSoft/suo<strong>ja</strong>ttu/kayttotapausanalyysi.htm<br />

■ Collins-Cope: RSI - A Structured Approach to Use Cases<br />

and HCI<br />

■ Periaate: Käyttötapaukset <strong>ja</strong>etaan kolmeen osaan:<br />

● vaatimuskäyttötapaukset (requirement),<br />

● palvelukäyttötapaukset (service) <strong>ja</strong><br />

● käyttöliittymäkäyttötapaukset ( interface).<br />

http://cs.joensuu.fi/tSoft/ 16.9.2004 6<br />

Voitto Tapola


Vaatimuskäyttötapaukset<br />

■ Vaatimuskäyttötapausanalyysin tuloksena ainakin<br />

● käyttötapauskaavio(t) <strong>ja</strong><br />

● käyttötapausten sanalliset kuvaukset<br />

■ Käyttötapauskaavion tarkoituksena on antaa yleiskuva<br />

järjestelmästä <strong>ja</strong> sen sisältämistä toiminnoista<br />

■ Käyttötapauskaavio esittää toimi<strong>ja</strong>t <strong>ja</strong> käyttötapaukset sekä<br />

niiden väliset suhteet<br />

http://cs.joensuu.fi/tSoft/ 16.9.2004 7<br />

Voitto Tapola<br />

Vaatimuskäyttötapaukset<br />

http://cs.joensuu.fi/tSoft/ 16.9.2004 8<br />

Voitto Tapola


Vaatimuskäyttötapaukset<br />

■ Käyttötapauksen taso: Käyttötapaukset voidaan <strong>ja</strong>kaa<br />

esimerkiksi kolmeen luokkaan:<br />

● Käyttäjän tavoite: varsinainen käyttötapaus, jonka suorittaminen<br />

tuottaa käyttäjälle jotakin arvoa<br />

● Koottu tavoite: sisältää useita Käyttäjän tavoite -tason<br />

käyttötapauksia<br />

● Alitavoite: osa varsinaista Käyttäjän tavoite -tason käyttötapausta<br />

■ Korkeamman tason käyttötapauksen askel on potentiaalinen<br />

sisältyvä käyttötapaus (Alitavoite)<br />

http://cs.joensuu.fi/tSoft/ 16.9.2004 9<br />

Voitto Tapola<br />

Vaatimuskäyttötapaukset<br />

http://cs.joensuu.fi/tSoft/ 16.9.2004 10<br />

Voitto Tapola


Vaatimuskäyttötapaukset<br />

■ Käyttötapauksen taso<br />

● Käyttäjän tavoite –tason käyttötapauksen yläpuolella voi olla yksi<br />

tai useampi käyttötapaus <strong>ja</strong><br />

● Käyttäjän tavoite –tason käyttötapauksen alapuolella on<br />

todennäköisesti monta käyttötapausta, mutta<br />

● vain Käyttäjän tavoite –tason käyttötapaukset esitetään<br />

käyttötapauskaaviossa<br />

http://cs.joensuu.fi/tSoft/ 16.9.2004 11<br />

Voitto Tapola<br />

Vaatimuskäyttötapaukset<br />

■ Käyttäjän tavoite -tason käyttötapaus<br />

● Looginen kokonaisuus, jolla on selvä lähtökohta <strong>ja</strong> käyttäjälle<br />

merkityksellinen lopputulos: Mistä käyttäjä on valmis maksamaan?<br />

● Liian laa<strong>ja</strong>t käyttötapaukset ovat joko liian monimutkaisia<br />

ymmärtää tai liian epämääräisiä ollakseen hyödyllisiä<br />

● Liian suppeat käyttötapaukset => liikaa käyttötapauksia järkevästi<br />

hallittavaksi<br />

http://cs.joensuu.fi/tSoft/ 16.9.2004 12<br />

Voitto Tapola


Vaatimuskäyttötapaukset<br />

http://cs.joensuu.fi/tSoft/ 16.9.2004 13<br />

Voitto Tapola<br />

Vaatimuskäyttötapaukset<br />

■ Graafinen notaatio ei riitä ilmaisemaan kaikkea tarvittavaa<br />

informaatiota<br />

■ => Lisäksi tarvitaan käyttötapausten sanalliset kuvaukset<br />

■ UML 1.5 ei standardoi esitystapaa<br />

■ Käyttötapaus kuvataan yleensä sanallisesti<br />

vapaamuotoisella tekstillä tai käyttäen kaavainta<br />

http://cs.joensuu.fi/tSoft/ 16.9.2004 14<br />

Voitto Tapola


Vaatimuskäyttötapaukset<br />

■ Esimerkki kaavaimesta:<br />

http://cs.joensuu.fi/tSoft/suo<strong>ja</strong>ttu/kayttotapausanalyysi.htm<br />

● Tunniste<br />

● Toimi<strong>ja</strong>(t)<br />

● Tavoitteet<br />

● Taso<br />

● Sisältyvät käyttötapaukset<br />

● Laajennetut käyttötapaukset<br />

● Alkuehdot<br />

● Loppuehdot<br />

http://cs.joensuu.fi/tSoft/ 16.9.2004 15<br />

Voitto Tapola<br />

Vaatimuskäyttötapaukset<br />

■ Esimerkki kaavaimesta (<strong>ja</strong>tkuu):<br />

● Onnistuneen perussuorituksen skenaario<br />

● Poikkeukset<br />

◆ Kuvaus poikkeuksesta (eli poikkeuksen syy)<br />

◆ Kuvaus käyttäjän <strong>ja</strong> järjestelmän välisestä vuorovaikutuksesta<br />

● Tekniset kaaviot<br />

● Käyttöliittymämääritykset<br />

● Avoimet kysymykset<br />

● Muutoshistoria<br />

● …<br />

http://cs.joensuu.fi/tSoft/ 16.9.2004 16<br />

Voitto Tapola


Järjestelmätestauksen<br />

testitapaukset<br />

■ Järjestelmätestauksen testitapaukset luodaan<br />

käyttötapausanalyysin poh<strong>ja</strong>lta<br />

■ Luodaan yksi tai useampi testitapaus jokaiselle<br />

● onnistuneen perussuorituksen skenaariolle<br />

● (testattavalle) poikkeukselle sekä<br />

● mahdollisille käyttötapauksen alkuehdoille<br />

■ Esimerkki testitapauslomakkeesta<br />

http://cs.joensuu.fi/tSoft/suo<strong>ja</strong>ttu/tt_esimerkkipoh<strong>ja</strong>.htm<br />

http://cs.joensuu.fi/tSoft/ 16.9.2004 17<br />

Voitto Tapola<br />

Testiskriptilomake<br />

■ Yleistiedot<br />

● Sovelluksen tunniste<br />

● Käyttötapauksen tunniste<br />

● Kyseisen dokumentin tunniste<br />

● Muutoshistoria<br />

● Testausympäristö (mikäli poikkeaa testauksen<br />

määrittelydokumentissa määritetystä ympäristöstä)<br />

◆ Esimerkki testauksen määrittelydokumentista<br />

http://cs.joensuu.fi/tSoft/suo<strong>ja</strong>ttu/testauksenmaarittely.htm<br />

● Onnistuneen perussuorituksen skenaario<br />

http://cs.joensuu.fi/tSoft/ 16.9.2004 18<br />

Voitto Tapola


Testiskriptilomake<br />

■ Kullekin testitapaukselle<br />

● Testitapauksen tunniste<br />

◆ Poikkeukset: käyttötapauksen poikkeuksen kohta Kuvaus poikkeuksesta<br />

● Järjestelmän tila testitapauksen alussa<br />

● Kuvaus käyttäjän <strong>ja</strong> järjestelmän välisestä vuorovaikutuksesta<br />

◆ Poikkeukset: käyttötapauksen poikkeuksen kohta Kuvaus<br />

vuorovaikutuksesta<br />

● Testitapauksen suoritusohjeet<br />

● Odotetut tulokset<br />

● Todelliset tulokset<br />

● Testauksen tuloksen luokittelu<br />

http://cs.joensuu.fi/tSoft/ 16.9.2004 19<br />

Voitto Tapola<br />

Testiskriptilomake<br />

■ Poikkeukset, joille ei ole tehty testitapausta<br />

● Testitapauksen tunniste<br />

◆ käyttötapauksen poikkeuksen kohta Kuvaus poikkeuksesta<br />

● Kuvaus käyttäjän <strong>ja</strong> järjestelmän välisestä vuorovaikutuksesta<br />

◆ käyttötapauksen poikkeuksen kohta Kuvaus vuorovaikutuksesta<br />

● Syy, miksi ei ole tehty testitapausta<br />

http://cs.joensuu.fi/tSoft/ 16.9.2004 20<br />

Voitto Tapola


Palvelukäyttötapaukset<br />

http://cs.joensuu.fi/tSoft/ 16.9.2004 21<br />

Voitto Tapola<br />

Palvelukäyttötapaukset<br />

■ Nokia Telecommunications<br />

(Jaaksi 1997):<br />

● Vaatimusten keräysvaiheen<br />

jälkeen käyttötapaukset <strong>ja</strong>etaan<br />

pienempiin osiin, operaatioihin<br />

● Operaatioista dokumentoidaan<br />

◆ Nimi<br />

◆ Alkuehdot<br />

◆ Kuvaus (käyttäen<br />

sekvenssikaaviota)<br />

◆ Poikkeukset <strong>ja</strong><br />

◆ Loppuehdot<br />

http://cs.joensuu.fi/tSoft/ 16.9.2004 22<br />

Voitto Tapola


Palvelukäyttötapaukset<br />

■ RSI-lähestymistapa: Palvelukäyttötapaukset<br />

■ Palvelukäyttötapausten <strong>ja</strong> vaatimuskäyttötapausten<br />

olennaisin ero on, että palvelukäyttötapaukset ovat atomisia<br />

■ Palvelukäyttötapausmallin luominen voi aiheuttaa<br />

päivitystarvetta vaatimuskäyttötapauksiin<br />

● lisätään vaatimuskäyttötapauksiin ne toiminnot (eli askeleet), jotka<br />

halutaan testata järjestelmä<strong>testaus</strong>vaiheessa<br />

http://cs.joensuu.fi/tSoft/ 16.9.2004 23<br />

Voitto Tapola<br />

Palvelukäyttötapaukset<br />

■ Esimerkki palvelukäyttötapauksen dokumentoinnista<br />

http://cs.joensuu.fi/tSoft/suo<strong>ja</strong>ttu/kayttotapausanalyysi.htm<br />

● Tunniste<br />

● Syöteparametrit<br />

● Tulosparametrit<br />

● Alkuehdot<br />

● Loppuehdot<br />

● Kuvaus<br />

● Poikkeukset<br />

http://cs.joensuu.fi/tSoft/ 16.9.2004 24<br />

Voitto Tapola


Käyttöliittymäkäyttötapaukset<br />

■ Vaatimuskäyttötapaukset kuvaavat vain järjestelmän<br />

käyttäjälle tarjoaman toiminnallisuuden<br />

● eivät ota kantaa esimerkiksi käytettävän datan vaatimuksiin<br />

■ Kuitenkin ohjelmoi<strong>ja</strong>n <strong>ja</strong> käyttöliittymän suunnitteli<strong>ja</strong>n täytyy<br />

tietää tarkalleen esimerkiksi se, että mitä tarkoitetaan<br />

yhteystiedoilla<br />

● mitä kenttiä osoitteeseen sisältyy, kenttien pituudet,<br />

puhelinnumeron validointisäännöt jne.<br />

■ RSI-lähestymistapa: Käyttöliittymäkäyttötapaukset<br />

http://cs.joensuu.fi/tSoft/ 16.9.2004 25<br />

Voitto Tapola<br />

Käyttöliittymäkäyttötapaukset<br />

■ Esimerkki käyttöliittymäkäyttötapauksen dokumentoinnista<br />

http://cs.joensuu.fi/tSoft/suo<strong>ja</strong>ttu/kayttotapausanalyysi.htm<br />

● Käyttöliittymän tunniste<br />

● Käyttöliittymän tarkoitus<br />

● Käyttöliittymän kuvaus<br />

◆ Kuva tai piirros prototyypistä<br />

● Toiminnan <strong>ja</strong> datan kuvaus<br />

◆ Kentät: tyyppi, minimi/maksimipituus, pakollinen tieto, erikoismerkit<br />

◆ Painikkeet/linkit: kuvaus toiminnasta<br />

● Tekstimuotoinen kuvaus<br />

http://cs.joensuu.fi/tSoft/ 16.9.2004 26<br />

Voitto Tapola


Käyttöliittymäkäyttötapaukset<br />

■ Testauksen kannalta käyttöliittymäkäyttötapausten<br />

pääkohderyhmä yksikkötestaa<strong>ja</strong>t<br />

● Yksikkötestauksen suorittaa (yleensä) sama henkilö, joka koodaa<br />

yksikön eli yksikkö<strong>testaus</strong>ta voi suorittaa hyvinkin moni henkilö<br />

■ Ohjelman täydellinen yksikkötestaaminen (eli kaikkien<br />

mahdollisten syötteiden anto) käytännössä mahdotonta =><br />

valittava syötteet, joilla <strong>testaus</strong> suoritetaan<br />

■ Yksikkö<strong>testaus</strong>ohje, jossa mm. määritetään, miten syötteet<br />

valitaan<br />

http://cs.joensuu.fi/tSoft/ 16.9.2004 27<br />

Voitto Tapola<br />

Käyttöliittymäkäyttötapaukset<br />

■ Esimerkki yksikkö<strong>testaus</strong>ohjeesta<br />

http://cs.joensuu.fi/tSoft/suo<strong>ja</strong>ttu/yksikko<strong>testaus</strong>ohje.htm<br />

■ Yksikkö<strong>testaus</strong> dokumentoidaan käyttäen yksikkötestauksen<br />

tuloslomaketta<br />

● Dokumentoidaan, että <strong>testaus</strong> suoritettu yksikkö<strong>testaus</strong>ohjeen<br />

mukaisesti<br />

● Ei dokumentoida sitä, mitä syötteitä käytetty<br />

■ Esimerkki yksikkötestauksen tuloslomakkeesta<br />

http://cs.joensuu.fi/tSoft/dokumenttipoh<strong>ja</strong>t.htm<br />

http://cs.joensuu.fi/tSoft/ 16.9.2004 28<br />

Voitto Tapola


Lopuksi<br />

■ Kysymyksiä?<br />

■ Kommentte<strong>ja</strong>/palautetta mainituista sivuista<br />

kaivataan => vtapola@cs.joensuu.fi<br />

■ Käyttöön joitakin osia mainituista sivuista =><br />

vtapola@cs.joensuu.fi<br />

http://cs.joensuu.fi/tSoft/ 16.9.2004 29<br />

Voitto Tapola<br />

Lähteet<br />

● Cockburn, A. (2001) Writing Effective Use Cases. Addison-<br />

Wesley, Boston.<br />

● Collins-Cope, M. (1999) The requirements/service/interface<br />

(RSI) approach to use case analysis (a pattern for structured<br />

use case development). 29th Technology of Object-Oriented<br />

Languages and Systems (TOOLS /EUROPE-29 ’99), Nancy,<br />

FRANCE, 172-183 .<br />

● Jaaksi, A. (1997) Our cases with use cases. The Journal of<br />

Object-Oriented Programming 10(9), 58-65<br />

http://cs.joensuu.fi/tSoft/ 16.9.2004 30<br />

Voitto Tapola

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!