TESTAUS JATESTAUSYMPÄRISTÖT
Johdatus testaukseen
16.8.2012
Johdatus testaukseen
1
Testauksen sijoittuminen ohjelmistontoteutukseen
16.8.2012
Johdatus testaukseen
2
Vaiheet
Projektin vaiheet
1.Toteutus
2.Testaus
Yksikkötestaus/moduulitestaus
Integrointitestaus
Järjestelmätestaus
3.Käyttöönotto + ylläpito
Usein malli on vesiputous
vaiheet suoritetaan järjestyksessä
vaiheen lopussa suoritetaan tarkistus (verifiointi)
16.8.2012
Johdatus testaukseen
3
Ohjelmiston testauksen periaate
Suoritetaan ohjelma tarkoituksena löytää ohjelmansisältämiä bugeja (virheitä tai vikoja)
Ohjelman toimintaa verrataan odotettuun toimintaan
Kirjataan mitkä asiat tapahtuivat odotetulla tavalla ja mitkäpoikkesivat tästä
Validointia (kelpoistamista) ja verifiointia (todentamista)
Täyttääkö ohjelma suunnitellut vaatimukset
Toimiiko ohjelma odotetusti
16.8.2012
Johdatus testaukseen
4
Verification & Validation
Todentaminen (verification)
Vastaako tuote vaatimuksia - are we doing things right
ja kelpoistaminen (validation)
Ollaanko oikeastaan tekemässä sitä mitä pitäisi (käyttötarkoitus!) -are we doing the right thing
Tarkistuksilla ja katselmuksilla lopputuotteessavähemmän virheitä.
16.8.2012
Johdatus testaukseen
5
Tuotteen arviointi
Todentaminen ja kelpoistaminen (V&V) tuotteenarvioinnissa
todentamisessa tuotetta verrataan määrittelyyn (spesifikaatioon)
kelpoistamisessa tarkistetaan sopiiko tuote tarkoitukseensa(subjektiivinen laatu).
Menetelmiä erilaiset testausmenetelmät: esim. käytettävyystestaus
16.8.2012
Johdatus testaukseen
6
Ohjelmiston kustannusten jakautuminen
16.8.2012
Johdatus testaukseen
7
Kustannuksista
Parempi tehdä nöyrästi kunnolla
päivittäessä vaikealukuinen koodi vie miestyötunteja
Virheet
Kun virheet havaitaan, tunnistetaan ja korjataan ajoissa säästytäänmyöhemmiltä ongelmilta (= kustannuksilta)
Laatujärjestelmä toiminnan taustalla
Tapa toimia, käytännöt
Esimerkiksi ohjelmoijan suorittamat yksikkötestit
Yhdysvaltalaisessa 2002 tutkimuksessa todettiin bugienhinnaksi $59.5M/vuosi
Yli kolmannes säästettäisiin paremmalla ohjelmistoteustauksella
16.8.2012
Johdatus testaukseen
8
White-box & Black-box
Testausta voidaan jakaa sen mukaan testataanko ohjelmansisäistä toimintaa (White box) vaiko ulkoista toiminnallisuutta(Black box)
Black box
Testataan mitä sovelluksen on tarkoitus tehdä (toiminnallisuus)
Testaajalla ei ole sidettä ohjelmakoodiin, ei tietoa miten ohjelma onrakennettu – väärien johtopäätösten tekeminen
Useita testitapauksia asiasta johon riittäisi yksi
Epätavallisia tilanteita ei osata testata lainkaan
Yksikkö-, integraatio-, järjestelmä- ja hyväksymistestit
Yksi esimerkki hakkerointi
White box
Yksikkötestit,  osittain integraatiotestit ja järjestelmätestit
16.8.2012
Johdatus testaukseen
9
Testauksen kohde
Yksikkötestaus
OO –sovelluksessa luokkatasolla
Testin tekijänä kehittäjä (white box)
Testaa koodin toiminnallisuutta, yleensä yhden funktion tasolla
Yhdellä funktiolla voi olla useita testejä
Ei kerro toimiiko ohjelman osa vaan ovatko rakennuspalikat kunnossa
Integraatiotestaus
Testataan ohjelmiston osia keskenään, verrataan alkuperäiseen suunnitelmaan
Esimerkiksi käyttöliittymän testaus
Testitapauksia joissa käyttäjän tulee suorittaa tietyt tehtävät, verrataan haluttuuntulokseen
Järjestelmätestaus
Testataan vastaako järjestelmä alkuperäisiä vaatimuksia
Graafisen käyttöliittymän testaamista
Käytettävyystestaus
Suorituskykytestaus
Kuormituksen testaus
Jne.
16.8.2012
Johdatus testaukseen
10
Test Driven Development
TDD on melko uusi ohjelmiston kehitystapa
Perustuu kehittäjän tekemiin automatisoituihin yksikkötesteihin
Testitapaukset tehdään ennen koodia
Koodi kirjoitetaan testitapauksen mukaisesti sellaiseksi että se suorittaa testinhyväksytysti
Ei suunnitteluvaiheessa vaan toteutusvaiheessa
Ohjelmiston toteutus  (koodaus) tapahtuu yksikkötestien kautta
Kaikki luotu koodi tulee testatuksi
Vuoden 2005 tutkimuksessa todettiin testaavien ohjelmoijien olevan loppujen lopuksituottavampia
Ehkäisee tarvetta erikseen debugata ohjelmaa
Osa ohjelmiston toteutusvaiheista sellaisia joihin TDD ei sovi
Käyttöliittymän suunnittelu
Tietokantaliittymä
Suunnitteluvaiheessa hyödynnetään käyttötapoja (Use Case)
On tapa käyttää ohjelmaa (asiakkaan vaatimus)
Tästä tapauksesta laaditaan vaatimukset tietylle ohjelman osalle, moduulille
Käyttötapaa hyödynnetään laatimalla tästä testitapaus
16.8.2012
Johdatus testaukseen
11