Ohjelmiston testaus ja laatu RASE 9 5 2006

  • Slides: 18
Download presentation
Ohjelmiston testaus ja laatu RASE 9. 5. 2006 1

Ohjelmiston testaus ja laatu RASE 9. 5. 2006 1

Määritelmä ¡ ¡ ¡ ¡ Testaus on systemaattinen lähestymistapa ohjelmistoissa esiintyvien virheiden löytämiseksi ohjelmaa

Määritelmä ¡ ¡ ¡ ¡ Testaus on systemaattinen lähestymistapa ohjelmistoissa esiintyvien virheiden löytämiseksi ohjelmaa suorittamalla. Testattaessa pyritään luomaan kattavia testitapausjoukkoja, joilla ohjelmissa esiintyvät virheet saadaan selvitettyä taloudellisesti ja ohjelman toiminta mahdollisimman luotettavaksi. Testaamiseen on käytössä erilaisia välineitä (käytettävyys, tehokkuus, luotettavuus…) Testauksen tarkoituksena periaatteessa on osoittaa, että ohjelma toimii tai toisin päin, että ohjelma ei toimi, kuten sen pitäisi. Testausta suoritettaessa on hyväksyttävä se tosiasia, että kaikkia ohjelmistossa esiintyviä virheitä ei kyetä saamaan esiin, johtuen ohjelmistojen laajuudesta ja suorituspolkujen moninaisuudesta. Ohjelman toiminta voidaan todistaa oikeelliseksi vain äärimmäisen triviaaleissa tapauksissa. Kysymyksiä l l Toimiiko Tekeekö ohjelma väärin suhteessa määrittelyynsä? eri ympäristöissä? sitä, mitä sen pitäisi? sitä mitä sen ei pitäisi tehdä? 2

Käsitteitä ¡ virhe l l ¡ verifiointi l ¡ Tarkoittaa ohjelman oikeellisuuden ja oikean

Käsitteitä ¡ virhe l l ¡ verifiointi l ¡ Tarkoittaa ohjelman oikeellisuuden ja oikean toiminnan todentamista. validointi l ¡ Havaittu eroavaisuus ohjelmiston toiminnassa ja sille tuotetuissa määrityksissä. Testauksen vaihemallin mukaan virheet voidaan jakaa virheelliseen vaatimusten määrittelyyn, suunnitteluvirheisiin ja ohjelmointivirheisiin Tarkoittaa varmennusta, että toteutettava järjestelmä vastaa loppukäyttäjän tarpeita. virheidenpoisto l. debuggaus l Prosessi, jonka tarkoituksena on löytää ja poistaa virheiden syitä ja aiheuttajia ohjelmakoodista. 3

Käsitteitä ¡ staattinen testaus l l ¡ dynaaminen testaus l l ¡ Ohjelmiston testausta

Käsitteitä ¡ staattinen testaus l l ¡ dynaaminen testaus l l ¡ Ohjelmiston testausta ilman, että ohjelmakoodia suoritetaan. Koodin analysointi voidaan suorittaa joko käsin tai automaattisesti staattisen analyysin työkalulla. Menettelyllä pyritään löytämään tutkittavasta ohjelmakoodista loogisia-, suunnittelu- ja koodausvirheitä. Tapahtuu koodin tarkastuksessa (inspection), katselmuksessa (review) ja läpikäyntitilaisuuksissa (walkthrough) tai ohjelmoijan itse suorittamissa pöytätestauksissa (desk checking) Komponentin tai ohjelmiston testausta itse ohjelman tai sen osan suorituksen aikana ja perusteella Apuvälineinä olevat dynaamiset virheenjäljitysohjelmat, kuten debuggerit testattavuus l Ohjelmiston testattavuudella mitataan ohjelmiston kykyä paljastaa omat virheensä ohjelmakoodissa, komponenteissa tai vaatimuksissa 4

Testausvaiheet ja tehtävät Testi tapausten tuottaminen testitapaukset Testi tapausten ajo testausvaiheiden tehtävät testaus virheet

Testausvaiheet ja tehtävät Testi tapausten tuottaminen testitapaukset Testi tapausten ajo testausvaiheiden tehtävät testaus virheet / virheen oireet Virheen paikantaminen Virheen korjaus Korjausten testaus virheen poistaminen debuggaus 5

Testauksen käytännön olettamuksia ¡ ¡ ¡ täydellinen testaus vaatii kaikkien ohjelmarivien ja kaikkien eri

Testauksen käytännön olettamuksia ¡ ¡ ¡ täydellinen testaus vaatii kaikkien ohjelmarivien ja kaikkien eri toimintojen kombinaatioiden testaamisen vie aikaa ja on kallista mahdotonta testaus on vaihtokauppaa luotettavuus vs. kustannukset & aikataulu testauksessa ”silmä näkee, mitä se haluaa” miten tehdään ja kuka tekee luotettavaa testausta l l ¡ ¡ ohjelman tekijä ei saisi olla ainoa testaaja systeemin tehnyt ryhmä ei saisi olla ainoa testaajaryhmä testistä saatavat tulokset tulee tutkia tarkkaan, jotta ei jää huomaamatta virheitä testitapauksissa tulee olla kelvollisia ja kelvottomia syötteitä ”ei riitä, että ohjelma tekee sitä, mitä sen pitääkin tehdä. Se ei saa tehdä sitä, mitä sen ei pitäisikään tehdä” testaukselle varattava aikaa, jotta dokumentointi ja korjaus onnistuu 6

Katselmointi ¡ ¡ Vaatimus-, määrittely- ja suunnitteludokumenttien teon jälkeen katselmukset Katselmuskäytäntö kuvataan projektisuunnitelmassa tai

Katselmointi ¡ ¡ Vaatimus-, määrittely- ja suunnitteludokumenttien teon jälkeen katselmukset Katselmuskäytäntö kuvataan projektisuunnitelmassa tai projektitasoisessa testaussuunnitelmassa (mitä, kuka, milloin ja miten? ) Testauksen kannalta oleellisia ovat määrittely- ja suunnitteludokumenttien sekä testaussuunnitelman ja testitapausten katselmoinnit katselmuspalaveri l l l puheenjohtaja ja sihteeri pysytään asiassa tarkastuslistojen käyttö lisää tehokkuutta päätökset kirjataan ylös (hyväksyminen, ehdollinen hyväksyminen (havaitut virheet korjattava), uusintakatselmus Kestää enintään 2 tuntia 7

Onnistunut testaus vaatii ¡ ¡ ¡ ¡ Testausmenetelmien ja –välineiden asiantuntemuksen Selkeät tavoitteet Testaussuunnitteluun

Onnistunut testaus vaatii ¡ ¡ ¡ ¡ Testausmenetelmien ja –välineiden asiantuntemuksen Selkeät tavoitteet Testaussuunnitteluun panostamisen Tarvittavien henkilöresurssien olemassa olon Testausprojektin tuloksien seurannan ja toteuttamisen Testausprojektin hyvän vaiheistuksen ja välietapit Sovittujen pelisääntöjen tiedottamisen Suunnitellun ja toimivan muutos- ja virhehallinnan 8

Testausmenetelmiä ¡ Testauksen menetelmien päälähestymistapoina ovat l black-box testi ¡ ¡ ¡ testaaja ei

Testausmenetelmiä ¡ Testauksen menetelmien päälähestymistapoina ovat l black-box testi ¡ ¡ ¡ testaaja ei voi tutkia lähdekoodia testaus perustuu sovellukselle suunnitteluvaiheessa tehtyihin määrityksiin ja laadittuihin ohjeisiin Menetelmän käyttö edellyttää ohjelman suunnittelussa tehdyiltä määrittelyiltä täsmällisyyttä ja oikeaa toteutusta. testattavalle sovellukselle annetaan haluttu syöte, jonka jälkeen sovelluksen toimintaa tutkitaan sen tuottaman tulosteen perusteella. testaus käyttöliittymän kautta testaajana ei mielellään tekijä tai sovelluksen tuntija, vaan täysin ulkopuolinen henkilö testitapaukset todennäköisesti paljastavampia 9

Testausmenetelmiä l white-box (glass-box, clear box, structural) testi ¡ ¡ ¡ l testi perustuu

Testausmenetelmiä l white-box (glass-box, clear box, structural) testi ¡ ¡ ¡ l testi perustuu lähdekoodin ja toiminnallisen määrittelyn olemassaoloon testitapaukset suunnitellaan lähdekoodin toiminnallisuuden perusteella testaajalla tietoa järjestelmän sisäisestä rakenteesta mahdollisimman täydelliseen lausekattavuuteen = testitapauksien tulisi käydä jokainen järjestelmän sisäisen rakenteen haara läpi grey-box testi (gray-box am. ) yhdistelmä white box ja black box testeistä ¡ testitapaukset luodaan ohjelmakoodi ja toiminnallisuus tuntien ¡ toiminnallisesti orientoitunut, hyödyntää koodia ja toteutusratkaisujen tuntemusta ¡ varmentaa, paikkaa, täydentää edellisiä testejä ¡ 10

Testauksen vaihejako Hyväksymiskoe Tarpeet / sopimus Järjestelmätestaus Määrittely Arkkitehtuurisuunnittelu testauksen suunnittelu ja tulosten verifiointi

Testauksen vaihejako Hyväksymiskoe Tarpeet / sopimus Järjestelmätestaus Määrittely Arkkitehtuurisuunnittelu testauksen suunnittelu ja tulosten verifiointi Integrointitestaus Moduulisuunnittelu Ohjelmointi -Moduulitestauksen paljastamat virheet ovat ohjelmointivirheitä -Integrointitestauksessa esiin tulevat virheet johtuvat suunnitteluvirheistä -Järjestelmätestaus vaiheessa paljastuvat virheet, voivat pahimmassa tapauksessa johtaa koko prosessin alkuun eli virheellisesti suoritettuun määrittelyvaiheeseen 11

Hyväksymiskoe kyseessä ei ole testi virheitä ei saisi olla enää tässä vaiheessa ¡ hyväksymiskokeen

Hyväksymiskoe kyseessä ei ole testi virheitä ei saisi olla enää tässä vaiheessa ¡ hyväksymiskokeen tekee asiakas ¡ hyväksymiskokeen jälkeen asiakas saa sovelluksen käyttöönsä ja toimittajalle jää takuuajan mukainen korjausvelvoite ¡ 12

Testaustyökaluja ¡ ¡ käsitestaus (vähän) – automatisoitu testaus (mahd. paljon) staattinen virheenjäljitys – ilman

Testaustyökaluja ¡ ¡ käsitestaus (vähän) – automatisoitu testaus (mahd. paljon) staattinen virheenjäljitys – ilman ohjelman ajoa l ¡ dynaaminen virheenjäljitys – ohjelman ajon avulla l ¡ debuggeri, keskeytyskohdat, muuttujien seurannat, koodissa eteneminen automatisoitu testaus l l ¡ kääntäjä (varoitukset, virheet) testauksen suoritus- ja vertailutyökalut periaatteeltaan testityökalut ovat yksinkertaisesti ohjelmia, jotka suorittavat testin käyttämällä testattavaa sovellusta - simuloivat tavallista testaajaa ja testaajan testattavalle sovellukselle manuaalisesti suorittamia toimintoja Käytettävyystestissä eri välineet kuin toiminnan testaamisessa 13

Testauksen dokumentointi yleistestaussuunnitelma moduulitestaussuunnitelmat testi ympäristön luonti testitapausten kuvaus testausraportti testin suoritus testilogi 14

Testauksen dokumentointi yleistestaussuunnitelma moduulitestaussuunnitelmat testi ympäristön luonti testitapausten kuvaus testausraportti testin suoritus testilogi 14

Käytettävyys ¡ ¡ Käytettävyys on osa tuotteen laatuominaisuutta Käytettävyys on mittari, jolla mitataan tuotteen

Käytettävyys ¡ ¡ Käytettävyys on osa tuotteen laatuominaisuutta Käytettävyys on mittari, jolla mitataan tuotteen käytön tuottavuutta, tehokkuutta ja miellyttävyyttä. Nämä arvioidaan aina suhteessa käyttäjiin sekä työhön ja käyttöympäristöön, joille ja joihin tuote on tarkoitettu. (ISO 9241 -11 -standardi) l l l Tuottavuus - tehtävät tulevat tehdyksi täydellisesti ja virheettömästi. Tehokkuus - paljonko resursseja tuotteen käytössä tarvitaan henkilöinä, rahana ja aikana. Miellyttävyys - kuinka miellyttävä tuotetta on käyttäjien mielestä käyttää. 15

Käytettävyys Jakob Nielsen antaa käytettävyydelle seuraavat viisi laatukomponenttia: l l l Opittavuus: Kuinka helppoa

Käytettävyys Jakob Nielsen antaa käytettävyydelle seuraavat viisi laatukomponenttia: l l l Opittavuus: Kuinka helppoa käyttäjien on tehdä tuotteen avulla perusasiat ensimmäisellä käyttökerralla? Tehokkuus: Kun asia on opittu, kuinka nopeasti käyttäjät pystyvät tekemään tehtävät? Muistettavuus: Kun käyttäjät palaavat tuotteen ääreen oltuaan käyttämättä sitä jonkin aikaa, kuinka kauan heiltä menee saman tuottavuuden saavuttamiseen uudelleen? Virheettömyys: Kuinka paljon käyttäjät tekevät virheitä, kuinka vakavia ne ovat ja kuinka helppoa niistä on toipua? Miellyttävyys: Kuinka miellyttävä tuote on käyttää? Hyödyllisyys: Kuinka hyvin tuote sopii työhön, johon se 16 on tarkoitettu?

Käytettävyys ¡ Käytettävyys-käsitteellä on joukko rinnakkaiskäsitteitä: l l l Palvelevuus: Aiemmin käytettävyys, esimerkiksi onko

Käytettävyys ¡ Käytettävyys-käsitteellä on joukko rinnakkaiskäsitteitä: l l l Palvelevuus: Aiemmin käytettävyys, esimerkiksi onko verkko toiminnassa 24 tuntia vuorokaudessa Houkuttelevuus: Tuote houkuttelee ostamaan, käyttämään. Esimerkiksi Webissä tämä tarkoittaa sitä, että käyttäjä selaa etusivua syvemmälle. Helppokäyttöisyys: Suunnitteluperiaate, jonka mukaan käyttäjä saavuttaa tavoitteensa tehokkaasti on hän millä osaamistasolla tahansa. Esteettömyys: Kaikki pystyvät käyttämään tuotetta mukaan lukien vammaiset ja ikääntyvät käyttäjät. Käyttökokemus: Käyttöön liittyvät tunneaspektit. 17

Käytettävyys ¡ ¡ ¡ Käytettävyystestaus on menetelmä, jolla saadaan tuotteen käytöstä monenlaista tietoa. Käytetään

Käytettävyys ¡ ¡ ¡ Käytettävyystestaus on menetelmä, jolla saadaan tuotteen käytöstä monenlaista tietoa. Käytetään hyvin erilaisten tuotteiden testaamiseen (laitteet, ohjelmat, komponentit, työkalut, jne…) Käytettävyystestin tarkoitus on tehdä tuotteen käyttölaadusta parempi seuraamalla käyttäjän mentaalimalleja tilanteessa, joka muistuttaa aitoa tilannetta Käytettävyystestejä käytetään kahdella tavalla: - osana kehitystyötä ja tuotteen käytettävyyden mittarit ennen tuotteen jakoa Käytettävyystestin tarkoitus riippuu tuotekehityksen vaiheesta l l Kehitystestien tarkoituksena on käytettävyydeltään mahdollisimman hyvän käyttöliittymäratkaisun löytäminen. Hyväksymistestin tarkoituksena on tarkastaa, että tuote täyttää sille asetetut käytettävyysvaatimukset (esim. käyttöliittymän toimivuus suunnitelmiin nähden, käyttöongelmat, tuotteen koulutusnäkökulmat, myyntivalttien etsintä) 18