Lehtori Erkki Hietalahti, Tampereen ammattikorkeakoulu

Koko: px
Aloita esitys sivulta:

Download "Lehtori Erkki Hietalahti, Tampereen ammattikorkeakoulu"

Transkriptio

1 TAMPEREEN AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma Ohjelmistotekniikan suuntautumisvaihtoehto Tutkintotyö Jaakko Saarinen TESTAUS OSANA OHJELMISTOPROJEKTIA Työn valvoja Tampere 2008 Lehtori Erkki Hietalahti, Tampereen ammattikorkeakoulu

2 TAMPEREEN AMMATTIKORKEAKOULU TIIVISTELMÄ Tekijä: Työn nimi: Jaakko Saarinen Testaus osana ohjelmistoprojektia Päivämäärä: Sivumäärä: 36 Hakusanat: Ohjelmistotestaus, prosessi, testaus Koulutusohjelma: Tietotekniikka Suuntautumisvaihtoehto: Ohjelmistotekniikka Työn valvoja: Lehtori Erkki Hietalahti Ohjelmistotestaus on yksi ohjelmistoprojektin tärkeimpiä vaiheita. Nykyään ohjelmiston laatuun kiinnitetään yhä enemmän huomiota ja tämän vuoksi testaus on kasvattanut osuuttaan jatkuvasti osana ohjelmistoprojektia. Tässä tutkintotyössä tarkastellaan ohjelmistotestauksen roolia ohjelmistoprojektissa. Työssä esitellään ensin ohjelmistotestausta yleisellä tasolla sisältäen muun muassa eri ohjelmistotestauksen menetelmiä ja testausprosessin. Toisessa teoriaosuudessa tarkastellaan ohjelmistoprojektin erilaisia prosessimalleja. Tämän kappaleen tarkoituksena on tuoda esille testauksen tärkeys ja osaltaan kasvattaa ohjelmistotestauksen vähäistä arvostusta. Työn viimeisessä osiossa tarkastellaan edelleen työn laatijan oman kokemuksen kautta testauksen ulkoistamisen vaikutuksia ohjelmistoprojektille. Tämä tutkintotyö ei suoranaisesti esitä ratkaisua mihinkään tunnettuun ongelmaan, vaan lisää ymmärrystä ohjelmistotestauksen suhteesta itse ohjelmistoprojektiin.

3 TAMPERE UNIVERSITY OF APPLIED SCIENCES ABSTRACT Author: Name of the thesis: Jaakko Saarinen Testing as a part of Softwareproject Date: Number of pages: 36 Keywords: Software testing, process Degree programme: Information and communications technology Specialisation: Software technology Supervisor: Lecturer Erkki Hietalahti Software testing is one of the most important phases of software project. Nowadays is more and more attention paid to the quality of software and that's the reason why proportion of testing has significantly increased in this project. This thesis is examining role of software testing in the whole software development project. Theory part of this study is firstly introducing software testing generally including well-known testing methods and process of testing. The second part of theory is introducing different software lifecycle models. Purpose of this part is to prove importance of testing and increase appreciation of software testing. The last part of this study is still examining how outsourcing of testing process will affect for software development project. This knowledge is based on writer s own experiences. This thesis isn't directly giving solution for any common problem but increasing understanding of software testing as a part of software project.

4 ALKUSANAT Tämä tutkintotyö on tehty Tampereen Ammattikorkeakoulun ohjelmistotekniikan insinöörityönä. Työn aiheen päätin loppukesästä 2008 ja työn kirjoittaminen tapahtui syksyn ja alkutalven 2008 aikana. Tahdon kiittää Erkki Hietalahtea työhön liittyvistä neuvoista. Tampereella Jaakko Saarinen

5 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 5 (36) SISÄLLYSLUETTELO TIIVISTELMÄ ABSTRACT ALKUSANAT SISÄLLYSLUETTELO JOHDANTO OHJELMISTOTESTAUKSEN TAUSTAA Virheen määritelmä Testausprosessi Testauksen aikataulutus Virheen korjausprosessi Roolit testauksessa Testauksen dokumentaatio ja raportointi Testauksen päättäminen Tunnetuimmat testausmenetelmät Lasilaatikkotestaus Mustalaatikkotestaus OHJELMISTOPROJEKTI YLEISESTI Ohjelmistoprojektin elinkaari Ohjelmistoprojektin vaihejakomallit Big-Bang-malli Vesiputousmalli Spiraalimalli Code-and-Fix-malli V-malli TESTAUKSEN ROOLI ERI OHJELMISTOPROJEKTEISSA Vaihejakomallin vaikutus testausprosessiin Testauksen ulkoistamisen vaikutus koko ohjelmistoprojektiin YHTEENVETO...35 LÄHDELUETTELO...36

6 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 6 (36) 1 JOHDANTO Testaus on jatkuvasti kasvattanut merkitystään ohjelmistoprojekteissa ja on nykypäivänä kiistatta yksi projektin tärkein ja kustannuksiltaan merkittävin vaihe. Olen itse työskennellyt ohjelmistotestaajana Manpower Business Solutions Oy:n Testing Servicessä lähes kaksi vuotta. Tänä aikana olen tutustunut testauksen eri menetelmiin ja tekniikoihin. Testausyrityksenä emme useinkaan ole mukana ohjelmistoprojektin muissa työvaiheissa. Tästä syystä testaus on ainoastaan erillinen ulkoistettu osa ohjelmistoprojektia. Tutkintotyössäni haluan selvittää, tulisiko testauksen kulkea mukana koko ohjelmistoprojektin elinkaaren ja mikä on sen tehtävä tässä prosessissa? Vastausta tähän kysymykseen etsitään olemassa olevan teorian pohjalta, eli kyseessä on teoreettinen tutkintotyö. Ensimmäisessä teoriakappaleessa tarkastellaan yleisellä tasolla ohjelmistotestauksen taustaa ja menetelmiä. Kappaleessa esitellään ohjelmistotestaukseen usein yhdistettäviä käsitteitä sekä tunnetuimia ohjelmistotestausmenetelmiä. Toisessa teoriakappaleessa tarkastellaan koko ohjelmistoprojektin elinkaarta, jonka yhtenä osana on edellisessä kappaleessa esitelty ohjelmistotestaus. Tämän kappaleen tarkoituksena on käydä läpi erilaisia olemassa olevia prosessimalleja ohjelmistoprojektin toteutukselle. Kolmannessa teoriakappaleessa tarkastellaan kerätyn teorian pohjalta testauksen tehtävää koko ohjelmistoprojektissa. Kappaleen tarkoituksena on selvittää onko olemassa yhtä ohjelmistoprojektin elinkaarimallia, jossa testauksella on selvä paikka ja rooli tässä prosessissa? Edelleen kappaleessa käydään läpi kirjoittajan oman kokemuksen pohjalta ohjelmistoprojektin tärkeimmän osan, eli testauksen ulkoistamisen vaikutusta koko ohjelmistoprojektin toteutukseen.

7 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 7 (36) 2 OHJELMISTOTESTAUKSEN TAUSTAA Ohjelmistojen laatuun kiinnitetään tänä päivänä entistä enemmän huomiota. Asiakkaat ja käyttäjät ovat laatutietoisempia kuin ennen ja näin vaativat ohjelmiltaan entistä enemmän. Testauksen osuus koko projektin resursseista arvioidaankin tyypillisesti olevan yli puolet. Testaukseen kuluvien resurssien arviointi on hyvin hankalaa ja huonosti suoritettu testausprosessi aiheuttaa helposti ohjelmistoprojektin suurimmat kustannukset. Tässä kappaleessa esitellään yleisesti ohjelmistotestausta ja annetaan muun muassa vastaus kysymykseen Mikä on testausprosessin päätarkoitus?. 2.1 Virheen määritelmä Testauksen tarkoituksena on löytää mahdollisimman suuri osa ohjelman virheistä sen mahdollisimman varhaisessa kehitysvaiheessa. Englanninkielisiä termejä virheelle on useita, kuten fault, bug, error ja defect. Näistä termeistä käytetään aina kuhunkin ohjelmistoprojektin osa-alueeseen parhaiten sopivaa vaihtoehtoa. Yleisesti virheenä voidaan pitää koodissa esiintyvää poikkeamaa sovelluksen toiminnallisesta tai teknisestä määrittelystä. Erimielisyyksien välttämiseksi tulisi näiden dokumenttien olla mahdollisimman tarkkoja. Koska määrittelyssä kuvataan kehitettävä tuote yksityiskohtaisesti toimintavaatimuksineen, sen epätarkkuus aiheuttaa suurimman osan löydetyistä virheistä. Se mitä pidetään virheenä kulloisessakin ohjelmistossa, voidaan todeta jo tuotteen määrittelyssä. Seuraava lista kuvaa viisi eri vaihtoehtoa, joista yhden tai useamman toteutuessa esiintyy ohjelmistossa virhe. 1. Ohjelmisto jättää tekemättä jotain, mitä sen määrittelyn mukaan tulisi tehdä. 2. Ohjelmisto tekee jotain, minkä määrittely kieltää.

8 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 8 (36) 3. Ohjelmisto tekee jotain mitä ei mainita määrittelyssä. 4. Ohjelmisto jättää tekemättä jotain, mitä ei määrittelyssä virheellisesti mainita. 5. Ohjelmisto on hankala ymmärtää, vaikeakäyttöinen, hidas tai toimii loppukäyttäjän näkökulmasta selkeästi väärin. Virheen vakavuus riippuu sen yleisyydestä sekä korjaus-, asennus- ja seurauskustannuksista. Se, onko virhe merkityksellinen testattavan ohjelmiston kannalta, riippuu myös sovelluksesta, josta se löydetään. Sovellukset voidaan jakaa äärimmäistä luotettavuutta vaativiin (kuten sairaala- ja pankkisovellukset) sekä vähemmän kriittisiin (kuten kalenterisovelluksiin). /1/ 2.2 Testausprosessi Testausprosessin tulisi kulkea mukana kaikissa ohjelmistoprojektin kehitysvaiheissa, jolloin virheiden löytäminen aikaistuisi ja näin vältyttäisiin mahdolliselta päällekkäiseltä työltä. Suunniteltaessa testausprosessia täytyy ottaa huomioon monia tekijöitä, kuten työntekijöiden osaamisalueet, aikataulut, testausmenetelmät ja mahdollisesti testausprosessia tukevat työkalut. Totta kai on tärkeää huomioida myös asiakas ja loppukäyttäjät. On kuitenkin mahdotonta ottaa huomioon kaikkea tulevaa, sillä aikataulut usein venyvät ja virheiden määrää ei pystytä ennustamaan etukäteen. Testausprosessi alkaa yleisesti prosessin määrittelystä ja suunnittelusta. Itse testaus suoritetaan näiden suunnittelujen, tuotetun koodin ja testiaineiston pohjalta. Testikierroksella havaitut virheet raportoidaan ja ohjataan kehittäjille korjattavaksi. Kehittäjät tekevät korjaukset koodiin, jonka jälkeen suoritetaan uusintatestaus, jossa tehdyt korjaukset joko hyväksytään tai hylätään. Tätä toistetaan kunnes testikierros hyväksytään.

9 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 9 (36) Kun samoja testejä toistetaan useita kertoja, tulevat virheet helposti immuuneiksi näille testeille. Tämän vuoksi saatetaan joutua tekemään muutoksia testitapauksiin. Näin uusilla testitapauksilla on mahdollista löytää vielä olemassa olevia virheitä. Seuraavassa listassa on esitelty kuusi keskeistä periaatetta ohjelmistotestauksessa. /1, 2/ 1. Testauksen onnistuminen on riippuvainen testausprosessin laadusta. 2. Testauksen aloittaminen elinkaaren varhaisessa vaiheessa ehkäisee virheiden siirtymisen. 3. Tehokas testaus vaatii ajanmukaiset testityökalut. 4. On nimettävä henkilö vastaamaan testausprosessin kehityksestä. 5. Testaus on ala, joka vaatii koulutettuja, osaavia ihmisiä. 6. Ryhmässä on ylläpidettävä myönteistä luovan tuhoamisen (creative destruction) ajattelua Testauksen aikataulutus Testauksen ja verifioinnin aloittaminen mahdollisimman aikaisessa vaiheessa säästää huomattavasti vaivaa ja rahaa. Kun virhe saadaan poistettua mahdollisimman varhaisessa prosessin vaiheessa, säästytään pitkältä jäljitysprosesseilta ja säästetään niin resursseja kuin rahaakin. Tuotteen toiminnallisuuden ja laadun varmistamiseksi tulisi kullekin testauksen tasolle tehdä testaussuunnitelma jo alkuvaiheessa, kun saman tason määrittely tiedetään. Oletettavaa tietenkin on, että tuotteen määrittely tehdään lopulliseksi jo projektin alkuvaiheessa. Muokattaessa määrittelyä myöhemmin koituu lisätyötä kehittäjien ja dokumentoijien lisäksi myös testaajille. Testauksen aikataulun suunnittelu on tärkeää. Aikataulutus on toteutettavissa muun muassa yksinkertaisilla tehtävälistoilla tai vaihtoehtoisesti yksityiskohtaisemmilla Gant-kaavioilla. Hyvän aikataulun avulla tiedetään, mitä on tehty, mitä on vielä tekemättä ja paljonko aikaa tekemättömiin testauksiin on jäljellä. /1/

10 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 10 (36) Virheen korjausprosessi Yksinkertaisimmillaan virheen elinkaari noudattaa seuraavanalaista kaavaa: virhe löydetään ja raportoidaan kehittäjille, kehittäjä korjaa virheen ja raportoi siitä testaajalle, testaaja testaa uudelleen ja hyväksyy korjauksen. Osalla virheistä on kuitenkin selvästi mutkikkaampi elinkaari (kuva 1). Aluksi, kun uusi virhe on havaittu, se avataan (engl. open). Kun virhe on avattu, siirretään se katselmoinnin (engl. review) jälkeen korjattavaksi kehittäjille tai mahdollisesti virhe asetetaan odottamaan myöhempää korjausta (engl. deferred). Virhe voidaan katselmoinnin jälkeen myös hylätä kokonaan. Lopulta, kun kehittäjät ovat saaneet virheen korjattua, testataan toiminta uudelleen ja joko hyväksytään virhe ja suljetaan se, tai hylätään ja avataan se uudelleen. New Bug Open Review Reopened Resolved Deferred Test Closed Kuva 1 Virheen elinkaari Syitä joidenkin virheiden korjaamatta jättämiseen on useita. Osa virheistä jätetään korjaamatta ajan puutteen vuoksi, koska ohjelma on saatava valmiiksi tiettyyn päivämäärään mennessä. Joskus kyseessä ei ole todellinen virhe, vaan ominaisuus. Tämä johtuu useimmiten väärinymmärryksestä tai muuttuneesta määrittelystä. Joidenkin virheiden korjaamisen pidetään riskitekijänä, koska niiden korjaaminen aiheuttaisi lisää virheitä, joiden korvaaminen olisi huomattavasti työläämpää. Lisäksi joidenkin virheiden korjaaminen ei ole vaivan arvoista. Tällaiset virheet esiintyvät

11 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 11 (36) vain harvoin ja niiden välttämiseksi ohjelmassa on vaihtoehtoinen tapa suorittaa asia. Näin liiketoiminnan kannalta on kannattavampaa jättää virhe korjaamatta. /1, 4/ Roolit testauksessa Kun testausta suunnitellaan, tulee päättää myös testauksen rooleista. On harhaanjohtavaa ajatella, että kehittäjät ovat parhaita testaajia, koska he tuntevat koodinsa parhaiten. Kehittäjät kuitenkin pyrkivät testaajina todistamaan vain oman koodinsa toimivaksi ja tulevat helposti sokeiksi omassa koodissaan esiintyville virheille. Suurissa ja tärkeissä projekteissa testaus ulkoistetaan erilliselle testausorganisaatiolle. Tällaisia testauspalveluja tarjoavia yrityksiä on tänä päivänä markkinoilla useita. Sovelluskehittäjän rooliin kuuluu yksikkötestauksen suorittaminen ja useimmiten myös integraatio-osuuden testaaminen, jolloin tulee varmistetuksi osien välisten yhteyksien toimiminen. Tämän jälkeen varsinainen testausryhmä aloittaa testauksen. Testausryhmä on jo aiemmin luonut tarvittavat testaussuunnitelmat, joiden pohjalta testaus aloitetaan. Kehittäjät ovat testauksen aikana virheiden korjaajina. Testiryhmä koostuu neljästä päätehtävänimikettä: testiteknikko tai nykyään paremminkin seniori ohjelmistotestaaja, huolehtii testauksessa tarvittavien ohjelmien asennuksesta ja konfiguroinnista sekä suorittaa mahdollisesti joitakin pienempiä ja yksinkertaisempia testejä. Yleisin ja tunnetuin tehtävänimike on ohjelmistotestaaja, joka uransa alkuvaiheessa työskentelee senioritestaajan kanssa, kuitenkin kirjoittaen itse testitapauksensa. Kokeneemmat ohjelmistotestaajat ottavat osaa myös testaussuunnitelmien tekoon. Seuraavana roolina testauksen urakehityksessä on testiryhmän johtaja, joka vastaa pienissä projekteissa koko testauksesta ja suuremmissa projekteissa suurimmasta osasta testausta. Johtaja vastaa myös testaussuunnitelman teosta ja valvoo muiden testaajien työskentelyä. Testausryhmää johtaa testimanageri. Hänen tehtäviinsä kuuluvat tiedon välitys projektin johdolle, aikataulus-

12 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 12 (36) ta sopiminen, tavoitteiden suunnittelu, ensisijaisten tehtävien valinta ja testausresurssien hyödyntäminen projektin aikana. /1/ Testauksen dokumentaatio ja raportointi Testaukseen liittyy hyvin merkittävänä osana erilainen dokumentointi ja raportointi projektin eri vaiheissa. Testausdokumentaation tarvitsevat testaajien lisäksi projektin johto ja muut työntekijät. Kunnollinen dokumentaatio on äärimmäisen tärkeässä tehtävässä projektin onnistuneessa läpiviennissä, uusien työntekijöiden perehdyttämisessä ja sovelluksen uusien versioiden kehityksessä. Tämän takia dokumentaatiot tulee kirjoittaa alusta pitäen vastaamaan kattavasti kysymyksiin; mitä testaan, miksi testataan ja miten testataan. Kattava ja kunnollinen dokumentointi vie paljon aikaa projektilta, mutta se tekee testauksesta hallittua, joustavaa ja nopeampaa. Testauksessa tarvittavia dokumentteja on useita riippuen projektin koosta. Dokumentit voidaan jakaa kolmeen pääkategoriaan: suunnittelu, spesifiointi ja raportointi. Seuraavaksi esitellään lyhyesti seuraavat dokumentit: testaussuunnitelma, testitapaukset ja virheraportointi. Nämä kolme dokumenttia edustavat dokumenttien pääkategorioita. Testaussuunnitelma on ensimmäinen testausvaiheen dokumentti. Se ohjaa testauksen aikaista toimintaa. Testaussuunnitelma toteutetaan useimmiten valmiiseen pohjaan, mutta toteutukseen tulisi varata kuitenkin riittävästi aikaa, sillä suunnitelma on ehdottomasti testauksen tärkeimpiä raportteja. Testaussuunnitelmasta tulisi ensimmäisenä selvitä suunnitelman tarkoitus, testattavan sovelluksen tiedot ja yksityiskohtaisesti eritellyt vaatimukset. Suunnitelmassa tulisi määrätä myös testauksen aikataulu. Aikataulusta tulee selvitä testikierrosten aloitus- ja lopetuskriteerit.

13 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 13 (36) Kaikki testauksessa tarvittavat resurssit, ihmisistä työkaluihin ja ohjelmistoihin, tulee dokumentoida. Pienenkin projektin testaussuunnitelmassa on hyvä kertoa, kuka projektissa on vastuussa mistäkin. Sovelluksen osa-alueet tulee jakaa testaajien kesken sekä määritellä ensi- ja toissijaiset tehtävät. Yhteisymmärryksen saavuttamiseksi olisi kaikki käytetyt termit määriteltävä. Testaussuunnitelmassa kerrotaan testaukseen liittyvästä strategiasta, käytetyistä menetelmistä ja mahdollisista testaustyökaluista. Lisäksi tulee päättää ja kirjata, testataanko kaikki itse vai annetaanko ainakin osa testauksesta ulkopuolisen testausyrityksen hoidettavaksi. Olennainen osa testausprosessia ovat dokumentaatioon kirjoitetut testitapaukset. Testitapausten tärkeyteen on neljä pääsyytä: useat testaajat, toistettavuus, jäljitettävyys ja todistaminen. Projektissa saattaa olla useita testaajia laatimassa testitapauksia pitkällä aikavälillä. Tämän vuoksi muidenkin testaajien ja projektiin liittyvien henkilöiden on tiedettävä ja pystyttävä käyttämään testitapauksia. Toistettavuudella tarkoitetaan samojen testitapausten suorittamista uudelleen. Tätä tarvitaan korjattujen virheiden uudelleen testaukseen, jolloin testauksen alussa on saatava täsmälleen samat arvot kuin aiemmilla testauskerroilla. Jäljitettävyydellä tarkoitetaan, että testitapaukset toimivat dokumentteina kerrottaessa suoritettujen ja suorittamatta jätettyjen testitapausten määrästä sekä hyväksytyistä ja hylätyistä testeistä. Viimeinen tärkeä syy, todistaminen, tarkoittaa mahdollisuutta todistaa tiettyjen osien testaaminen ja siten niiden toiminta. Testitapausten tulisi olla mahdollisimman yksiselitteisiä ja niiden tulisi kuvata yksityiskohtaisesti testauksen suoritus askeleittain. Aluksi tulee kuvata lähtötilanne, josta selviävät mahdolliset alkuvalmistelut. Ohjelmalle annettavat syötteet on mainittava tarkasti, ja mikäli syötteitä on joissain kohdissa useampia, tulee vaihtoehdot listata selkeästi. Myös oletettujen tulosten tulee selvitä testitapausdokumenteista. Testaus tulisi siis pystyä suorittamaan pelkillä testitapausten kuvaamilla tiedoilla. Kaikki testauksessa havaitut virheet tulee dokumentoida. Virheraportin tulee olla tarkka, ettei kehittäjille tule väärinkäsityksiä asiasta, jolloin virhe voi jäädä huomi-

14 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 14 (36) oimatta. Mitä aikaisemmassa vaiheessa projektia virhe raportoidaan, sitä suuremmalla todennäköisyydellä se tulee korjatuksi. Jotta varmistutaan vakavien virheiden korjaamisesta, tulee virheraporttien elinkaarta seurata. Virheraportissa tulee virhe kuvata tarkasti, mutta kuitenkin vain tarvittavat arvot ja askeleet tulee kuvata virheen uudelleen tuottamiseksi. Muuttujien alkuarvot, suoritetut toiminnot ja arvot virheen esiintyessä ovat välttämättömiä kohtia raportissa. Mikäli mahdollista, tulee syitä virheen syntymiselle etsiä ja raportoida. Raporttiin tulee kirjata myös virheen vakavuus ja prioriteetti, jotka auttavat kehittäjiä päättämään virheiden korjauksen kiireellisyydestä. /1, 5/ Testauksen päättäminen Jo testausta suunniteltaessa tulee määrittää kriteerit, joiden täytyttyä testaus voidaan lopettaa ja todeta sovellus kelvolliseksi. Yksi hiukan harhaluuloinen tapa todeta testaus suoritetuksi on se, että virheitä ei enää löydy. Tämä ei kuitenkaan todellisuudessa ole mahdollista, sillä suurin osa nykyisistä ohjelmista on sen verran laajoja, että niistä on mahdotonta löytää kaikki virheet. Testauksen lopettaminen tulisi ajoittaa niin, että tuotteessa ei ole enää liikaa virheitä ja toisaalta liiketoiminnan kannalta on aika luovuttaa tuote asiakkaalle. Tätä voidaan kuvata kaaviolla (kuva 2), jossa testauksen kustannuksia ja löytämättömien virheiden määrää verrataan liian vähäiseen ja liiallisen testaukseen. Hyvä lopetuskohta on mahdollista pyrkiä määrittämään tietyillä säännöillä ja niin, että sen kriteereillä olisi testauksen tasoa nostava vaikutus. Nykypäivänä testaus teetetään yhä useammin ulkopuolisilla, jotta testaus olisi tavallista laadukkaampaa. Jokaiselle testauksen vaiheelle tulisi erikseen määritellä lopetuskriteerit. Näin siirtyminen seuraavaan vaiheeseen testauksessa tapahtuisi vain silloin, kun edellisen vaiheen testauskriteerit on täytetty. Usein kuitenkin projekteissa päädytään testauk-

15 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 15 (36) sen lopettamiseen aiemmin valitun päivämäärän mukaan, mikä siirtää ongelmia tulevaisuuteen. /1, 3/ Löytämättömien virheiden määrä Testauksen kustannukset Optimaalinen testausmäärä Määrä Liian vähäinen testaus Liiallinen testaus Testauksen määrä Kuva 2 Optimaalinen testausmäärä 2.3 Tunnetuimmat testausmenetelmät Testausmenetelmillä tarkoitetaan tapaa suorittaa testit. Testitapausten valinta määräytyy valitun testausmenetelmän mukaan. Yleisesti testitapausten valintaan on käytettävissä kaksi päästrategiaa: musta- ja lasilaatikkotestaus. Mustalaatikkotestaus (engl. black-box testing) toteutetaan ohjelman määrittelyjen avulla ja siinä pyritään syötteiden ja vasteiden avulla toteamaan toiminnan oikeellisuus. Lasilaatikkotestauksessa (engl. white-box testing, glass-box testing) pyritään löytämään virheellisiä kohtia ja toiminnallisuuksia ohjelman koodin avulla. Mustalaatikko- ja lasilaatikkotestauksen yhdistelmää kutsutaan harmaalaatikkotestaukseksi, jossa hyödynnetään molempien menetelmien parhaimpia ominaisuuksia. Testauksen taso yleisesti määrää testitapausten valintamenetelmän niin, että lasilaatikkomenetelmää käytetään yksikkötestauksessa ja siirryttäessä suurempiin kokonaisuuksiin muuttuu laatikon väri tummemmaksi. Lasilaatikkomenetelmillä kes-

16 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 16 (36) kitytään siis yksityiskohtiin ja siksi sen käyttö on mahdotonta integroidussa systeemissä. Testausmenetelmät jaetaan musta- ja lasilaatikkotestauksen lisäksi staattisiin ja dynaamisiin menetelmiin. Dynaamisessa testauksessa (engl. dynamic testing) sovelluksesta pyritään löytämään virheitä ajamalla sitä. Staattisessa testauksessa (engl. static testing) ohjelmaa ei sen sijaan ajeta, vaan testaaminen toteutetaan tarkkailemalla suunnitelmaa, arkkitehtuuria ja koodia virheiden löytämiseksi. /1, 6/ Lasilaatikkotestaus Lasilaatikkotestaus edellyttää koodiin käsiksi pääsyä ja mahdollisuutta nähdä ja analysoida sitä. Tähän viittaa myös testausmenetelmän nimi, eli testaaja näkee laatikon sisään ja voi näin tarkastella koodia. Staattisessa lasilaatikkotestauksessa tarkastellaan huolellisesti ja suunnitelmallisesti ohjelman rakennetta, arkkitehtuuria tai koodia virheiden löytämiseksi kuitenkaan ajamatta sitä. Staattinen testaus on hyvin aikaa vievää ja kallista, minkä takia sitä ei suoriteta kovinkaan useissa projekteissa. Iso etu staattisessa testauksessa on kehittäjien ja ohjelmoijien yhteistyö. Tämä antaa molemmille osapuolille mahdollisuuden nähdä ja ymmärtää toisen osapuolen työtä ja taitoja, ja näin he oppivat ja osaavat arvostaa toisiaan entistä paremmin. Staattista lasilaatikkotestausta pidetään yleisesti aikaa vievänä, kalliina ja tuloksettomana. Virheiden löytäminen on kuitenkin huomattavasti hankalampaa ja kalliimpaa kehityksen loppuvaiheessa. Ongelma onkin siinä, että yleisesti kehittäjän työnä pidetään pelkkää koodin kirjoitusta ja kaikki aika, jonka hän käyttää muuhun, hidastaa projektia. Dynaamisessa lasilaatikkotestauksessa testitapaukset rakennetaan ohjelman sisäisen rakenteen avulla. Testitapausten suorittamisen jälkeen tuloksia verrataan odotettuihin tuloksiin ja tehdään analyyseja sen pohjalta. Dynaamisen lasilaatikkotes-

17 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 17 (36) tauksen menetelmät jaetaan yleisesti kolmeen ryhmään: kontrollin kulku, silmukkatestaus ja tietovirtatestaus. Näille eri menetelmillä voidaan varmistaa sovelluksen kattavuus kullakin osa-alueella. Dynaaminen testaus on huomattavasti systemaattisempaa kuin staattinen testaus. Dynaaminen lasilaatikkotestaus soveltuu useimpiin ohjelmiin. Koska menetelmät voidaan ottaa käyttöön jo varhaisessa vaiheessa, on niihin kuluva aika lyhyempi. Menetelmien avulla saadaan käytyä läpi kaikki niin sanotut tavallisimmat virhetilanteet. Suurimpana haittapuolena voidaan pitää lähdekoodin välttämättömyyttä. Koska testaus suoritetaan aikaisessa vaiheessa, ei lähdekoodia ole aina välttämättä saatavilla. /1, 3, 6/ Mustalaatikkotestaus Päinvastoin kuin lasilaatikkotestauksessa, mustalaatikkotestauksessa testataan sisäisen toiminnan sijaan ohjelman syöte-vaste-käyttäytymistä. Mustalaatikkotestauksessa ei siis välitetä ohjelman sisäisestä rakenteesta tai sisällöstä, vaan ainoastaan ohjelmaan annettuja syötteitä ja niiden tuottamia vasteita tutkitaan. Testattava kohde voi siis olla testaajalle täysin tuntematon, niin sanottu musta laatikko. Sovelluksen käyttäytymistä tietyillä syötteillä verrataan määrittelyihin sekä arkkitehtuuriin ja ohjelmakoodin toimintapa jätetään huomioimatta (kuva 3). Staattinen mustalaatikkotestaus suoritetaan ainoastaan kirjoitetulle määrittelyaineistolle. Tällä tavoin estetään virheiden siirtyminen dokumentaatiosta kirjoitettuun koodiin. Staattinen mustalaatikkotestaus voidaan suorittaa jo projektin alkuvaiheessa, koska riittää, että tuotteen määrittelydokumentti on valmiina. Tällöin virheiden korjauskustannuksissa säästetään, kun virheet eivät ehdi koodiin.

18 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 18 (36) Kun ohjelmaa testataan tuntematta sen koodin yksityiskohtia, puhutaan dynaamisesta mustalaatikkotestauksesta. Koska ohjelmaa ajetaan loppukäyttäjän tapaan, puhutaan dynaamisesta testauksesta ja koska ohjelman toimintatapaa ei tunneta tarkalleen, kyseessä on mustalaatikkotestaus. Testauksessa ohjelmalle annetaan syötteitä ja tarkastellaan niiden tuottamia vasteita. Dynaamista mustalaatikkotestausta kutsutaan myös käyttäytymistestaukseksi, koska siinä testataan kuinka ohjelma todellisuudessa käyttäytyy, kun sitä käytetään. /1, 6/ Mustalaatikko Syöte Vaste Testattavan tuotteen määrittelyt Odotettu vaste Tulosten vertailu Kuva 3 Mustalaatikkotestauksessa ei tunneta testattavan kohteen sisältöä.

19 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 19 (36) 3 OHJELMISTOPROJEKTI YLEISESTI Pääluvussa kaksi esiteltiin eri näkökulmista ohjelmistotestausta, joka on osa koko ohjelmistoprojektia. Tämän kappaleen tarkoituksena on esitellä lyhyesti ohjelmistoprojektin elinkaarta sekä etsiä vastausta kysymykseen: Voiko testauksen rooli ja työvaihe vaihdella eri ohjelmistoprojekteissa ja mitkä tekijät tähän mahdollisesti vaikuttavat? 3.1 Ohjelmistoprojektin elinkaari Ohjelmistoprojektit noudattavat yleisesti jonkun tietyn prosessimallin mukaista kaavaa. Prosessimalli vaihtelee pitkälti ohjelmistotuotteen mukaan. Yleisimmissä prosessimalleissa ohjelmistoprojektin vaiheita ovat esitutkimus, määrittely, suunnittelu, toteutus, testaus sekä käyttöönotto ja ylläpito (kuva 4). 1.Esitutkimus 2.Määrittely 6.Käyttöönotto ja ylläpito Ohjelmistoprojektin elinkaari 3.Suunnittelu 5.Testaus 4.Toteutus Kuva 4 Ohjelmistoprojektin yleinen elinkaari

20 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 20 (36) Esitutkimus on yleisesti ohjelmiston elinkaaren ensimmäinen vaihe. Esitutkimusvaiheessa selvitetään asiakkaan ja käyttäjien vaatimukset kehitettävän tuotteen suhteen. Tässä vaiheessa määritellään yleiset järjestelmätason vaatimukset päätavoitteista. Tätä määrittelyä kutsutaan asiakasvaatimukseksi, koska siinä huomioidaan asiakkaan ja käyttäjien tarpeet ilman varsinaista toteutusta. Jotta asiakkaan todelliset tarpeet ja toiveet saadaan kirjattua ylös, tulee asiakkaan tarpeet selvittää tapaamisten yhteydessä esim. haastatteluilla. Määrittelyvaiheessa asiakasvaatimuksia analysoidaan ja niistä johdetaan ohjelmistovaatimukset eli haetaan vastaus kysymykseen mitä ohjelma tekee?. Määrittelyn tuloksen syntynyttä dokumenttia kutsutaan toiminnalliseksi määrittelyksi. Siinä kuvataan ohjelmiston toiminnot, tiedon kulku ja sisältö sekä toteutukselle asetettavat ei-toiminnalliset vaatimukset ja rajoitukset. Vaatimusmäärittely on elinkaaren tärkein vaihe, sillä huonoa määrittelyä ei voida pelastaa enää suunnittelulla tai koodauksella, eikä tuote miellytä asiakasta ja käyttäjiä tai se ei vastaa heidän tarpeitaan. Kolmas eli suunnitteluvaihe vastaa kysymykseen miten ohjelma toteutetaan?. Tämä vaihe jaetaan neljään osaan: tiedon rakenteeseen, ohjelmiston arkkitehtuuriin, käyttöliittymän esittämiseen ja toiminnallisiin yksityiskohtiin eli moduulien suunnitteluun. Määrittelyvaiheen tiedoista muodostetaan ohjelmiston suunnittelu ja dokumenttina saadaan tekninen määrittely. Ennen siirtymistä toteutusvaiheeseen on suunnitteluvaiheessa toteutettujen dokumenttien laatu hyvä varmistaa. Sovelluksen laadun varmistamiseksi on suunnitteluvaiheessa huolehdittava selkeydestä, ymmärrettävyydestä, tehokkuudesta, luotettavuudesta, ylläpidettävyydestä ja siirrettävyydestä. Toteutusvaiheessa ohjelman osat toteutetaan suunnitteludokumenttien mukaisesti. Dokumentteja tulee noudattaa ja tarvittaessa niihin voidaan tehdä muutoksia. Tuotteen määrittelyyn ja suunnitteluun tulee tutustua tarkasti kehitystyön aikana, jotta

21 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 21 (36) vältytään suurelta määrältä virheitä. Tähän vaiheeseen kuuluu myös virheenjäljitys, joka ei siis ole osa testausvaihetta. Kun ohjelmasta on olemassa ensimmäinen toimiva ja annetut vaatimukset täyttävä versio, voidaan sitä alkaa testata. Testauksessa on tarkoitus tarkastaa ohjelman kaikki osa-alueet sekä havainnoida ja korjata virhetilanteet. Elinkaaren viimeiseen vaiheeseen kuuluvat käyttöönotto ja ylläpito, joka on yleensä vaiheista pisin. Kun ohjelmisto on siirretty asiakkaalle, tehdään siihen monesti muutoksia uusien virheiden ilmentyessä. Asiakkaan halutessa muutoksia tai uusiutuneen ympäristön vuoksi, tarvitaan aina uutta toimintatapaa. Ohjelmistotuotteissa ei varsinaista ylläpitovaihetta esiinny kovin usein verrattuna muiden alueiden tuotteisiin, koska useimmat tuotteet on tehty juuri tiettyä asiakasta varten ja muutokset tehdään sovelluksen seuraavassa versiossa. Tämän perinteisen jaon mukaan testaus on siis ohjelmistotuotantoprosessin viimeinen vaihe ennen käyttöönottoa ja ylläpitoa. Seuraavassa luvussa tullaan pohtimaan muita vaihtoehtoisia paikkoja testauksella ohjelmistoprojektissa esiteltävien vaihtoehtoisten vaihejakomallien avulla. /1, 9/ 3.2 Ohjelmistoprojektin vaihejakomallit Edellisessä kappaleessa esitettiin hyvin pelkistetty elinkaarimalli, mutta on olemassa myös joukko muita tunnettuja ohjelmistoprojektin kehitysmalleja. Näitä eri ohjelmistoprojektin elinkaarimalleja kutsutaan alan kirjallisuudessa vaihejakomalleiksi. Kuten edellisessä kappaleessa todettiin, jaetaan ohjelmiston koko elinkaari, tai ainakin sen toteutusprosessi, eri vaiheisiin. Vaihejakomalleilla määrätään kuinka tämä eri prosessivaiheisiin jako toteutetaan. Tässä luvussa esitellään ensin neljä yleisintä vaihejakomallia ja viimeisenä edelleen yhden vaihejakomallin pohjalta testauksen näkökulmasta kehitetty uusi malli.

22 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 22 (36) Big-Bang-malli Big-Bang-malli on yksinkertaisin vaihejakomalli, joka noudattaa niin sanotun maailman alkuräjähdyksen kaltaista kaavaa. Mallin mukaan ohjelmisto syntyy, kun kootaan yhteen ihmiset, rahaa ja aika ja odotetaan räjähdystä. Kaikki teho käytetään ohjelman kehitykseen ja koodin kirjoittamiseen. Tässä mallissa ei suunnitella, aikatauluteta, dokumentoida eikä tiedetä ohjelman tarkkaa lopputulosta ennen sen valmistumista. Mallissa ei myöskään palata aiempiin vaiheisiin, joten testaus on ainoastaan virheiden raportointia asiakkaalle. Tätä mallia ei pidetä kovin hyvänä, koska yleensä lopputulosta ei voida taata. Big-Bang-mallissa testausta ei huomioida juuri lainkaan. Mikäli testaus on otettu mukaan malliin, se suoritetaan hyvin pienimuotoisena juuri ennen tuotteen julkaisua. Useimmiten testaus on kuitenkin mukana vain näennäisesti, jotta saataisiin kaikki vakuutettua testauksen jonkinlaisesta toteutuksesta. /1/ Vesiputousmalli Vesiputousmalli on vaihejakomalleista tunnetuin. Se on yksinkertainen, järkevä ja oikeanlaisessa projektissa erittäin toimiva. Mallissa liikutaan portaittain vaiheesta toiseen projektin alkuideasta aina sen elinkaaren loppuun (kuva 5). Kun siirrytään seuraavaan vaiheeseen, tarkastetaan ensin edellisen vaiheen lopussa, ollaanko valmiita siirtymään vai tarvitseeko samaa vaihetta vielä jatkaa. Mallia käytetään usein myös lineaarisesti, jolloin paluuta edellisiin vaiheisiin ei käytetä. Vesiputousmallissa ohjelman suunnittelulle on varattu paljon käytössä olevasta ajasta. Itse ohjelman toteutukselle sen sijaan on varattu vain yksi askel kuudesta. Nämä askeleet ovat irrallisia, eikä päällekkäisyyksiä niiden tehtävissä ole. Tämä on jokseenkin rajoittavaa, mutta malli toimii hyvin projekteissa, joissa vaatimukset ymmärretään hyvin ja niitä noudatetaan kunnolla.

23 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 23 (36) Idea Määrittely Suunnittelu Toteutus Testaus Kuva 5 Vesiputousmalli. Ylläpito Testauksen näkökulmasta malli tarjoaa yhden suuren edun muihin malleihin verrattuna. Koska kaikki on tarkasti ja perusteellisesti suunniteltu ennen testauksen aloitusta, on testiryhmän helppo määrittää tarkka testaussuunnitelma. Lisäksi testiryhmä pystyy arvioimaan hyvin tulevan testausaikataulun, koska sen jäsenet tietävät tarkalleen, mitä heidän tulee testata. Koska testaus tapahtuu ainoastaan lopussa, ovat virheiden korjauskustannukset huomattavasti suuremmat kuin määrittely- tai suunnitteluvaiheessa. Tätä seikkaa pidetään merkittävimpänä vesiputousmallin haittapuolena. Tämä vaihejakomalli on kuitenkin käytetyin ja yleisesti projektin vetäjien osalta helposti hallittavin malli. Vaihejakomallista on luotu useita variaatioita ja sen pohjalta on kehitetty myös kokonaan uusia malleja. /1, 8 / Spiraalimalli Yksi käytetyimmistä vaihejakomalleista on spiraalimalli (kuva 6), joka on erityisen tehokas malli kehitysprosessissa. Mallin perusajatuksena on, että prosessia tarkennetaan asteittain. Aluksi luodaan alkeellinen prototyyppi toteutettavasta ohjelmasta tai sen tärkeästä osasta. Sitä testataan ja mahdollisesti esitellään asiakkaalle. Testa-

24 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 24 (36) uksesta ja asiakkaalta saadusta palautteesta aloitetaan seuraava suunnittelun, kehityksen ja testauksen kierros. Kuva 6 Spiraalimalli Spiraalimalli on kehitetty lainaamalla hyväksi todettuja ominaisuuksia muilta malleilta. Kun tähän lisätään ongelmakohtien aikaisen havaitsemisen alhaisemmat kustannukset, saadaan kohtalaisen hyvä vaihejakomalli. Testaajat ovat mukana kaikissa projektin vaiheissa, ja näin he näkevät vaatimukset ja halutut tuotokset. Testaus tapahtuu siis vaihejakomallin kaikissa vaiheissa. Tällöin projektin viivästyessä testaus ei ole ensimmäinen osa-alue josta aikataulua kiristetään. Ainoastaan viimeinen testien tarkastelu ja oikeellisuuden tarkistus jäävät projektin kiireiseen loppuun. Spiraalimallin heikkoutena on mahdollinen aikataulun venyminen ja kustannusten kasvaminen, koska tulevia projektin vaiheita ei tiedetä tarkasti. Edelleen mallin toimivuutta voi olla hankala selittää sitä tuntemattomalle ja se saattaa aiheuttaa

25 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 25 (36) epäselvyyttä projektiryhmään kuuluvien henkilöiden välillä. Projektimallia paremmin tuntemattomat voivat helposti luulla, että jo ensimmäisessä testausvaiheessa ollaan tuotteen osalta lähellä valmista lopputuotetta. /1, 7/ Code-and-Fix-malli Code-and-Fix-malliin päädytään usein, jos mitään muuta mallia ei pystytä käyttämään. Mallissa toistetaan koodausta, testausta ja virheiden korjausta kunnes niin sanotusti annetaan periksi ja julkaistaan tuote (kuva 7). Valmis tuote Vapaamuotoinen määrittely Koodaus, (testaus), korjaus, toistoja kunnes? Kuva 7 Code-and-Fix-malli Code-and-Fix-mallia käytettäessä aloitetaan tyypillisesti karheasta ideasta, eli siitä mitä projektilta halutaan. Seuraavaksi tehdään yksinkertainen suunnitelma ja aloitetaan pitkä koodauksen, testauksen ja virheiden korjauksen toisto. Kun tullaan siihen lopputulokseen, että toistoa on tehty tarpeeksi, on tuote valmis. Malli sopii hyvin etenkin pienten projektien, kuten demojen ja prototyyppien, toteuttamiseen, koska suunnitteluun ja dokumentointiin ei käytetä kovin paljon resursseja, saadaan tulokset esiteltyä välittömästi. Mallia on tosin käytetty myös monissa suurissa ja tunnetuissakin ohjelmistoprojekteissa. Ohjelman, joka on toteutettu Code-and-Fix-mallia käyttäen, tunnistaa usein sen sisältämästä suuresta määrästä pieniä virheitä ja sen viimeistelemättömyydestä.

26 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 26 (36) Kuten Big-Bang-mallissa, myös Code-and-Fix-mallissa on testaus jätetty kokonaan pois, mutta todellisuudessa testauksella on suuri merkitys koodauksen ja korjauksen välissä. Testaajien on yhdessä ohjelmoijien kanssa oltava jatkuvasti tietoinen kehityksen vaiheesta. Testaajat saavat jatkuvasti uusia versioita ohjelmasta testattavaksi. Kun tietty versio on testattu, raportoidaan virheistä ja saadaan taas uusi versio testattavaksi. Code-and-Fix-malli on hyvä johdatus ohjelmistokehitykseen testaajille ja auttaa heitä hyväksymään uusia tavanomaisia metodeita. /1/ V-malli Testauksen näkökulmasta katsottuna, on niin kutsuttu V-malli (kuva 8) yksi käytetyimmistä prosessimalleista. V-malli on edelleen kehitetty vesiputousmallista ottaen huomioon testauksen osuus kaikissa ohjelmistoprojektin vaiheissa. Ohjelmistoprojekti etenee V-mallin mukaisesti asteittain tarkentuen seuraavassa järjestyksessä: vaatimusten määrittely ja analysointi, arkkitehtuurin suunnittelu, yksityiskohtainen eli moduulisuunnittelu ja itse toteutus. V-mallissa itse testaus etenee ohjelmistoprojektia vastaavasti seuraavasti: yksikkötestaus, integraatiotestaus, systeemitestaus ja hyväksymistestaus. V-mallissa käydään läpi niin sanottu validisoinnin ja verifioinnin prosessi. Tällä prosessilla pyritään selvittämään ja takaamaan ohjelman laatu. Validisoinnilla tarkoitetaan asiakkaan alkuperäisten toivomusten ja asiakkaan kanssa sovittujen toimintojen toimivuuden täyttämistä. Tämä arviointi tehdään vaatimusmäärittelyn avulla. Verifiointi sen sijaan selvittää ohjelman toiminnan oikeellisuuden, verraten tuotetta sen spesifikaatioon.

27 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 27 (36) Vaatimukset Systeemitestaus Hyväksymistestaus Määrittely Testauksen suunnittelu Integraatiotestaus Arkkitehtuurin suunnittelu ja tulosten vertailu Testaus alkaa yksikkötasolta, jossa keskitytään yksittäisten ohjelman osien, moduulien, toimintaan. Useimmiten ohjelmoijat testaavat itse oman ohjelmakoodinsa yksikkö- ja integraatiotasolla. Systeemitestauksen suorittaa erillinen testiryhmä, jonka tehtäviin kuuluu kaikki systeemitestauksen tehtävät sekä koko sovelluksen integraatiotestaus. Hyväksymistestauksen suorittavat loppukäyttäjien edustajat. Nykyisin yhä useammin testauksen suorittaa kokonaisuudessaan erillinen testausryhmä, jolloin sekä testaus että raportointi suoritetaan hyvin järjestelmällisesti. Ideaalissa tilanteessa yksiköissä esiintyvät virheet löydettäisiin kehityksen alkuvaiheissa ja rajapintavirheet integroinnin aikana. Tällöin systeemi- ja hyväksymistestauksessa voidaan keskittyä ainoastaan korkean tason toiminnallisuuksiin. Käytännössä näin ei kuitenkaan ole, vaan yksikkötason virheitä paljastuu vielä systeemitestausvaiheessakin. Tämän vuoksi testaus suoritetaankin V-mallin mukaan itera- Yksityiskohtainen suunnittelu Yksikkötestaus Koodaus Kuva 8 Testauksen V-malli Kuten kuvasta 3 nähdään, eri testausvaiheet on liitetty yhteen suunnitteluvaiheiden kanssa. Käytännössä eri testausvaiheiden suunnittelu voidaan aloittaa, kun sitä vastaava vaatimus- ja suunnitteluvaihe on valmis. Testauksessa saatuja tuloksia voidaan verrata sitä vastaavan suunnitteluvaiheen vaatimusdokumentteihin.

28 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 28 (36) tiivisesti, jolloin löydettäessä uusia virheitä palataan takaisin aiempien tasojen testaukseen. Yksikkötestaus on järjestelmän pienempien osien eli moduulien testausta. Moduulilla tarkoitetaan ohjelmasta erotettavissa olevaa loogista kokonaisuutta, kooltaan tyypillisesti alle 1000 ohjelmariviä. Testauksen tuloksia verrataan yksikkösuunnittelun- ja arkkitehtuurisuunnittelun dokumentteihin. Yksikkötestauksen suorittaa tavallisesti sovelluksen kehittäjä. Testimoduulien ollessa vain pieniä ohjelman osia, eikä suuria kokonaisuuksia ei moduulitestaus sovellu ainoaksi testausmenetelmäksi. Integrointitestaus tapahtuu eri ohjelman osien, moduulien rajapinnoissa. Pienempiä osia kootaan yhteen ja niitä testataan kunnes koko systeemi on saatu kasaan. Tärkein kohde on moduulien välisten rajapintojen toimivuus. Integrointitestausmenetelmät voidaan jakaa kahteen pääryhmään: lisäävään (incremental) ja ei-lisäävään (non-incremental). Lisäävässä menetelmässä järjestelmän osat testataan siten, että seuraavaan osaan siirrytään vasta, kun aiemmat osat on testattu yhteen toimiviksi. Ei-lisäävässä menetelmässä kaikki osat kootaan kerralla yhteen testattavaksi järjestelmäksi. Tämä on kuitenkin heikompi tapa, koska virheiden jäljittäminen on huomattavasti hankalampaa. Integrointitestauksessa varmistetaan ohjelman moduulien toimivuus keskenään ja pyritään löytämään ja korjaamaan mahdollisimman paljon yhteen sopimattomia moduuleita. Systeemitestauksessa tarkastellaan kehitettyä järjestelmää kokonaisuudessaan sen käyttötarkoitusta vastaavassa ympäristössä. Ohjelmaa tarkastellaan järjestelmätestausvaiheessa loppukäyttäjän näkökulmasta ja pyritään osoittamaan poikkeamia tuotteen sekä sen vaatimusten ja dokumentaation välillä testauksessa. Testauksen suorittajan tulisi olla mahdollisimman riippumaton järjestelmän kehityksestä. Jär-

29 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 29 (36) jestelmätestauksessa testataan myös järjestelmän ei-toiminnalliset ominaisuudet: kuormitustestit, luotettavuustestit, asennustestit, käytettävyystestit jne. Hyväksymistestauksella pyritään osoittamaan, että järjestelmä pystyy suoriutumaan asiakkaan sille asettamista vaatimuksista. Hyväksymistestaus suoritetaan ajallisesti viimeisenä testausvaiheena osana järjestelmätestausta tai omana vaiheenaan sen jälkeen. Testaus suoritetaan yhdessä asiakkaan kanssa käyttäen tuotteen alustavaa versiota. Ennekuin tuote todetaan valmiiksi, se käy läpi vielä kaksi vaihetta. Ensimmäinen vaihe on alfa-testaus, joka suoritetaan kehittäjäyrityksen tiloissa tulevien käyttäjien toimesta kehittäjien johdolla. Toinen vaihe on beta-testaus, joka taas suoritetaan asiakkaan tiloissa ja siihen osallistuu myös ihmisiä kehittäjäyrityksen ulkopuolelta. /1, 6, 7, 9/

30 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 30 (36) 4. TESTAUKSEN ROOLI ERI OHJELMISTOPROJEKTEISSA Kuten aikaisemmin on todettu, testaus on olennainen osa ohjelmistoprojektia ja sen päätavoitteena on löytää ohjelmiston virheet mahdollisimman aikaisessa vaiheessa ja pitää huolta niiden korjaamisesta. Ohjelmistoprojekti voidaan toteuttaa edellisessä kappaleessa esiteltyjen eri vaihdejakomallien mukaisesti. Tässä kappaleessa vertaillaan edellisessä kappaleessa esitetyn teorian pohjalta, miten testauksen rooli vaihtelee eri ohjelmistoprojekteissa ja kuinka valittu vaihejakomalli vaikuttaa testauksen rooliin. Kappaleessa käsitellään myös testauksen ulkoistamisen vaikutusta itse ohjelmistoprojektiin, tämä tieto perustuu työn laatijan omiin kokemuksiini ohjelmistotestaajana. 4.1 Vaihejakomallin vaikutus testausprosessiin Kappaleessa 3.2 esiteltiin ohjelmistoprosessin vaihejakomallit. Kaikissa vaihejakomalleissa testaus toteutetaan omalla tavallaan ja näin voidaankin todeta vaihejakomallin osaltaan määräävän testauksen roolin ohjelmistoprojektissa. Se missä vaiheessa testaus on mukana ohjelmistoprojektissa ja mikä sen osuus koko ohjelmistoprojektista, vaihtelee merkittävästi eri mallien välillä. Taulukkoon yksi on koottu yhteenveto testauksen merkityksestä kussakin vaihejakomallissa. Pienten projektien kohdalla usein hyödynnetään Big Bang- tai Code-and-fix-mallia. Näissä malleissa ei testaukselle ole varsinaisesti varattu omaa osuutta, vaan se toteutetaan projektin lomassa hyvin pienimuotoisesti. Spiraalimallissa testaus toteutetaan sykleittäin eri ohjelmistoprojektin vaiheissa, kun sen sijaan vesiputousmallissa ohjelmistotestaus tulee projektin viimeisenä vaiheena. Nämä kaksi mallia sopivat kaikenlaisille ja kokoisille projekteille. Vesiputousmallin haittapuolena voidaan mainita se, että puhtaasti lineaarinen prosessi ei yleensä käytännöntasolla onnistu. Koska virheet testataan vasta projektin viimeisessä vaiheessa, mahdolliset korjaukset ohjelmaan voivat aiheuttaa merkittäviä kustannuksia. Mikäli virheiden olemassaoloon olisi puututtu jo aikaisemmassa vaiheessa, olisi vältytty mahdolliselta tur-

31 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 31 (36) halta palaamiselta takaisin, jopa projektin määrittelyvaiheeseen. Spiraalimallin haittapuolena on pidetty sen hallinnan vaikeutta, joka lisäksi saattaa johtaa aikataulun ja kustannusten mahdolliseen karkaamiseen. Testauksen näkökulmasta kehitetyn vaihejakomallin, eli V-mallin, käyttö on tunnetusti paras vaihtoehto tehokkaan ja organisoidun testauksen suorittamiseen ohjelmistoprojektissa. Ohjelmistoprojekteissa, joissa V-mallia käytetään, on otettu alusta alkaen huomioon testaus ja pyritään selkeästi laadukkaaseen lopputulokseen. V- mallissa testaus on mukana kaikissa ohjelmistoprojektin vaiheissa aina suunnittelusta lähtien. Taulukko 1 Testauksen rooli eri vaihejakomalleissa VAIHEJAKOMALLI Big-Bang -malli TESTAUKSEN ROOLI MALLISSA Ei varsinaista testausta. Testaus ainoastaan virheiden raportointia asiakkaille. MALLIN KÄYTTÖ Malli sopii pienten projektien läpivientiin. Vesiputosmalli Spiraalimalli Testaukselle on varattu oma askeleensa ennen ylläpitoa, eli toiseksi viimeinen askel. Testaus helppo suunnitella, koska mallissa käytetään paljon aikaa ohjelmiston suunnitteluun. Testaus mukana mallin kaikissa vaiheissa. Kaikenlaiset projektit. Erityisesti projekteihin, joissa vaatimukset ovat hyvin selvillä. Kaikenlaiset projektit. Erittäin hyvä ja tehokas malli. Code-and-fix -malli V-Malli (Edelleen testausta silmälläpitäen vesiputousmallista kehitetty malli) Ei varsinaista testausta, mutta todellisuudessa testaus suoritetaan jokaisen koodaus-sarjan jälkeen ennen korjaustvaihetta. Testaus kulkee mukana kaikissa projektin kehitysvaiheissa. Malli sopii pienten projektien läpivientiin Soveltuu käytettäväksi sellaisissa projekteissa, joissa sovelluskehitys toteutettu vesiputousmallin tapaan.

32 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 32 (36) Mikä tahansa edellä esitellyistä vaihejakomalleista valitaankin, on ohjelmisto joka tapauksessa testattava jossain ohjelmistoprojektin vaiheessa. Kussakin mallissa testauksella on erilainen rooli, mutta yleisen tuntemuksen mukaan mitä aikaisemmassa vaiheessa testaus on mukana projektissa, sitä tehokkaampi ja laadukkaampi saadaan kehitettävästä ohjelmistosta. Kuitenkaan yhtä ja oikeaa ohjelmistoprojektin elinkaarimallia ei ole olemassa, vaan kulloiseenkin projektiin tulisi valita parhaiten kyseistä projektia tukeva vaihtoehto. Sen sijaan testauksen merkitys itse ohjelmistoprojektissa on kiistaton. Seuraavassa kappaleessa pohditaan edelleen miten testauksen ulkoistaminen vaikuttaa ohjelmistoprojektin läpiviennin tehokkuuteen. 4.2 Testauksen ulkoistamisen vaikutus koko ohjelmistoprojektiin Testauksen ulkoistaminen on nykypäivänä hyvin yleistä. Ainoastaan testaukseen keskittyneitä yrityksiä on markkinoilla suuri määrä. Ulkoistamisella varmistetaan testauksen laatu ja tehokkuus sekä pyritään säästämään kustannuksissa. Ulkoistetun testauksen suhde ohjelmistoprojektiin eroaa osaltaan sisäisesti toteutetusta testauksesta. Kun ohjelmistoprojektin testaus ulkoistetaan, syntyy projektiin useimmiten kolmas osapuoli, asiakkaan ja kehittäjän lisäksi. On tietenkin mahdollista, että yritys kehittää ohjelmistoja omiin tarpeisiinsa, jolloin ulkoistettu testaus tuottaa toisen osapuolen ohjelmistoprojektiin. Tämä luonnollisesti muuttaa ohjelmistoprojektin kulkua. Työskentelen itse pääasiassa matkapuhelinohjelmistojen testauspalveluja tuottavassa yrityksessä ja olen päivittäin tekemisissä niin omaan, kuin kolmannen osapuolen tarpeisiin ohjelmistoja kehittävien yritysten kanssa. Ulkoistettu testaus voidaan suorittaa monella tavalla. Testaus voi kulkea ohjelmistoprojektissa koko sen elinkaaren ajan mukana tai vain osa ohjelmiston toiminnoista testataan ulkopuolisella testausyrityksellä. Ulkoistettaessa testaus niin sanotusti kokonaan, ei testaus aiheuta itse ohjelmistoprojektiin suuria muutoksia, koska tes-

33 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 33 (36) tausryhmä on mukana kaikissa testausvaiheissa. Jos testaus taas tuotetaan vain osittain alihankkijalla, se voi vaikuttaa ohjelmistoprojektin kulkuun. Täysin ulkoistetussa testauksessa testaajat siis ovat osa kehitysryhmää. He toteuttavat testaussuunnitelmat ja testitapaukset, tuntevat kehitettävän ohjelmiston tarkat määrittelyt, ovat mukana projektin tapaamisissa, ovat jatkuvasti yhteydessä kehittäjiin ja raportoivat suoraan kehittäjille. Tällöin ohjelmistoprojekti etenee täysin samalla kaavalla kuin, jos testaus olisi toteutettu sisäisesti. Projekteissa, joissa testaus teetetään kokonaisuudessaan ulkopuolisilla, ei ohjelmiston tuottavalla yrityksellä ole yleensä lainkaan varsinaista testaushenkilöstöä. Työn ensimmäisessä teoriaosuudessa puhuttiin testauksen raportoinnista ja dokumentoinnista. Kun testaus ulkoistetaan vain osittain, on testaussuunnitelmat ja testitapaukset usein toteutettu kehittävän yrityksen testaustiimin toimesta ja testausprosessista toteutetaan ainoastaan itse testaus. Tällöin testaajat tietävät testattavasta sovelluksesta ainoastaan sen, mitä testispekseissä kerrotaan, eivätkä ole suoraan yhteydessä kehittäjiin. Tämä vaikuttaa etenkin testauksen raportointiin, koska se toteutetaan käytännössä kahteen kertaan. Ensiksi ulkoisen testausyrityksen testaajat raportoivat kehittäjäyrityksen testausvastaaville, jotka raportoivat sitten itse kehittäjille. Tämä voi aiheuttaa väärinymmärryksiä ja näin pitkittää ohjelmistoprojektin aikataulua virheellisten korjausten takia. Omassa työssäni olen useaan kertaan törmännyt tilanteeseen, jossa jonkin virheen takia on jouduttu raportoimaan useasta virheestä. Loppujen lopuksi on selvinnyt pitkän ajan kuluttua, että kyseessä onkin ollut vain testattavan tuotteen ominaisuus ja näin ollen testit ovat tulleet uudelleen ajoon virheellisten tulosten vuoksi. Tältä työltä olisi siis vältytty, mikäli yhteys kehittäjiin olisi ollut alun perin suora. Kuten aikaisemmin todettiin, testausprosessiin oleellisesti liittyy testauksen aikataulutus. Osittain ulkoistetun testauksen aikataulutus on usein haasteellista. Itse olen joutunut tilanteeseen, jossa testaus joudutaan suorittamaan kiireellä ja mahdollisesti pienemmällä henkilöstöllä, koska tieto testaussessiosta tulee viime hetkillä ja aikataulu on tiukka. Tällöin testauksen laatu voi kärsiä ja aiheuttaa näin ongelmia

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit Ohjelmiston testaus ja laatu Ohjelmistotekniikka elinkaarimallit Vesiputousmalli - 1 Esitutkimus Määrittely mikä on ongelma, onko valmista ratkaisua, kustannukset, reunaehdot millainen järjestelmä täyttää

Lisätiedot

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

Testaussuunnitelma. Koskelo. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testaussuunnitelma Koskelo Helsinki 16.12.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Tom Bertell Johan

Lisätiedot

Ohjelmiston testaus ja laatu. Testaustasot

Ohjelmiston testaus ja laatu. Testaustasot Ohjelmiston testaus ja laatu Testaustasot Testauksen vaihejako Tarpeet / sopimus Järjestelmätestaus Hyväksymiskoe Määrittely testauksen suunnittelu ja tulosten verifiointi Arkkitehtuurisuunnittelu Moduulisuunnittelu

Lisätiedot

Kontrollipolkujen määrä

Kontrollipolkujen määrä Testaus Yleistä Testaus on suunnitelmallista virheiden etsimistä Tuotantoprosessissa ohjelmaan jää aina virheitä, käytettävistä menetelmistä huolimatta Hyvät menetelmät, kuten katselmoinnit pienentävät

Lisätiedot

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

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testausdokumentti Kivireki Helsinki 17.12.2007 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Anu Kontio Ilmari

Lisätiedot

Convergence of messaging

Convergence of messaging Convergence of messaging Testaussuunnitelma The Converge Group: Mikko Hiipakka Anssi Johansson Joni Karppinen Olli Pettay Timo Ranta-Ojala Tea Silander Helsinki 20. joulukuuta 2002 HELSINGIN YLIOPISTO

Lisätiedot

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA Ohjelmointitekniikka lyhyesti Survival Kit. Vesiputousmalli ELINKAARIMALLEISTA. Ohjelmiston elinkaari Ohjelmiston elinkaarella (life cycle) tarkoitetaan aikaa, joka kuluu ohjelmiston kehittämisen aloittamisesta

Lisätiedot

Testaaminen ohjelmiston kehitysprosessin aikana

Testaaminen ohjelmiston kehitysprosessin aikana Testaaminen ohjelmiston kehitysprosessin aikana 04.02.2004 http://cs.joensuu.fi/tsoft/ Sisällys 1. Johdanto 2. Yksikkö- ja integrointitestaus 3. Järjestelmätestaus 4. Hyväksymistestaus http://cs.joensuu.fi/tsoft/

Lisätiedot

Onnistunut SAP-projekti laadunvarmistuksen keinoin

Onnistunut SAP-projekti laadunvarmistuksen keinoin Onnistunut SAP-projekti laadunvarmistuksen keinoin 07.10.2010 Patrick Qvick Sisällys 1. Qentinel 2. Laadukas ohjelmisto täyttää sille asetetut tarpeet 3. SAP -projektin kriittisiä menestystekijöitä 4.

Lisätiedot

Harjoitustyön testaus. Juha Taina

Harjoitustyön testaus. Juha Taina Harjoitustyön testaus Juha Taina 1. Johdanto Ohjelman teko on muutakin kuin koodausta. Oleellinen osa on selvittää, että ohjelma toimii oikein. Tätä sanotaan ohjelman validoinniksi. Eräs keino validoida

Lisätiedot

58160 Ohjelmoinnin harjoitustyö

58160 Ohjelmoinnin harjoitustyö 58160 Ohjelmoinnin harjoitustyö Testaus 30.3.2009 Tuntiop. Sami Nikander sami.nikander@helsinki.fi 58160 Ohjelmoinnin harjoitustyö, Sami Nikander 30.3.2009 1 Testaus Ohjelman systemaattista tutkimista

Lisätiedot

Lohtu-projekti. Testaussuunnitelma

Lohtu-projekti. Testaussuunnitelma Lohtu-projekti Testaussuunnitelma Versiohistoria: 1.0 19.2.2003 1. versio Mari 1.1 20.2.2003 Muutoksia Mari 1.2 25.2.2003 Katselmoinnissa esiin tulleet Mari muutokset 1.3 17.3.2003 2. syklissä tehtävät

Lisätiedot

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

T Tietojenkäsittelyopin ohjelmatyö. Testiraportti, vaihe T1. Tietokonegrafiikka-algoritmien visualisointi. Testiraportti, vaihe T1 T-76.115 Tietojenkäsittelyopin ohjelmatyö Sisältö Tästä dokumentista ilmenee T1-vaiheessa suoritettu testaus, sen tulokset ja poikkeamat testisuunnitelmasta. Päivämäärä 1.12.2002 Projektiryhmä Keimo keimo-dev@list.hut.fi

Lisätiedot

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

Testaussuunnitelma PULSU. Syksy 2008 Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testaussuunnitelma PULSU Syksy 2008 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (9 op) Projektiryhmä Heikki Manninen Noora Joensuu

Lisätiedot

UCOT-Sovellusprojekti. Testausraportti

UCOT-Sovellusprojekti. Testausraportti UCOT-Sovellusprojekti Testausraportti Ilari Liukko Tuomo Pieniluoma Vesa Pikki Panu Suominen Versio: 0.02 Julkinen 11. lokakuuta 2006 Jyväskylän yliopisto Tietotekniikan laitos Jyväskylä Hyväksyjä Päivämäärä

Lisätiedot

Ohjelmiston testaussuunnitelma

Ohjelmiston testaussuunnitelma Ohjelmiston testaussuunnitelma Ryhmän nimi: Tekijä: Toimeksiantaja: Toimeksiantajan edustaja: Muutospäivämäärä: Versio: Katselmoitu (pvm.): 1 1 Johdanto Tämä lukaa antaa yleiskuvan koko testausdokumentista.

Lisätiedot

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä www.niksula.cs.hut.fi/~jjkankaa// Testauksen loppuraportti v. 1.0 Päivitetty 23.4.2001 klo 19:05 Mikko Viljainen 2 (14) Dokumentin versiohistoria Versio Päivämäärä Tekijä / muutoksen tekijä Selite 1.0

Lisätiedot

Testausraportti. Oppimistavoitteiden hallintajärjestelmä harri

Testausraportti. Oppimistavoitteiden hallintajärjestelmä harri Testausraportti Oppimistavoitteiden hallintajärjestelmä harri Helsinki 13.12.2007 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti

Lisätiedot

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

Testaus käsite. Sekalaista testausasiaa. Testauksen käsitteestä. Kattavuusmitat. Jos ajatellaan, että testaus = V&V, voidaan erottaa: Testaus käsite Sekalaista asiaa Sami Kollanus 15.11.2006 Jos ajatellaan, että = V&V, voidaan erottaa: Staattinen Dynaaminen Toisaalta voidaan määritellä Myersin (1979) mukaan: Testaus on ohjelman suoritusta,

Lisätiedot

TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI

TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI Vesa Tenhunen Tarkastusmenettelyt Keino etsiä puutteita ohjelmakoodeista, dokumenteista ym. ohjelmistoprosessissa syntyvästä materiaalista Voidaan käyttää kaikissa

Lisätiedot

Tutkittua tietoa. Tutkittua tietoa 1

Tutkittua tietoa. Tutkittua tietoa 1 Tutkittua tietoa T. Dybå, T. Dingsøyr: Empirical Studies of Agile Software Development : A Systematic Review. Information and Software Technology 50, 2008, 833-859. J.E. Hannay, T. Dybå, E. Arisholm, D.I.K.

Lisätiedot

Kuopio Testausraportti Asiakkaat-osakokonaisuus

Kuopio Testausraportti Asiakkaat-osakokonaisuus Kuopio Testausraportti Asiakkaat-osakokonaisuus Kuopio, testausraportti, 25.3.2002 Versiohistoria: Versio Pvm Laatija Muutokset 0.1 11.2.2002 Matti Peltomäki Ensimmäinen versio 0.9 11.2.2002 Matti Peltomäki

Lisätiedot

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Copyright by Haikala. Ohjelmistotuotannon osa-alueet Copyright by Haikala Ohjelmistotuotannon osa-alueet Ohjelmiston elinkaari 1. Esitutkimus, tarvekartoitus, kokonaissuunnittelu, järjestelmäsuunnittelu (feasibility study, requirement study, preliminary

Lisätiedot

Automaattinen yksikkötestaus

Automaattinen yksikkötestaus Teknillinen Korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö Lineaaristen rajoitteiden tyydyttämistehtävän ratkaisija L models Automaattinen yksikkötestaus Ryhmä Rajoitteiset Versio Päivämäärä Tekijä

Lisätiedot

Oleelliset vaikeudet OT:ssa 1/2

Oleelliset vaikeudet OT:ssa 1/2 Oleelliset vaikeudet OT:ssa 1/2 Monimutkaisuus: Mahdoton ymmärtää kaikki ohjelman tilat Uusien toimintojen lisääminen voi olla vaikeaa Ohjelmista helposti vaikeakäyttöisiä Projektiryhmän sisäiset kommunikointivaikeudet

Lisätiedot

Testaussuunnitelma. Pizzeria - Pitseria HAAGA-HELIA ammattikorkeakoulu Tietojenkäsittelyn koulutusohjelma. WebPizza

Testaussuunnitelma. Pizzeria - Pitseria HAAGA-HELIA ammattikorkeakoulu Tietojenkäsittelyn koulutusohjelma. WebPizza Testaussuunnitelma Pizzeria - Pitseria HAAGA-HELIA ammattikorkeakoulu Tietojenkäsittelyn koulutusohjelma Versio 1.0 Ehdotus Laatija Raine Kauppinen VERSIOHISTORIA Versionotyyppi Versio- Päiväys Tekijä

Lisätiedot

Testauksen tuki nopealle tuotekehitykselle. Antti Jääskeläinen Matti Vuori

Testauksen tuki nopealle tuotekehitykselle. Antti Jääskeläinen Matti Vuori Testauksen tuki nopealle tuotekehitykselle Antti Jääskeläinen Matti Vuori Mitä on nopeus? 11.11.2014 2 Jatkuva nopeus Läpäisyaste, throughput Saadaan valmiiksi tasaiseen, nopeaan tahtiin uusia tuotteita

Lisätiedot

TESTAUSMENETELMIEN KÄYTTÖ SOVELLUKSEN SYSTEEMITESTAUSVAIHEESSA

TESTAUSMENETELMIEN KÄYTTÖ SOVELLUKSEN SYSTEEMITESTAUSVAIHEESSA Tiina Tersa TESTAUSMENETELMIEN KÄYTTÖ SOVELLUKSEN SYSTEEMITESTAUSVAIHEESSA Tietotekniikan pro gradu -tutkielma Ohjelmistotekniiikan linja 20.8.2002 Jyväskylän yliopisto Tietotekniikan laitos Tekijä: Tiina

Lisätiedot

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Ohjelmistojen mallintaminen. Luento 11, 7.12. Ohjelmistojen mallintaminen Luento 11, 7.12. Viime viikolla... Oliosuunnittelun yleiset periaatteet Single responsibility eli luokilla vain yksi vastuu Program to an interface, not to concrete implementation,

Lisätiedot

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

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaiheet 1 ja 2. Antti Jääskeläinen Matti Vuori TIE-21204 Ohjelmistojen testaus 2015 Harjoitustyö Vaiheet 1 ja 2 Antti Jääskeläinen Matti Vuori Työn yleiset järjestelyt 14.9.2015 2 Valmistautuminen Ilmoittaudu kurssille Lue harjoitustyön nettisivut

Lisätiedot

Ohjelmistotuotantoprojekti

Ohjelmistotuotantoprojekti Ohjelmistotuotantoprojekti Ryhmä Muppett TESTAUSDOKUMENTTI Helsinki 5.8.2008 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Ohjelmistotuotantoprojekti, kesä 2008 Projekti: Muutos- ja korjauspyyntöjen

Lisätiedot

Dynaaminen analyysi IV

Dynaaminen analyysi IV Dynaaminen analyysi IV Luento 9 Antti-Pekka Tuovinen 16 April 2013 1 Tavoitteet Kokemusperäinen testitapausten suunnittelu Yhteenvetoa suunnittelutekniikoista 16 April 2013 2 1 Testitapausten kokemusperäinen

Lisätiedot

WCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma

WCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma TKK/DISKO/Tik-76.115 WCLIQUE Projektiryhmä Clique http://www.hut.fi/jekahkon/wclique/testplan.html WCLIQUE Ohjelmistoprojekti Projektiryhmä Clique: Janne Dufva, 75008T, email: janne.dufva@nokia.com, 75014C,

Lisätiedot

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

Tik-76.115 Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu. LiKe Liiketoiminnan kehityksen tukiprojekti Tik-76.115 Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu TESTIRAPORTTI LiKe Liiketoiminnan kehityksen tukiprojekti Versio: 1.1 Tila: hyväksytty Päivämäärä: 13.2.2001 Tekijä:

Lisätiedot

Dynaaminen analyysi IV Luento 6 Antti-Pekka Tuovinen

Dynaaminen analyysi IV Luento 6 Antti-Pekka Tuovinen Dynaaminen analyysi IV Luento 6 Antti-Pekka Tuovinen 23 April 2018 1 Tavoitteet Kokemusperäinen testitapausten suunnittelu Yhteenvetoa suunnittelutekniikoista 23 April 2018 2 Testitapausten kokemusperäinen

Lisätiedot

@Tampereen Testauspäivät (2012-06)

@Tampereen Testauspäivät (2012-06) @Tampereen Testauspäivät (2012-06) Testausodotukset räätälöityjen järjestelmien projekteissa Maaret Pyhäjärvi, testausasiantuntija Twitter: maaretp Testausvastaava @ Granlund Oy Yrittäjä

Lisätiedot

Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen

Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen 23 April 2018 1 Tavoitteet Yleiskuva seuraavista aiheista Testauksen organisointi Testaussuunnittelma Testauksen kustannukset Testausstrategia

Lisätiedot

T Testiraportti - järjestelmätestaus

T Testiraportti - järjestelmätestaus T-76.115 Testiraportti - järjestelmätestaus 18. huhtikuuta 2002 Confuse 1 Tila Versio: 1.0 Tila: Päivitetty Jakelu: Julkinen Luotu: 18.04.2002 Jani Myyry Muutettu viimeksi: 18.04.2002 Jani Myyry Versiohistoria

Lisätiedot

Ohjelmistojen suunnittelu

Ohjelmistojen suunnittelu Ohjelmistojen suunnittelu 581259 Ohjelmistotuotanto 154 Ohjelmistojen suunnittelu Software design is a creative activity in which you identify software components and their relationships, based on a customer

Lisätiedot

Ohjelmistoprojektien hallinta Vaihejakomallit

Ohjelmistoprojektien hallinta Vaihejakomallit Ohjelmistoprojektien hallinta Vaihejakomallit Vaihejakomallit TAVOITE: YMMÄRTÄÄ eri vaihejakomallien etujajahaittoja 2 Erilaisia malleja Tee ja korjaa (Code-and-Fix) Vesiputousmalli (Waterfall) Vesiputousmalli

Lisätiedot

Laadunvarmistustekniikat

Laadunvarmistustekniikat Laadunvarmistustekniikat Ohjelmistojen laadunvarmistustekniikoita: testaus (testing) ohjelman suorittamista tarkoituksena löytää virheitä tarkastukset (inspections, reviews) asiantuntijoiden suorittamia

Lisätiedot

Ohjelmistotuotanto s

Ohjelmistotuotanto s Laadunvarmistustekniikoita Ohjelmistotuotanto 1 testaus (testing) ohjelman suorittamista tarkoituksena löytää virheitä tarkastukset (inspections, reviews) asiantuntijoiden suorittamia dokumentin (voi olla

Lisätiedot

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3 AgilElephant SEPA Diary Petri Kalsi 55347A Heikki Salminen 51137K Tekijä: Petri Kalsi Omistaja: ElectricSeven Aihe: PK&HS Sivu 1 / 7 Dokumenttihistoria Revisiohistoria Revision päiväys: 29.11.2004 Seuraavan

Lisätiedot

Määrittelydokumentti NJC2. Helsinki 11.2.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Määrittelydokumentti NJC2. Helsinki 11.2.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Määrittelydokumentti NJC2 Helsinki 11.2.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti ( ov) Projektiryhmä Eero Anttila Olli

Lisätiedot

Ohjelmistotuotteen hallinnasta

Ohjelmistotuotteen hallinnasta Ohjelmistotuotteen hallinnasta Luennon tavoitteista Luennon sisällöstä Motivointia Lähteinä: Haikala ja Märijärvi, Ohjelmistotuotanto Royce, Software Project Management, A Unified Framework 1 Tavoitteista

Lisätiedot

Project-TOP QUALITY GATE

Project-TOP QUALITY GATE Project-TOP QUALITY GATE FOR SUCCESSFUL COMPANIES TYÖKALU ERP- JÄRJESTELMIEN TESTAUKSEEN PROJECT-TOP QUALITY GATE Quality Gate on työkalu ERP-järjestelmien testaukseen Huonosti testattu ERP- järjestelmä

Lisätiedot

Toteutusvaihe T3 Digi-tv: Edistymisraportti

Toteutusvaihe T3 Digi-tv: Edistymisraportti Toteutusvaihe T3 Digi-tv: Edistymisraportti Sisällysluettelo 1. Projektin tila...3 Dtv: Work done per Person (current phase)...3 Dtv: Work done per Worktype (current phase)...3 2. Suoritetut tehtävät...4

Lisätiedot

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen (etu.suku@lut.fi) Kevät 2016

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen (etu.suku@lut.fi) Kevät 2016 CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET Jussi Kasurinen (etu.suku@lut.fi) Kevät 2016 VIIME KERRALLA MENETELMIÄ Musta laatikko Valkea laatikko Harmaa laatikko Regressio Automaatio Rasitus (kuormitus)

Lisätiedot

Kuopio Testausraportti Kalenterimoduulin integraatio

Kuopio Testausraportti Kalenterimoduulin integraatio Kuopio Testausraportti Kalenterimoduulin integraatio Kuopio, testausraportti, 22.4.2002 Versiohistoria: Versio Pvm Laatija Muutokset 0.1 22.4.2002 Matti Peltomäki Ensimmäinen versio 0.9 22.4.2002 Matti

Lisätiedot

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

Testaussuunnitelma. Ohjelmistotuotantoprojekti Nero. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testaussuunnitelma Ohjelmistotuotantoprojekti Nero Helsinki 5.11.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti ( ov) Projektiryhmä

Lisätiedot

Mihin kaikkeen voit törmätä testauspäällikön saappaissa?

Mihin kaikkeen voit törmätä testauspäällikön saappaissa? Mihin kaikkeen voit törmätä testauspäällikön saappaissa? Arto Stenberg Copyright Kuntien Tiera Oy Kuntien Tiera Copyright Kuntien Tiera Oy Tieran toiminta perustuu osaamisverkoston rakentamiseen, mikä

Lisätiedot

Määrittely- ja suunnittelumenetelmät

Määrittely- ja suunnittelumenetelmät Menetelmädokumentti Määrittely- ja suunnittelumenetelmät Versio Päiväys Tekijä Kuvaus 0.01 5.12.01 Pekka Koskinen Alustava sisällysluettelo 0.1 7.12.01 Pekka Koskinen Ensimmäinen luonnos 1.0 11.12.01 Pekka

Lisätiedot

Testaussuunnitelma. PUSU-ryhmä. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testaussuunnitelma. PUSU-ryhmä. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testaussuunnitelma PUSU-ryhmä Helsinki 13.12.2007 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (9 op) Projektiryhmä Jussi Hynninen

Lisätiedot

Simulaattoriavusteinen ohjelmistotestaus työkoneympäristössä. Simo Tauriainen

Simulaattoriavusteinen ohjelmistotestaus työkoneympäristössä. Simo Tauriainen Simulaattoriavusteinen ohjelmistotestaus työkoneympäristössä Simo Tauriainen www.ponsse.com 25.8.2011 Ponsse-konserni Ponsse Oyj on tavaralajimenetelmän metsäkoneiden myyntiin, tuotantoon, huoltoon ja

Lisätiedot

Mihin kaikkeen voit törmätä testauspäällikön saappaissa?

Mihin kaikkeen voit törmätä testauspäällikön saappaissa? Mihin kaikkeen voit törmätä testauspäällikön saappaissa? Arto Stenberg Copyright Kuntien Tiera Oy Kuntien Tiera Copyright Kuntien Tiera Oy Tiera on vuonna 2010 perustettu yli 200:n kuntatoimijan omistama

Lisätiedot

CoMa - Testausdokumentti

CoMa - Testausdokumentti CoMa - Testausdokumentti Mindmap - Kari Velling Helsinki 16.12.2005 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä

Lisätiedot

Test-Driven Development

Test-Driven Development Test-Driven Development Ohjelmistotuotanto syksy 2006 Jyväskylän yliopisto Test-Driven Development Testilähtöinen ohjelmistojen kehitystapa. Tehdään ensin testi, sitten vasta koodi. Tarkoituksena ei ole

Lisätiedot

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen (etu.suku@lut.fi) Kevät 2015

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen (etu.suku@lut.fi) Kevät 2015 CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET Jussi Kasurinen (etu.suku@lut.fi) Kevät 2015 EDELLISELLÄ KERRALLA TAPAHTUNUTTA Täydellinen testaus on mahdotonta. Testataan, koska virheiden löytyminen ajoissa

Lisätiedot

2. Ohjelmistotuotantoprosessi

2. Ohjelmistotuotantoprosessi 2. Ohjelmistotuotantoprosessi Peruskäsitteet: prosessimalli: mahdollisimman yleisesti sovellettavissa oleva ohjeisto ohjelmistojen tuottamiseen ohjelmistotuotantoprosessi: yrityksessä käytössä oleva tapa

Lisätiedot

0.47 27.11.2005 Santeri Saarinen Korjattu testaustasoja ja tehty tarkennuksia I1-testaukseen

0.47 27.11.2005 Santeri Saarinen Korjattu testaustasoja ja tehty tarkennuksia I1-testaukseen Muutoshistoria Versio Pvm Tekijä Kuvaus 0.1 24.10.2005 Elina Kontro Laatuasiat siirretty omaan dokumenttiin jatkotyöstetty 0.2 27.10.2005 Santeri Saarinen Bugien elinkaari yms. asioita jatkettu 0.3 28.10.2005

Lisätiedot

Luku 8 Rakennusvaihe. Detailed Design. Programming. Moduulisuunnittelu. Ohjelmointi

Luku 8 Rakennusvaihe. Detailed Design. Programming. Moduulisuunnittelu. Ohjelmointi Luku 8 Rakennusvaihe Moduulisuunnittelu Detailed Design Programming Ohjelmointi Teknisen Complete suunnittelun Technical viimeistely Design Suunnittelukatselmuksen Design Perform suorittaminen Review Yhteisen

Lisätiedot

Testaussuunnitelma Labra

Testaussuunnitelma Labra Testaussuunnitelma Labra Helsinki 25.8.2008 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 1 Kurssi 581260 Ohjelmistotuotantoprojekti (9+1op) Projektiryhmä Anssi Kapanen,

Lisätiedot

Vakuutusyhtiöiden testausinfo

Vakuutusyhtiöiden testausinfo Vakuutusyhtiöiden testausinfo ATJ:n ulkoisten liittymien testaaminen Jonna Hannukainen ja Markku Noukka 12. ja 17.5.2006 (Päivitetty 18.5.2006) ATJ:n integraatiotestaus vakuutusyhtiöiden kanssa Testauksen

Lisätiedot

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

Testaussuunnitelma. Asdf. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testaussuunnitelma Asdf Helsinki 22.2.2008 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Kuisma Sami Louhio

Lisätiedot

Projektisuunnitelma Nero-ryhmä

Projektisuunnitelma Nero-ryhmä Projektisuunnitelma Nero-ryhmä Kuusela Johannes Muukkonen Jyrki Sjöblom Teemu Sundberg Ville Suominen Osma Tuohenmaa Timi Ohjelmistotuotantoprojekti Helsinki 9.9.2004 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen

Lisätiedot

dokumentin aihe Dokumentti: Testausraportti_I1.doc Päiväys: Projekti : AgileElephant

dokumentin aihe Dokumentti: Testausraportti_I1.doc Päiväys: Projekti : AgileElephant AgilElephant Testausraportti I1 Tekijä: Petri Kalsi Omistaja: ElectricSeven Aihe: Testausraportti Sivu 1 / 5 Dokumentti Historia Muutoshistoria Revision Numero Revision Päiväys Yhteenveto muutoksista Revision

Lisätiedot

tsoft Tarkastusmenettelyt ja katselmukset Johdanto Vesa Tenhunen 4.2.2004

tsoft Tarkastusmenettelyt ja katselmukset Johdanto Vesa Tenhunen 4.2.2004 Tarkastusmenettelyt ja katselmukset tsoft Vesa Tenhunen 4.2.2004 http://cs.joensuu.fi/tsoft/ Johdanto Yksi tärkeimmistä tekijöistä laadukkaiden ohjelmistojen tuottamisessa on puutteiden aikainen havaitseminen

Lisätiedot

Katselmoinnit. review) Katselmoinnit (review( Mitä ovat katselmoinnit? Katselmoinnin määritelmä (IEEE 1988)

Katselmoinnit. review) Katselmoinnit (review( Mitä ovat katselmoinnit? Katselmoinnin määritelmä (IEEE 1988) Katselmoinnit Johdatus ohjelmistotekniikkaan Sami Kollanus 19.10.2004 Katselmoinnin määritelmä (IEEE 1988) An evaluation of software element(s) or projects status to ascertain discrepancies from planned

Lisätiedot

Projektisuunnitelma Viulu

Projektisuunnitelma Viulu Projektisuunnitelma Viulu Kuusela Johannes Sjöblom Teemu Suominen Osma Ohjelmistotuotantoprojekti Helsinki 23.9.2004 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Versiohistoria Päivämäärä Versio

Lisätiedot

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } } Yksikkötestauksella tarkoitetaan lähdekoodiin kuuluvien yksittäisten osien testaamista. Termi yksikkö viittaa ohjelman pienimpiin mahdollisiin testattaviin toiminnallisuuksiin, kuten olion tarjoamiin metodeihin.

Lisätiedot

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Sisäänrakennettu tietosuoja ja ohjelmistokehitys Sisäänrakennettu tietosuoja ja ohjelmistokehitys Petri Strandén 14. kesäkuuta, 2018 Petri Strandén Manager Cyber Security Services Application Technologies Petri.stranden@kpmg.fi Petri vastaa KPMG:n Technology

Lisätiedot

Good Minton Sulkapalloliiton Kilpailujärjestelmä SEPA: Heuristinen arviointi

Good Minton Sulkapalloliiton Kilpailujärjestelmä SEPA: Heuristinen arviointi Good Minton Sulkapalloliiton Kilpailujärjestelmä SEPA: Heuristinen arviointi Versiohistoria: Versio: Pvm: Laatijat: Muutokset: 0.1 2006-11-25 Janne Mäkelä Alustava 1.0 2006-12-10 Janne Mäkelä Valmis 1.

Lisätiedot

Ohjelmiston toteutussuunnitelma

Ohjelmiston toteutussuunnitelma Ohjelmiston toteutussuunnitelma Ryhmän nimi: Tekijä: Toimeksiantaja: Toimeksiantajan edustaja: Muutospäivämäärä: Versio: Katselmoitu (pvm.): 1 1 Johdanto Tämä luku antaa yleiskuvan koko suunnitteludokumentista,

Lisätiedot

Laadunvarmistuksen suunnitelma. Ryhmä ExtraTerrestriaLs Aureolis Oy

Laadunvarmistuksen suunnitelma. Ryhmä ExtraTerrestriaLs Aureolis Oy Laadunvarmistuksen suunnitelma Ryhmä ExtraTerrestriaLs Aureolis Oy Versio Päiväys Tekijä Kuvaus 1.0 8.11.2004 Risto Kunnas Ensimmäinen versio 1.1 8.11.2004 Risto Kunnas Korjauksia 1.2 9.11.2004 Mika Suvanto

Lisätiedot

SEPA-päiväkirja: Käytettävyystestaus & Heuristinen testaus

SEPA-päiväkirja: Käytettävyystestaus & Heuristinen testaus SEPA-päiväkirja: Käytettävyystestaus & Heuristinen testaus Lehmus, Auvinen, Pihamaa Johdanto Käyttäjätestauksella tarkoitetaan tuotteen tai sen prototyypin testauttamista todellisilla käyttäjillä. Kehittäjät

Lisätiedot

Johdantoluento. Ohjelmien ylläpito

Johdantoluento. Ohjelmien ylläpito Johdantoluento Ylläpito-termin termin määrittely Ylläpito ohjelmistotuotannon vaiheena Evoluutio-termin määrittely Muita kurssin aiheeseen liittyviä termejä TTY Ohjelmistotekniikka 1 Ohjelmien ylläpito

Lisätiedot

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

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus Yhteenveto Ohjelmistotuotanto vs. muut insinööritieteet Monimutkaisuus Näkymättömyys (Usein näennäinen) luotettavuus ja edullisuus Muunnettavuus Epäjatkuvuus virhetilanteissa Skaalautumattomuus Copyright

Lisätiedot

Prosessimalli. 2. Ohjelmistotuotantoprosessi. Prosessimallin vaihejako. Prosessimallien perustehtävät. Ohjelmiston suunnittelu. Vaatimusmäärittely

Prosessimalli. 2. Ohjelmistotuotantoprosessi. Prosessimallin vaihejako. Prosessimallien perustehtävät. Ohjelmiston suunnittelu. Vaatimusmäärittely 2. Ohjelmistotuotantoprosessi Peruskäsitteet: prosessimalli: mahdollisimman yleisesti sovellettavissa oleva ohjeisto ohjelmistojen tuottamiseen ohjelmistotuotantoprosessi: yrityksessä käytössä oleva tapa

Lisätiedot

Ohjelmistotekniikka - Luento 2

Ohjelmistotekniikka - Luento 2 Ohjelmistotekniikka - Luento 2 Luku 2: Prosessimallit - miten spiraalimalliin päädyttiin - spiraalimallista (R)UP malliin - oman ammattitaidon kehittäminen; PSP ja TSP mallit 1 Luento 2: Prosessimallit

Lisätiedot

L models. Testisuunnitelma. Ryhmä Rajoitteiset

L models. Testisuunnitelma. Ryhmä Rajoitteiset Teknillinen korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö Lineaaristen rajoitteiden tyydyttämistehtävän ratkaisija L models Testisuunnitelma Ryhmä Rajoitteiset Versio Päivämäärä Tekijä Muutokset

Lisätiedot

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen Ohjelmistotekniikka - Luento 2 Jouni Lappalainen Luku 2: Prosessimallit - miten spiraalimalliin päädyttiin - spiraalimallista (R)UP malliin - oman ammattitaidon kehittäminen; PSP ja TSP mallit 1 Luento

Lisätiedot

Yhteenvetoa, pieniä laajennuksia, tulevaisuuden haasteita

Yhteenvetoa, pieniä laajennuksia, tulevaisuuden haasteita Yhteenvetoa, pieniä laajennuksia, tulevaisuuden haasteita 581259 Ohjelmistotuotanto 378 Lemström, 2006-2011 581259 Ohjelmistotuotanto Kiitos Tuomolle kuvasta 379 Ohjelmistotuotannon perustehtävät projektinhallinta:

Lisätiedot

Harjoitus 7: NCSS - Tilastollinen analyysi

Harjoitus 7: NCSS - Tilastollinen analyysi Harjoitus 7: NCSS - Tilastollinen analyysi Mat-2.2107 Sovelletun matematiikan tietokonetyöt Syksy 2006 Mat-2.2107 Sovelletun matematiikan tietokonetyöt 1 Harjoituksen aiheita Tilastollinen testaus Testaukseen

Lisätiedot

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

Testausraportti. Orava. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testausraportti Orava Helsinki 5.5.2005 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Juhani Bergström Peter

Lisätiedot

Ohjelmistoprosessit ja ohjelmistojen laatu Kevät Ohjelmistoprosessit ja ohjelmistojen laatu. Projektinhallinnan laadunvarmistus

Ohjelmistoprosessit ja ohjelmistojen laatu Kevät Ohjelmistoprosessit ja ohjelmistojen laatu. Projektinhallinnan laadunvarmistus LAADUNVARMISTUS 135 Projektinhallinnan laadunvarmistus Projektinhallinnan laadunvarmistus tukee ohjelmistoprojektien ohjaus- ja ylläpitotehtäviä. Projektinhallinnan laadunvarmistustehtäviin kuuluvat seuraavat:

Lisätiedot

Tietotekniikan valintakoe

Tietotekniikan valintakoe Jyväskylän yliopisto Tietotekniikan laitos Tietotekniikan valintakoe 2..22 Vastaa kahteen seuraavista kolmesta tehtävästä. Kukin tehtävä arvostellaan kokonaislukuasteikolla - 25. Jos vastaat useampaan

Lisätiedot

Projektisuunnitelma. (välipalautukseen muokattu versio) Vesiprosessin sekvenssiohjelmointi ja simulointiavusteinen testaus

Projektisuunnitelma. (välipalautukseen muokattu versio) Vesiprosessin sekvenssiohjelmointi ja simulointiavusteinen testaus Projektisuunnitelma (välipalautukseen muokattu versio) Vesiprosessin sekvenssiohjelmointi ja simulointiavusteinen testaus Ville Toiviainen Tomi Tuovinen Lauri af Heurlin Tavoite Projektin tarkoituksena

Lisätiedot

Test-Driven Development

Test-Driven Development Test-Driven Development Syksy 2006 Jyväskylän yliopisto Test-Driven Development Testilähtöinen ohjelmistojen kehitystapa. Tehdään ensin testi, sitten vasta koodi. Tarkoituksena ei ole keksiä kaikkia mahdollisia

Lisätiedot

Sopimus Asiakas- ja potilastietojärjestelmästä. Liite N: Kielivaatimukset

Sopimus Asiakas- ja potilastietojärjestelmästä. Liite N: Kielivaatimukset Sopimus Asiakas- ja potilastietojärjestelmästä Liite N: Kielivaatimukset VERSIOHISTORIA Päivä Versio Kuvaus Tekijä 12.3.15 3.0 Tarjouspyynnön liitteeksi 2 (6) SISÄLLYSLUETTELO 1 JOHDANTO... 4 2 JÄRJESTELMÄN

Lisätiedot

Tietojärjestelmän osat

Tietojärjestelmän osat Analyysi Yleistä analyysistä Mitä ohjelmiston on tehtävä? Analyysin ja suunnittelun raja on usein hämärä Ei-tekninen näkökulma asiakkaalle näkyvien pääkomponenttien tasolla Tietojärjestelmän osat Laitteisto

Lisätiedot

Projektisuunnitelma. KotKot. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Projektisuunnitelma. KotKot. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Projektisuunnitelma KotKot Helsinki 22.9.2008 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (9 + 1 op) Projektiryhmä Tuomas Puikkonen

Lisätiedot

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta T-76.115 Tietojenkäsittelyopin ohjelmatyö Sisältö Tämä on dokumentti esittelee tietokonegrafiikkaalgoritmien visualisointijärjestelmän kehitysprojektissa käytettävän vaatimustenhallintamenetelmän. Päivämäärä

Lisätiedot

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0 TESTIRAPORTTI - VYM JA KANTA Versio 1.0 i Sisällysluettelo 1. YLEISTÄ 2 1.1. Dokumentin tarkoitus ja yleisiä toimintaohjeita 2 1.2. Viittaukset muihin dokumentteihin 2 2. SUORITETTAVA TESTI 3 2.1. Testauksen

Lisätiedot

Testaus ja säästöt: Ajatuksia testauksen selviämisestä lama-aikana

Testaus ja säästöt: Ajatuksia testauksen selviämisestä lama-aikana Testaus ja säästöt: Ajatuksia testauksen selviämisestä lama-aikana Muutamia ajatuksia siitä, miten testaus pärjää lama-ajan säästötalkoissa. Laman patologioita ja mahdollisuuksia. Säästämisen strategioita.

Lisätiedot

Ohjelmistotestaus -09

Ohjelmistotestaus -09 Ohjelmistotestaus Testaustyökalut- ja automaatio Testaustyökalut ja -automaatio Testaustyökaluilla tuetaan testaustyötä sen eri vaiheissa Oikea työkalu oikeaan tarkoitukseen Testausautomaatio perustuu

Lisätiedot

Tietojärjestelmän kehittäminen syksy 2003

Tietojärjestelmän kehittäminen syksy 2003 Tietojärjestelmän kehittäminen syksy 2003 Ryhmä C2 Väliraportti 2-24.10. Päivi Laiterla Tomas Windahl Toni Nikkanen Antti Lehto 1 Sisällysluettelo Rich Picture...4 Käsitemalli...5 P-tason

Lisätiedot

Ohjelmiston testaus ja laatu. Testausmenetelmiä

Ohjelmiston testaus ja laatu. Testausmenetelmiä Ohjelmiston testaus ja laatu Testausmenetelmiä Testausmenetelmiä - 1 Testauksen menetelmien päälähestymistapoina ovat black-box testi testaaja ei voi tutkia lähdekoodia testaus perustuu sovellukselle suunnitteluvaiheessa

Lisätiedot

Ristiinopiskelun kehittäminen -hanke

Ristiinopiskelun kehittäminen -hanke Joustavia opiskelumahdollisuuksia tuetusti Exam-kevätpäivät (31.5.2018) Joustavia opiskelumahdollisuuksia tuetusti Hanke on opetus- ja kulttuuriministeriön rahoittama korkeakoulujen kehittämishanke. Tukea

Lisätiedot

Suunnitteluvaihe prosessissa

Suunnitteluvaihe prosessissa Suunnittelu Suunnitteluvaihe prosessissa Silta analyysin ja toteutuksen välillä (raja usein hämärä kumpaankin suuntaan) Asteittain tarkentuva Analyysi -Korkea abstraktiotaso -Sovellusläheiset käsitteet

Lisätiedot

Käyttötapausanalyysi ja testaus tsoft

Käyttötapausanalyysi ja testaus tsoft Käyttötapausanalyysi ja testaus tsoft 15.09.2004 http://cs.joensuu.fi/tsoft/ Johdanto Use Case analyysi (käyttötapausanalyysi) on yleisesti käytetty järjestelmälle asetettujen toiminnallisten vaatimusten

Lisätiedot