johdanto_testaukseen..

Ohjelmistotestaus
Johdanto ohjelmistotestaukseen
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
"Beware of bugs in the above code; I have
only proved it correct, not tried it."
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
1
Sisältö
•
•
•
•
•
•
Mitä testaus on ?
Mitä arvoa testaus tuottaa ?
Testauksen prosessi.
Testauksen kokonaiskuva.
Testauksen käsitteitä.
Näkökulmia testaukseen.
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
Mitä testaus on
(poimittu alan kirjallisuudesta)
• “Testing is the process of demonstrating that defects are
not present in the application that was developed.”
• “Testing is the activity or process which shows or
demonstrates that a program or system performs all
intended functions correctly.”
• “Testing is the activity of establishing the necessary
“confidence” that a program or system does what it is
supposed to do, based on the set of requirements that the
user has specified.”
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
2
Mitä testaus oikeasti on ?
• Meyers: Testaus on prosessi jossa ohjelmaa
suoritetaan tarkoituksena löytää siitä virheitä.
• Kaner: Testaus on tutkimus jolla saadaan laatuun
liittyvää tietoa testauksen kohteesta.
• Hetzel: Testaus on ohjelman laadun mittaamista.
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
Mitä testaus on ?
• Testaus on systemaattista virheiden etsimistä - ei
satunnaista kokeilua
– Tämä ei tarkoita että testaus on aina rutiininomainen prosessi
• Testauksen tarkoitus on osoittaa että ohjelmassa on virhe
– Testaus ei voi koskaan osoittaa virheettömyyttä
– "Program testing can be used to show the presence of bugs, but
never to show their absence!" - Edsger Dijkstra -
• Mitä enemmän ja mitä vakavampia virheitä löytyy, sitä
onnistuneempi testaus on !
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
3
Testauksen systemaattisuudesta ?
(Hutcheson, Software Testing Fundamentals)
• Kaksi esimerkkiä testauksen systemaattisuuden
vaikutuksesta päätöksentekoon testauksen perusteella.
Esimerkki 1
• Business manager: “So you tested it, is it ready to go to
production?”
• Tester: “Yes, I tested it. It’s ready to go.”
• Business manager: Well, what did you test?”
• Tester: “I tested it.”
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
Testauksen systemaattisuudesta ?
(Hutcheson, Software Testing Fundamentals)
Esimerkki 2
• “We have tested 67% of the test inventory. The test we ran
represent the most important test as determined by our risk
analysis. The bug find rates and the severity composition of the
found bugs were within the expected range.”
• “There are currently no open severity 1 issues and the last
found was three weeks ago. Fixes for the last severity 2 issues
have been regression tested. Overall the system seems to be
stable.”
• “The load testing has been concluded. The system failed at
90% load. System engineers say that they understand the
problem and will fix it in three months. The projected peak load
should only be at 75% by then which is safe.”
• “Our recommendation is to ship the system as planned.”
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
4
Testauksen Perusajatus
1)
4)
2)
5)
3)
Ohjelmistotestaus -09
6)
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
Selitys edelliselle kuvalle
1) Vaatimukset ovat lähtökohta sekä järjestelmän
toteutukselle että testaukselle
2) Vaatimuksista johdetaan spesifikaatioita joiden
perusteella laaditaan testitapaukset
3) System Under Test (SUT) eli testattavan ohjelmiston osan
rajaus tärkeä osa testauksen suunnittelua
4) Testitapauksien onnistunut valinta on ratkaisevaa, tavoite
kattaa järjestelmän käyttäytyminen riski- ja
kustannusperusteisesti
5) Ajurit ovat joskus yksinkertaisia, joskus suurin osa koko
testauksen työmäärästä
6) Bugien havaitseminen perustuu aina vertailuun halutun ja
todellisen käyttäytymisen välillä.
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
5
Sisältö
•
•
•
•
•
•
Mitä testaus on ?
Mitä arvoa testaus tuottaa ?
Testauksen prosessi.
Testauksen kokonaiskuva.
Testauksen käsitteitä.
Näkökulmia testaukseen.
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
Testauksen tuottaman arvon ydin
Testaus tuottaa tuotteen laatuun
liittyvää informaatiota
projektin/yrityksen sidosryhmille:
tuotteen todellinen tila.
• Jotta tuotettu informaatio olisi “hintansa väärttiä”
pitää
– ymmärtää kuka sitä käyttää ja mihin tarkoitukseen
– kyetä tuottamaan se oikein, oikea-aikaisesti ja
kustannustehokkaasti
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
6
Testauksella on monta ‘isäntää’
• Kehittäjä
– Helppo kehitteävyys, nopea palaute työn laadusta.
• Projektipäälikkö
– Riippuvainen testauksen tuottamasta tiedosta tuotteen todellisesta
valmiusasteesta ja tuotteen eri osien stabiliudesta
• Tuotepäälikkö
– Tuotealustojen ja komponenttien laatu, tuotestrategia
• Tekninen tuki ja markkinointi
– Valmistautuminen tuotteen heikkouksiin, niiden huomioiminen
markkinoinnissa ja brandinhallinnassa
• Liikkeenjohto
– Yrityksen brandi, tuotejulkaisut, hinnoitteluvoima, tuotestrategia
• Asiakas
– Laadukas helppokäyttöinen sovellus
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
Tesauksen tuottamaa arvoa
• Löydetään tuotteesta ongelmia
• Kyetään arvioimaan tuotteen virheiden tai
luotettavuuden määrää
• Kyetään estämään vihreiden syntyminen
• Kyetään pitämään tuote kehityksen aikana
laadukkaana ja helposti kehitettävänä
• Kyetään poistamaan tuotteesta liiketoimintatason
riskejä
• Kyetään tuottamaan informaatiota toiminnna
kehittämiseksi.
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
7
Mitä ongelmia testauksella
etsitään?
• Ohjelmisto ei tee jotain mitä tuotespesifikaation
mukaan pitäisi
• Ohjelmisto tekee jotain mitä tuotespesifikaation
mukaan ei pitäisi
• Ohjelmisto tekee jotain mitä tuotespesifikaatio ei
mainitse
• Ohjelmisto ei tee jotain mitä tuotespesifikaatio ei
mainitse vaikka sen pitäisi
• Ohjelmistoa on vaikea käyttää tai ymmärtää, se on
hidas, tai testaajan mielestä siinä on vain jotain
pielessä.
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
Sisältö
•
•
•
•
•
•
Mitä testaus on ?
Mitä arvoa testaus tuottaa ?
Testauksen prosessi.
Testauksen kokonaiskuva.
Testauksen käsitteitä.
Näkökulmia testaukseen.
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
8
Oy Ohjelmistokehitys Ab
Liikkeenjohto
Tuotelinjat
Projektit
VaatimusAnalyysi
määrittely
Markkinointi
SuunKäyttöönIntegrointi Testaus
Ylläpito
nittelu
otto
After
Sales
Myynti
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
Perinteinen virhekustannusmalli
Vesiputousmainen kehitys
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
9
Oy Ohjelmistokehitys Ab
Testauksen kytkeytyminen
Liikkeenjohto
Tuotelinjat
Projektit
Kehitysprosessi
Testausprosessi
Laadun
varmistus
Ohjelmistotestaus -09
Toimitus
Myynti
© Antero Järvi, Tuomas Mäkilä
Markkinointi
After
Sales
It-laitos / TY
Nykyaikainen ohjelmistokehitys?
Rational Unified Process, Lähde: ibm.com
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
10
Virhekustannus
Virheen kustannuksen aikariippuvuus
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
Ketterä ohjelmistokehitys
• Vastine perinteisen ohjelmistokehityksen
kankeuteen
– Agile Manifesto: http://www.agilemanifesto.org/
• Keskeistä testauksen kannatlta
– Kaikkea ei suunnitella ennakkoon, varaudutaan
muutoksiin
– Kehitettävä tuote pidetään (on pidettävä!) koko ajan
laadukkaana, muuten kehitys pysähtyy
– Testauksen kaikki tasot mukana koko ajan
• Extreme Programming, SCRUM
• Vähän työtuotteita, vähän mahdollisuuksia
virheisiin?
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
11
Ketterä kustannusmalli
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
Ei yhtä oikeaa tapaa
• Testausprosessi, tapa organisoida testaus ja sen tavoitteet
ovat erilaiset eri yrityksissä ja hankkeissa.
• Erityisesti suunnitelmaohjatun ja ketterän kehittämisen
testausprosessit ovat lähtökohdiltaan jo erilaiset.
• Kehitys ja testausprosessi ovat vahvassa
vuorovaikutuksessa keskenään.
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
12
Sisältö
•
•
•
•
•
•
Mitä testaus on ?
Mitä arvoa testaus tuottaa ?
Testauksen prosessi.
Testauksen kokonaiskuva.
Testauksen käsitteitä.
Näkökulmia testaukseen.
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
Testauksen kokonaiskuva
• Ohjelmistotestaus käsittää suuren kirjon erilaisia
tekniikoita, menetelmiä, työkaluja, ja toimintatapoja.
• Testaus tyypillisesti nivoutuu lähes kaikkeen muuhun
toimintaan ohjelmistokehityksessä.
• Testauksen perimmäinen tavoite vaihtelee suuresti ja on
hankkeesta, tuottesta ja yrityksestä riippuvainen.
• Yleispätevää reseptiä hyvään ohjelmistotestaukseen ei ole
olemassa.
• Testaukseen pitää suhtautua tilanneriippuvasti
– Menetelmät jotka toimivat hyvin yhdessä tilanteessa ovat
tehottomia toisessa
– “Mitä” (tekniikat, työkalut, strategiat...) riippuen “kuka, missä,
milloin, miksi, entä jos ...”
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
13
Testauksen koulukuntia
(by Bret Pettichord)
• Testauksen vaikeaselkoista kenttää selittää osin se että
testausta on kehitetty ja sovellettu monista eri
näkökulmasta
• B. Pettichord on löytänyt neljä eri koulukuntaa
–
–
–
–
Analyyttinen
Tuotantolaitos
Laatuajattelu
Kontekstiohjattu
• Testauksen ‘opit’ eri koulukunnista ovat usein ristiriitaisia,
mutta osin myös toisiaan komplementoivia
• Koulukuntiin jako auttaa ymmärtämään eri menetelmiä ja
etenkin mihin tavoitteeseen niillä on alunperin pyritty
• Menetelmien sovellettavuuden rajat
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
Analyyttinen koulukunta
• Testaus nähdään tieteellisenä/matemaattisena haasteena
• Ongelmat teknisiä, esimerkiksi
– Miten syöte-tulos avaruutta partitiodaan ekvivalenssiluokkiin
testausmielessä?
– Miten testauksen kattavuutta arvioidaan?
• Avainkysymys: Mitä tekniikoita käytetään?
• Seurauksia
– Vaaditaan tarkat ja yksityiskohtaiset spesifikaatiot
– Testauksessa verifioidaan että ohjelmisto täyttää mitä
spesifikaatioissa määritellään. Mikään muu ei ole testausta.
• Akateeminen näkemys, turvallisuuskriittiset sovellukset
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
14
Tuotantolaitos -koulukunta
• Testaus nähdään yhtenä vaiheena ohjelmistojen
tuotantokoneistossa
• Testauksen tehtävä on mitata tuotteen valmistumista
• Tunnuspiirteitä: testauksen V-malli, vaatimusten
jäljitettävys
• Tärkeät kysymykset
– Miten tuotanto ja testaus sen osana järjestetään ja miten sitä
hallitaan?
– Testauksen kustannustehokkuus.
– Miten työn valmistumista ja tuotteen laatua kyetään mittaamaan?
• Seuraukset
– Testaus erillinen toiminto kehityksestä, best practice ajattelu
– Projektisuunnittelu korostunutta, muutokset jäykkiä
• Teollisuudessa suurissa hankkeissa
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
Laatuajattelun koulukunta
• Ajattelun lähtökohta: ohjelmiston laatu syntyy
kurinalaisella prosessilla
– Testaus testaa prosessin toimivuutta tuotteen laadun kautta
– Testaajat toimivat ‘laatupoliiseina’ ja valvovat että kehittäjät
toimivat prosessin mukaan
– Tarvittaessa laatua parannetaan prosessia kehittämällä
• Avainkysymys: onko prosessi hyvä ja käytetäänkö sitä
kurinalaisesti?
• Seuraukset
– Testauksen fokus prosesseissa, ei tuotteen laadussa.
– Testauksen ja muun kehittämisen yhteispeli vaikeaa
• Suuret yritykset, laatustandardien pakottamaa
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
15
Kontekstiohjautunut koulukunta
• Ohjelmistoja tekevät ihmiset ja tämä luo kontekstin testaukselle
• Testaus tuottaa tietoa projektin käyttöön
• Testauksella löydetään bugeja, ja bugi on mitä tahansa mikä häiritsee
jotain osapuolta (stakeholder)
• Testaus on monipuolista osaamista vaativa ‘älyllinen’ toiminto
• Avainkysymys: Mikä testaus tuottaa juuri nyt eniten lisarvoa
projektissa ?
• Taidot tärkeämpiä kuin ‘best practicet’
• Markkinavetoiset ohjelmistot.
• Ketterä testaus - asiakaslähtöinen variantti tästä, vai oma koulukunta?
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
Mitä työvaiheita testaukseen kuuluu? 1/2
• Testaussuunnitelman laatiminen
– Testausstrategian, -lähestymistapojen ja –ympäristön suunnittelu ja
dokumentointi
– Suunnitelma toimii pohjana testauksen organisoinnille ja johtamiselle
• Testitapausten laadinta
– Testitapaukset laaditaan testaussuunnitelman ja ohjelmiston
määrittelyiden pohjalta
– Pyrkimyksenä testien riittävä kattavuus ja testauksen keskittyminen
oikeisiin asioihin
• Testausympäristöjen luonti
– Tarvittavien laitteiden ja ohjelmistojen asentaminen
– Saattaa viedä paljonkin resursseja, testilabrat
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
16
Mitä työvaiheita testaukseen kuuluu? 2/2
• Testauksen suorittaminen
– Eri testaustekniikoiden soveltaminen
– Sisältää luovan elementin huolimatta
ennakkomäärittelystä
– Testausautomaatio
• Tulosten tarkastelu ja raportointi
– Tulokset tulee saada oikea-aikaisesti, oikeille kehittäjille
– Bugien seuranta vähentää turhaa työtä
– Raportointi- ja seurantatyökalut
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
Testaajan missiot
• Yksi tapa katsoa ohjelmistotestauksen kokonaisuutta on
testaajan ammattiprofiilin sisältö
• Testaajalla voi hankkeessa olla mm. seuraavia missioita:
–
–
–
–
–
Löytää tärkeimmät bugit nopeasti
Yleinen tuotteen laatuarviointi
Tuotteen sertifiointi jonkun laatustandardin suhteen
Varmistaa että testausprosessi täyttää laatustandardin vaatimukset
Auttaa kehittäjiä ohjelmiston suunnittelussa mm. testattavuuden
suhteen
– Auttaa vaatimusmärittelyssä testattavuuden ja paremman
tuotelaadun suhteen
– Kehittää tuotetta ylläpidon kustannusten näkökulmasta
– ...
• Lisäksi testauksen tukitehtäviä kuten testausympäristöjen
rakentamista ja ylläpitoa
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
17
Sisältö
•
•
•
•
•
•
Mitä testaus on ?
Mitä arvoa testaus tuottaa ?
Testauksen prosessi.
Testauksen kokonaiskuva.
Testauksen käsitteitä.
Näkökulmia testaukseen.
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
Laadun käsite
• Laatu on subjektiivinen käsite, joka tulee
määritellä tapauskohtaisesti
– Laadukas ohjelmisto voi tarkoittaa käyttäjälle
toimintavarmuutta, helppokäyttöisyyttä, monipuolista
toiminnallisuutta, ...
– Kehittäjälle laadukas ohjelmisto saattaa merkitä jotain
aivan muuta
• Laadun mittaaminen tulee kuitenkin olla
mahdollisimman objektiivista
• Ns. laatujärjestelmät kuvaavat prosessin, jolla
pyritään vakioimaan laatu määritellylle tasolle
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
18
Ohjelmistojen laatu
• Ohjelmistojen laadulla voi tarkoittaa
–
–
–
–
Sopivuutta käyttötarkoitukseen
Spesifikaatioiden mukaista toimintaa
Erinomaisuuden astetta
Oikea-aikaista toimitusta
• Laatumallit auttavat määrittelemään mittareita laadun toteamiseen
• Kiinteät laatumallit
– McCallin ja Boehmin laatumallit
– ISO 9126 –standardi
• Itsemääritelty laatumalli auttaa ottamaan omat kehitystarpeet tarpeet
huomioon
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
McCallin laatumalli
Use
Factor
Criteria
Usability
Product Operation
Efficiency
Product Revision
Maintainability
Testability
Product Transition
Reusability
Self-descriptiveness
...
Flexibility
...
Reliability
Consistency
Metrics
Correctness
...
Integrity
Portability
Interoperability
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
19
Quality Assurance l. laadunvarmistus:
testausta vai prosessia ?
• QA on testausta ?
– Testaus nähdään kehittämisestä erillisenä toimintona,
ulkoisena laatukontrollina
– Suurin osa QA pestillä olevista työntekijöistä
käytännössä testaavat
• QA on prosessia ?
– CMMI, IEEE näkemys QA:sta
– Laatua aikaansaadaan prosessilla joka pakottaa
kurinalaiseen kehittämiseen ja testaamiseen
– Johtaa usein vesiputousmaiseen korkean tason
elinkaarimalliin
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
Kolmas vaihtoehto: QA osa
kehittämistä
• QA koko kehitystiimin vastuulla
– Laatua ei ole delegoitu yhdelle ryhmälle tai henkilölle
– Kaikki vastuussa jatkuvasta laadun tekemisestä ja
laatuasioiden esiin nostamisesta
• Testaus integroitu kaikilla tasoilla
kehittämistyöhön
• Laatutason määrittää lopulta asiakas, ei
prosessistandardit
• Ketterässä kehittämisessä (agile) yleinen tapa
suhtautua QA:han
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
20
Bugi, mikä se sitten on ?
• Bugien terminologia on vakiintumatonta; tällä
kurssilla käytetään seuraavaa (suositeltavaa)
tulkintaa
• Bugi (bug) syntyy kun ihminen tekee virheen
jossain kehityksen toiminnossa ja virhe (error)
päätyy johonkin välituotteeseen
• Niin kauan kuin virhe pysyy tuotteessa, se voi
aiheuttaa uusia bugeja
• Virhe voi aiheuttaa vian (fault) toiminnassa joka
pysyy huomaamattomana kunnes se aiheuttaa
häiriön (failure), joko testauksessa tai käytössä
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
Sisältö
•
•
•
•
•
•
Mitä testaus on ?
Mitä arvoa testaus tuottaa ?
Testauksen prosessi.
Testauksen kokonaiskuva.
Testauksen käsitteitä.
Näkökulmia testaukseen.
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
21
Työnjako
• Toteuttaja vs. testaaja
– Mitä toteuttajat testaavat itse, mitä ulkopuoliset
testaajat?
– Miten työnjako käytännössä tehdään, miten työt
nivotaan yhteen?
– Kehitysprosessi vs. testausprosessi
• Testaaja vs. asiakas
– Mitä kumpikin testaa?
– Miten testaaja suhtautuu ominaisuuksiin joita tietää
asiakkaan testaavan?
– Miten määritellään sopimuksessa riittävä laatu /
valmiusaste?
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
Verifiointi ja validointi
• Verifioinnilla varmistetaan että jokin välituote,
yleensä ohjelma, on spesifikaationsa mukainen
– “Are we doing the job right?”
– Oleellinen kehittämisen tukena
• Validointi varmistaa että tuote vastaa käyttäjän
vaatimuksia
– “Are we doing the right job?”
– Oleellinen vaatimusmäärittelyn tukena
• Testauksella tehdään kumpaakin, ero termien
välillä on merkittävä
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
22
Testaustyyppejä
staattinen vs. dynaaminen
• Staattinen testaus
– Analysoidaan mitä tahansa välituotetta tarkoituksena
löytää siitä virheitä
– Erilaisia katselmointi ym. tekniikoita
– Aikainen virheiden löytyminen mahdollista
• Dynaaminen testaus
– Suoritetaan ohjelmaa tarkoituksena löytää virheitä
– Löytää virheitä vasta toteutuksesta, siis myöhäisessä
vaiheessa
• Täydentävät toisiaan, löytävät eri virheitä
• Staattinen testaus yleensä liian pienellä painolla
käytössä
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
Testaustyyppejä
white-box vs. black-box
• Black-box testaus
– Testausta tehdään puhtaasti ohjelman halutun
käyttäytymisen perusteella
– Testitapaukset valitaan spesifikaatioiden perusteella,
itse testattavasta järjestelmästä ei tiedetä mitään
• White-box testaus
– Testauksen suunnittelussa käytetään hyväksi
testattavan järjestelmän rakennetta
– Mitä testataan, mitä ei testata, miten arvioidaan
testauksen riittävyyttä
• Molemmat tarpeellisia, löytävät erilaisia virheitä
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
23
Testaustyyppejä
Toiminnallinen vs. ei-toiminnallinen
• Toiminnallinen testaus
– Testataan yksittäisiä toimintoja tai suurempia piirteitä
– Monentasoista: yksikkötestauksesta
hyväksyntätestaukseen
– Usein selkeää todeta toiminnallisuuden virheellisyys
• Ei-toiminnallinen testaus
– Testataan ohjelmiston laadullisia ominaisuuksia, esim.
käytettävyys, luotettavuus, suorituskyky
– Järjestelmätestausta pääosin
– Vaikea testata ja vaikea selkeästi todeta testin tulos
– Usein erittäin tärkeää hankkeessa
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
Vaikuttavuus ja tehokkuus
• Vaikuttavuus
– Tehdään oikeita asioita: testataan soveltuvilla
tekniikoilla, kohdennetaan testaus oikeisiin tuoteen
osiin, tuotetaan tarvittavaa informaatiota
– Riskiperustainen lähtökohta
• Tehokkuus
– Testauksen kustannustehokuus
– Hyvät työkalut, oikea automatisointi, järkevä työn
organisointi
– Hyvä suunnittelu ja toteutus lähtökohtana
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
24
Mistä tiedät onko testaus
vaikuttavaa?
Korkea
Testauksen
vaikuttavuus
Löytyy paljon virheitä
Matala
Löytyy virheitä
Löytyy vähän virheitä
Tuotteen laatu
Korkea
Ei löydy virheitä
Matala
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
Suunnittelu ja tekeminen
• Suunnittelu
–
–
–
–
–
Testauksen tavoitteet liiketoiminnassa
Testausstrategia
Projektin testaussuunnitelma
Yksityiskohtaiset testaussuunnitelmat
Testitapaukset
• Tekeminen
–
–
–
–
–
Testiympäristöt ja -työkalut
Testiaineistot
Testien suoritus
Tulosten raportointi
Automatisointi
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
25
Testaustyyppejä
Uudet ominaisuudet vs. uudelleentestaus
• Uudet ominaisuudet
–
–
–
–
Paino vaikuttavuudessa
Nopea laatupalaute
Virheiden nopea poisto järjestelmästä
Luovaa mielenkiintoista työtä
• Uudelleentestaus
–
–
–
–
–
Paino kustannustehokkuudessa
Automatisointi
Muutoskitkan minimointi
Nopean kehitysrytmin mahdollistaminen
Toteutus rutiinia
Ohjelmistotestaus -09
© Antero Järvi, Tuomas Mäkilä
It-laitos / TY
26