Ohjelmiston testaus ja laatu Ohjelmistotekniikka elinkaarimallit
Vesiputousmalli - 1 Esitutkimus Määrittely mikä on ongelma, onko valmista ratkaisua, kustannukset, reunaehdot millainen järjestelmä täyttää ongelman vaatimukset Suunnittelu Toteutus miten järjestelmä toteutetaan ja ositetaan osien ohjelmointi Integrointi ja testaus Käyttöönotto ja ylläpito
Vesiputousmalli - 2 Kaikkiin vaiheisiin liittyy tarkastuksia, katselmointeja ja testausta laadunvarmistus Tarkastuksilla ja testaamisella pyritään virheet kitkemään mahdollisimman aikaisessa vaiheessa kustannukset virheen korjaamiselle kertaantuvat mitä pitemmälle projektissa on edetty Katselmoinnit järjestetään yleensä tietyn vaiheen lopuksi Projektin tilanteen läpikäynti ja todennetaan, että kaikki tietyn vaiheen tavoitteet on saavutettu ja dokumentit ovat kunnossa Esitutkimus tavoitteena on asettaa yleiset vaatimukset järjestelmälle määrittää asiakkaan tarpeet, asiakasvaatimukset, odotukset ei ota kantaa millainen järjestelmän tulee olla antaa vastauksen kysymykseen, miksi järjestelmä tai ohjelmisto tulisi tehdä tai miksi se pitäisi jättää tekemättä mielletään myös osaksi määrittelyä tarpeiden analysointi ja tarkentuminen jatkuu läpi koko määrittelyvaiheen
Vesiputousmalli - 3 Määrittely asiakasvaatimuksista johdetaan ohjelmistovaatimukset ohjelmistovaatimukset määrittelevät toteutettavan järjestelmän tuotetaan dokumentti, jossa kuvataan ohjelmiston toiminnot, toteutuksen ei-toiminnalliset vaatimukset ja rajoitukset toiminnallinen määrittely (IEEE830) Ohjelmiston toiminnoissa määritellään: toteutettavat ominaisuudet käyttöliittymä liitynnät muihin järjestelmiin Ei-toiminnallisia vaatimuksia: vasteajat käytettävyys suoritusteho Rajoituksissa kuvataan mm.: käytössä oleva muistin määrä tietty ohjelmointiympäristö tietty käyttöjärjestelmä
Vesiputousmalli - 4 Suunnittelu suunnitellaan toimintojen toteutus määrittely muutetaan tekniselle kielelle eli järjestelmän toteutuksen kuvaukseksi tekninen määrittely (IEEE1016) jaetaan yleensä kahteen osaan: arkkitehtuurisuunnittelu osien työnjako ja rajapinnat tavoitteena toisistaan riippumattomat moduulit, jolloin yhden moduulin muutokset eivät vaikuta muihin moduuleihin uudelleenkäytettävyyden lisääminen tekninen määrittely moduulisuunnittelu moduulisuunnittelu suunnitellaan jokaisen itsenäisen moduulin sisäinen rakenne yksittäinen suunnittelija voi suunnitella, toteuttaa ja moduulitestata moduulin
Vesiputousmalli - 5 Ohjelmointi kirjoitetaan ohjelma ohjelmoija yleensä yksikkötestaa oman koodinsa ennen varsinaista testausvaihetta Testaus tavoite on yksinkertaisesti löytää ohjelmistosta virheitä suoritetaan yleensä monella tasolla alkaen ohjelmointivaiheen yksikkötestauksella ja päättyen järjestelmätestaukseen V-malli
Vesiputousmalli - 6 Määrittely testauksen suunnittelu ja tulosten verifiointi Arkkitehtuurisuunnittelu Moduulisuunnittelu Moduulitestaus Integrointitestaus Järjestelmätestaus Ohjelmointi
Vesiputousmalli - 7 Moduulitestaus virheitä etsitään yksittäisistä moduuleista testaus suunnitellaan moduulisuunnittelun yhteydessä Integrointitestaus virheitä etsitään moduulien yhteistoiminnasta testaus suunnitellaan arkkitehtuurisuunnittelun yhteydessä Järjestelmätestaus virheitä etsitään koko järjestelmän toiminnoista ja suorituskyvystä testaus suunnitellaan määrittelyvaiheessa
Vesiputousmalli - 8 Käyttöönotto- ja ylläpito koulutetaan käyttäjät otetaan järjestelmä tuotantokäyttöön ratkotaan asiakkaiden ongelmia korjataan virheitä muutetaan ohjelmaa vaatimusten muuttuessa lisätään uusia ominaisuuksia ohjelmaan
Evo-malli - 1 Evo-malli pyritään ensimmäisessä vaiheessa rakentamaan perusjärjestelmä, jota myöhemmissä vaiheissa kehitetään jokainen vaihe on vesiputousmallin mukainen voidaan käyttää: tuotekehitysprojekteissa, joiden tarkoituksena on julkistaa esimerkiksi vuosittain uusi versio tuotteesta projektissa, jossa versioita tehdään n kappaletta ennen lopullista järjestelmää. Ominaisuuksia lisätään kierros kierrokselta ongelmaksi saattaa muodostua julkaistun version virheiden korjaus ja asiakkaiden ongelmien ratkominen versioiden ominaisuudet tulee myös suunnitella järkevästi, ettei uusia ominaisuuksia lisätä liikaa tai liian vähän seuraavaan versioon
Evo-malli - 2 Määrittely Määrittely Määrittely Suunnittelu Suunnittelu Suunnittelu Toteutus Toteutus Toteutus Testaus Testaus Testaus Versio 1 Versio 2 Versio 3
Protoilu - 1 Protoilu tehdään jonkinlainen kokeilumalli ennen kuin varsinaista järjestelmää aletaan kehittämään voidaan selvittää epäselviä asiakasvaatimuksia uudet tekniset ratkaisut voidaan testata prototyypeillä ennen kuin päätetään ratkaisun käyttöönotosta käyttöliittymien suunnittelu on järkevää tehdä protoilemalla suorituskyky voidaan varmistaa etukäteen erityisillä suorituskykyprototyypeillä Kun prototyyppi on kehitetty, niin sen jälkeen on useita vaihtoehtoja jatkolle ajateltu järjestelmä ei tuo asiakkaalle lisäarvoa ja projekti ammutaan alas tai aloitetaan protoilu alusta hieman eri perspektiivistä määritellään järjestelmä, jota aletaan kehittämään alusta alkaen uudestaan jatketaan prototyypin kehittelyä oikeaksi järjestelmäksi
Protoilu - 2 Proto-projekti Määrittely Varsinainen tuoteprojekti Määrittely Suunnittelu Suunnittelu Toteutus Toteutus Testaus Testaus Prototyyppi Järjestelmä
Spiraalimalli Spiraalimallissa yhdistetään elinkaarimalli ja protoilu. Spiraalimallissa huomioidaan myös yhtenä keskeisenä osana mahdolliset riskit. Spiraalimalli soveltuu erityisesti suurten järjestelmien ja ohjelmien suunnitteluun.