110 likes | 200 Views
Testauksen tutkimustulokset. Marko Jäntti mjantti@cs.uku.fi. Sisältö. 1. Johdanto 2. Testausjulkaisut 3. Testauksen tutkimusalueita 4. Testauskokeilu. Johdanto.
E N D
Testauksen tutkimustulokset Marko Jäntti mjantti@cs.uku.fi
Sisältö 1. Johdanto 2. Testausjulkaisut 3. Testauksen tutkimusalueita 4. Testauskokeilu
Johdanto • PlugIT-projektin yhtenä tavoitteena oli kehittää yhteistyöyritysten toimintaperiaatteita ja yhteisiä pelisääntöjä ja ratkaisuja ohjelmistotuotantoon, laadunvarmistukseen ja testaukseen. • Projektin puitteissa valmistui useita pro gradu -tutkielmia, tieteellisiä artikkeleita ja raportteja. • Testaukseen liittyvät julkaisut löytyvät Teho-osaprojektin www-sivuilta: http://www.cs.uku.fi/research/Teho/julkaisut.html • Testauspäivän (Software Testing Day 25.11.2003) seminaarin esitysmateriaali on saatavissa www-osoitteesta: http://www.cs.uku.fi/research/Teho/testingday/ • Testausprosessin hallinta • Testauksen automatisointi • Komponenttipohjainen testaus • Virheidenhallinta
Testausjulkaisut • Testaukseen liittyvät pro gradu -tutkielmat ja erikoistyöt: • Ohjelmiston testauksen automatisointi (Pohjolainen 2003) • Testitapausten suunnittelu UML-mallinnuksen avulla (Jäntti 2003) • Olio-ohjelmien testaus (Partanen 2003) • Ohjelmistojen testaus ja virheenjäljitys (Virkanen 2002) • Software Testing Tools, erikoistyö (Pohjolainen 2002)
Testausjulkaisut • Testausta käsittelevät artikkelit ja selvitykset • Avointen integrointiratkaisujen hyödyntäminen, toteuttaminen ja testaus (Mykkänen ym. 2004) • Selvitys regressiotestauksessa käytettävien testitapausten valinnasta (Holopainen 2004) • UML-based Testing - A Case Study (Jäntti, Toroi 2004) • Testing component-based systems - the integrator viewpoint (Toroi ym. 2004) • Avointen ohjelmistorajapintojen sertifiointimenettely (Toroi ym. 2004) • Komponenttisysteemien testaus (Toroi ym. 2004) • Testing business component systems (Toroi ym. 2003) • How to test software -raportti (Toroi ym. 2002)
Ohjelmistojen testaus ja virheenjäljitys • Ohjelmistojen testaus sisältää • Staattisen testauksen, jossa ohjelmakoodia ei suoriteta (tarkastukset, koodin läpikäynti, pariohjelmointi) • Dynaamisen testauksen, jossa ohjelmaa arvioidaan sen suorituksen aikana • Virheenjäljityksessä käytettävät menetelmät: • Mustalaatikko-menetelmät (Ekvivalenssiositus, raja-arvotestaus) • Lasilaatikko-menetelmät (Silmukkatestaus, lausekattavuus) • Virheenjäljityksen työkalut: • Staattiset virheenjäljitystyökalut: esim. kääntäjä, joka ilmoittaa ohjelmakoodin kääntämisvaiheessa havaituista virheistä • Dynaamiset virheenjäljitystyökalut: virheitä etsitään ohjelmaa tai sen osaa suorittamalla, esim. Borland C++ Builderin debugger
Komponenttipohjaisten järjestelmien testaus • Komponenttipohjaiset järjestelmät on toteutettu usein oliokielillä • Olio-ohjelmien testauksen ongelmakohdat: • Kapselointi aiheuttaa testaukseen havainnoimisongelman: Olion tilan muutosten tarkkailua varten joudutaan usein lisäämään testimetodeita • Periytymisen testaaminen: luokka perii yläluokalta piirteitä tai voi itse muokata perittyjä piirteitä ja lisätä uusia piirteitä. Kaikki perityt piirteet on testattava!! • Olioiden välinen viestinvälitys • Testausta varten joudutaan rakentamaan ajureita (drivers) ja tynkämoduleita (stubs) • Komponenttipohjaisessa sovelluskehityksessä rajapintojen testauksen merkitys korostuu
Komponenttipohjaisten järjestelmien testaus • Testausmallin perustana voidaan käyttää määrittelyvaiheen dokumentteja ja UML-kaavioita: • Aktiviteettikaaviot • Käyttötapauskaaviot • Tilakaaviot • Komponentin/olion tilojen testauksessa voidaan käyttää UML-tilakaavioita ja tilasiirtymätauluja. Tilamuutos voi tapahtua 4 eri tavalla: • Olion tila voi muuttua uuteen hyväksyttyyn tilaan • Olion tila voi jäädä entiselleen • Olion tila voi muuttua määrittämättömään tilaan, mikä on virhe • Olion tila voi muuttua määritettyyn, mutta ei-hyväksyttyyn tilaan, mikä on myös virhe.
Testauskokeilu (syksy 2002) • Testauskokeilun tavoitteena oli kokeilla UML-testausmallia käytännössä. • Testauksen kohteena oli terveydenhuollon tietojärjestelmä X. • Testauskokeilun toteuttamisvaiheet • Tutustuminen sovelluksen käyttöohjeeseen • UML-mallien luominen (käyttötapaus-, aktiviteetti- ja tilakaaviot) • Testitapausten (mustalaatikko) luominen • Testitapausten parametrien luominen ekvivalenssiluokkien avulla • Testitapausten suorittaminen • Testauksen tuloksena ohjelmistosta löydettiin pari vakavaa ajonaikaista virhettä ja useita pienempiä korjauskohteita - > Ohjelmistotoimittaja korjasi virheet seuraavassa versiossa. • Yhteenveto: Ohjelmistotoimittajan tulee testata ohjelmistot huolellisesti, jotta asiakkaan tai loppukäyttäjän testaustyö olisi helpompaa.
Kiitos!! Lisätietoja: mjantti@cs.uku.fi