Käyttötapausanalyysi ja testaus Johdanto - Joensuu
Käyttötapausanalyysi ja testaus Johdanto - Joensuu
Käyttötapausanalyysi ja testaus Johdanto - Joensuu
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