tehokas ohjelmistotestaus
DESCRIPTION
Tehokas ohjelmistotestaus. Maaret Pyhäjärvi ja Erkki Pöyhönen Julkaisuversio 1.1 2005-01-06. tekijä mainittava http://creativecommons.org/licenses/by/1.0/fi/. Tiedoksi lukijalle. Tämä materiaali on edelleen työn alla - PowerPoint PPT PresentationTRANSCRIPT
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Tehokas ohjelmistotestaus
Maaret Pyhäjärvi ja Erkki Pöyhönen
Julkaisuversio 1.12005-01-06
tekijä mainittava http://creativecommons.org/licenses/by/1.0/fi/
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Tiedoksi lukijalle
• Tämä materiaali on edelleen työn alla– Varsinainen julkaisu tapahtuu testauskirjan julkaisun
yhteydessä tai jälkeen
• Materiaalin hyödyntäminen on vapaata– Erityisesti haluamme tukea yleishyödyllisen
ohjelmistotestauksen opetuksen jäsentymistä tarjoamalla materiaalimme vapaasti muokattavaksi pohjamateriaaliksi
• Uskomme että kirjallinen materiaali on noin 20 % vastaavasta koulutuksesta puhuttuna– Lisää materiaalia löytyy pään sisältä
• Kysyttävää?– Ota yhteyttä [email protected] ja
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
1 - Tehokas ohjelmistotestaus
Tehokas ohjelmistotestaus
Testitapaukset ja testien suorittaminen
Virheraportointi ja virheasian ajaminen
Testaus ohjelmisto-kehityksen osana
Katselmoinnit testaustoimintana
Testaustekniikat
Testausvälineet ja testauksen automatisointi
Testauksen suunnittelu ja hallinta
Testausprosessin muuttaminen
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Oppimistavoitteet
• Ymmärrät mitä ohjelmistotestaus on, kenelle se kuuluu ja miksi sitä tehdään
• Tiedät miksi kaikkea ei voi testata ja miksi testaus on haastavaa
• Omaat käsityksen ohjelmistolaadun ja testauksen suhteesta ja laadun arvioinnin haasteista
• Ymmärrät että tehokkaan testauksen tulee perustua riskiin
• Käsität miksi tehokkuutta tavoitellessa ensin pitää saavuttaa tulokset ja sitten vasta optimoida tulosten saavuttamiseen käytettävää aikaa
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
1 – Tehokas ohjelmistotestaus
Käsiteltävät asiat
Testaus ja laatu
Riskiperus-teinen testaus
Testauksen monipuolisuu
s
Keskeiset haasteet
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
1 – Tehokas ohjelmistotestaus
Käsiteltävät asiat
Testaus ja laatu
Riskiperus-teinen testaus
Testauksen monipuolisuu
s
Keskeiset haasteet
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Ohjelmistot yhä kriittisempiä
perustoiminnallemme• Ohjelmistoja kaikkialla – sekä itsenäisinä
että osana järjestelmiä• Ohjelmistot ja järjestelmät yhä
monimutkaisempia• Järjestelmät integroituvat
• Fakta: ohjelmistoissa on virheitä
Testaus on keino pureutua virheisiin ja auttaa luomaan
riittävä laatu.
Testaus on keino pureutua virheisiin ja auttaa luomaan
riittävä laatu.
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Ohjelmistojen perusominaisuudet
Lähde: Frederick Brooks. 1987. No Silver Bullets. In Mythical Man-Month
• Ohjelmistojen perusominaisuudet tekevät ohjelmistokehityksestä haastavaa – Monimutkaisuus– Mukautumiskyky – Muuttumiskyky – Näkymättömyys
Perusominaisuudet tekevät virheiden syntymisestä
ohjelmistotuotantoprosessissa tosiasian, jota ei hyvistä pyrkimyksistä
huolimatta kokonaan voida välttää.
Perusominaisuudet tekevät virheiden syntymisestä
ohjelmistotuotantoprosessissa tosiasian, jota ei hyvistä pyrkimyksistä
huolimatta kokonaan voida välttää.
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Joitakin kuuluisia virheitä
• Ariane 5 avaruussukkulan räjähdys– Liian suuren numeron
lukutyypin muuntaminen, 1996
• Pentium prosessori, jakolaskualgoritmi– Virhe taulukon sisällön
kopioinnissa, testaamatta piisiruun, 1994
• Patriot- ohjus– Pyöristysvirhe, 1991
• Therac-25, Röntgenlaite– Säteilyn yliannostuksia
potilaille hoidon aikana, 1985-1987
• Mars-luotain menetettiin– Paunojen (lbs) ja
kilogrammojen sekoittuminen, 1999
• NASA Mariner 1 , Venus- luotain – Piste pilkun tilalla
FORTRAN DO-silmukassa, 1962
– Urbaani legenda mutta ohjelmistovirhe kuitenkin
• Denverin lentokenttä– Tietokoneistettu
matkalaukkujen käsittely epäonnistuu, 1995
• NASA Spirit Rover Marsissa– Muistin jumiutuminen 18
päivän jälkeen, testattiin maassa vain 9 päivää, 2004
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Mitä ohjelmistovirheet maksavat?
• Suuria summia– Ariane 5 (kehitys 7 mrd $
+ kuorma 500 M$)– Intel Pentium
jakolaskuvirhe (400 M$)– Denverin lentokenttä (250-
500M$ + 1 M$ / viiv. päivä)
• Kuolema tai vammautuminen– Therac-25 (3 kuollutta, 3
vakavasti vammautunutta)– Patriot-ohjus (28 kuollutta,
100 loukkaantunutta)
• Hyvin vähän tai ei mitään– Pienet epämukavuudet– Ei näkyvää tai fyysistä
vaikutusta
• Ohjelmisto ei ole “lineaarinen”– Pienellä syötteellä voi olla
hyvin suuri vaikutus– Boehm & Basili. 2001.
Defect Reduction top-10 list:
• 80 % vältettävissä olevasta korjaustyöstä aiheutaa 20 % virheitä
• 80 % virheistä tulee 20 % moduuleista, ja noin puolet moduuleista ovat virheettömiä
• Nykyiset ohjelmistoprojektit käyttävät 40 - 50 % työmäärästä vältettävissä olevaan korjaustyöhön
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
VaatimuksetAnalyysi & suunnittelu
KoodausKehityksen
aikainen testausHyväksymis-
testaus
Parannatuotetta
Tuotanto40-100x
30-70x15-40x
10x3-6x
1x
50%
Virheen kustannus kertautuu
Lähde: Barry Boehm. 1981. Software Engineering Economics
Laatuvipu
Boehm, 2001: Kustannuskerroin 5:1 ja kustannuksia voidaan hallita hyvillä arkkitehtuurikäytännöillä
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Muutamia esimerkkejä virheistä
Lähde: James Whittaker
• Excel Scenarios• Word Tab Stops• Word Find-Replace• Word Footnotes• Powerpoint WordArt• Powerpoint Tables
– Varoitus: kaataa käyttöjärjestelmän, ei vain sovellusta
• Calculator Math library
Virheiden löytäminen ei helppoa – tehokas löytäminen vielä vaikeampaa!
Virheiden löytäminen ei helppoa – tehokas löytäminen vielä vaikeampaa!
Virheetöntä ohjelmistoa ei ole –
kysymys on siitä ovatko virheet
haitaksi käytölle.
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Laatu ja testaus
• Laatu on arvoa jollekin osapuolelle• Virhe on mitä tahansa joka muodostaa uhan
arvolle.• Testauksessa kyseenalaistetaan järjestelmän
laatu arviointitarkoituksessa– ”ei uskota ennen kuin kokeillaan”– Illuusioiden kumoaminen on kaikkien osapuolien etu
• Testaus tekee tietoiset päätökset laadun suhteen mahdollisiksi– Testauksessa kerätään todisteita ja tehdään sen
perusteella päätelmiä: ohjelmiston arviointi kerätyn todistusaineiston perusteella
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Ohjelmiston laatu
Standard Glossary of Software Engineering Terminology [IEEE610.12]:Laatu: (1) Taso, jolla järjestelmä,
komponentti tai prosessi täyttää sille määritellyt vaatimukset. (2) Taso, jolla järjestelmä, komponentti tai prosessi täyttää asiakkaan tai käyttäjän tarpeet tai odotukset.
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Testaus ja laadunvarmistus
Testaus suppeasti
Testaus ”testaus-ammattilaiselle”
Laadunvarmistus
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Ohjelmistotestauksen kenttä
• Ohjelmistotestauksella tarkoitetaan ohjelmistojärjestelmien testausta– Järjestelmässä mukana ohjelmisto– Ohjelmiston/laitteiston suhde vaihteleva
• Ohjelmistotestauksen kannalta järjestelmän muut tarvittavat osat (laitteisto, muut ohjelmistot) ovat osa ympäristöä– Ympäristön testaaminen voi olla keskeinen osa
ohjelmistotestausta
• Ohjelmistotestausta tarvitaan usealla tasolla– Pienet palat ennen suurempia kokonaisuuksia– Kullakin osapuolella omat vastuunsa
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Mitä testaus on?
• Testaus on kohteen teknistä tarkastelua, jossa empiirisesti etsitään laatuun liittyvää tietoa, jolla on arvoa projektin sidosryhmille. – Cem Kaner
• Sisältää:– sen varmistamisen että testauksen kohde toimii kuten
odotettu– erojen löytämisen ja ratkaisemisen odotettujen ja
todellisten tulosten välillä– puolueettoman tiedon tarjoamisen päätöksentekoon
järjestelmän tilasta laadun suhteen– laadun parantamisen tukemisen
• Oleellista onnistuneelle testaukselle kuitenkin yleisesti halu nähdä virheitä
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Kehitys- ja testausprosessit muodostavat
palautesilmukan
KehitysprosessiKehitysprosessi
TestausprosessiTestausprosessi
Testi-tulokset
Kehitys-tuotteet
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Miten testaus tuottaa lisäarvoa
• Löytämällä virheitä, jotka korjataan– Järjestelmän laatu paranee
• Jopa kyetään estämään joitain virheitä syntymästä
• Löytämällä virheitä, joita ei korjata– Vältetään yllätyksiä
• Testataan tuotteen riskit pois yksi kerrallaan
• Tuotetaan projektille ajoissa hyödyllistä ja tarkkaa tietoa
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Testausprojekti 2 Testausprojekti 2
Testauksen tavoite ei ole vain löytää virheitä
Osa A
100 kirjattua virhettä
Osa A
31 kirjattua virhettä
Osa C
12 kirjattua virhettä
Osa D
24 kirjattua virhettä
Osa B
10 kirjattua virhettä
Osa B
0 kirjattua virhettä
Osa C
0 kirjattua virhettä
Osa D
0 kirjattua virhettä
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Testauksen arvokkain tulos
• Testauksen tärkein tulos on faktat hankkeen / järjestelmän todellisesta tilasta– Riskien ja tavoitteiden konkretisointi– Hankkeen riskit– Hankkeen tavoitteiden saavuttamisen
todennäköisyys• Tieto ei aina ole helposti arvotettavissa• Faktat ovat kriittisiä johdolle• Monesti faktat saadaan viestittyä vasta
kun mitään ei enää ole tehtävissä
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Laatukolmio / Projektikolmio
Resur
ssit
Aika
Sisältö
LaatuMäärä
Laatu
Määrä
•Tärkeät päätökset laatukolmion nurkkien prioriteeteistä tehdään hankkeen alussa
•Päätöksiä ohjaa liiketoiminnan luonne ja organisaation kyvyt ja hankkeen reunaehdot
•Kaikki muutokset hankkeen kuluessa ovat kalliita
•Kaikki vaikuttavat kaikkeen – muutat yhtä ja sitten säädät muita nurkkia
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Testauksen monet odotukset
• Yritysjohdon näkökulma – ”Hyvin testattu tuote antaa paremman katteen”
• Asiakkaan näkökulma – ”Laadukas sovellus järkeistää työtä ja parantaa palvelua”
• Markkinoinnin näkökulma – ”Laatusertifikaatti parantaa myyntiä”
• Toteuttajan näkökulma – ”Koodistani ei löydy virheitä”
• Testaajan näkökulma – ”Tarkoitukseni on löytää virheitä”
• Projektipäällikön näkökulma – ”Testaus on 35 % työstä”
• Loppukäyttäjän näkökulma
– ”Työni helpottuu”Testauksella ei ole yhtä roolia, vaan
oikeastaan nippu siihen kohdistettuja odotuksia
Testauksella ei ole yhtä roolia, vaan oikeastaan nippu siihen kohdistettuja
odotuksia
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Toteuttaja testaajana
• Suhteellisen halpa virheidenkorjaus• Toteuttaja löytää virheitä joita testaajan
on vaikea löytää• Toteuttaja saattaa nähdä suoraan missä
virhe on, sen sijaan että virhettä tarvitsisi koittaa toistaa
• Toteuttaja ei tarvitse selittää virhettä toiselle
• Toteuttaja ei tarvitse käyttää aikaa selvittääkseen kuinka ohjelman on tarkoitus toimia ja paperityön välttäminen on mahdollista
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Erillinen, riippumaton testaaja
• Ohjelmistokehitys tiimityötä– Erilaisten osaamisten summa
• Löytää tyypillisesti erilaisia virheitä, seuraa eri näkökulmia– Sokeus omille virheille
• Riippumattomuus ei korvaa ohjelmiston tuntemusta
Testausta tehdään projekteissa kaikkien osapuolien toimesta ja
työnjako on vaihteleva.
Testausta tehdään projekteissa kaikkien osapuolien toimesta ja
työnjako on vaihteleva.
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Käyttäjä vs. Testaaja
• Käyttäjän virheiden löytäminen testaajaa tehottomampaa– Kuka tahansa voi vahingossa osua virheisiin,
tavoitteellisuus ja tehokkuus luonnehtivat testaajaa
• Tehokas testaus– Sisäisesti tehokas: virheitä löytyy nopeammin
kuin tavallisessa käytössä– Ulkoisesti tehokas: Löydetyt virheet ovat
merkittäviä kokonaisuuden kannalta
• Erilaiset keinot eri vaiheissa omaavat eri tehokkuuden
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
1 – Tehokas ohjelmistotestaus
Käsiteltävät asiat
Testaus ja laatu
Riskiperus-teinen testaus
Testauksen monipuolisuu
s
Keskeiset haasteet
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Testaus on vaikeaa (1/2)Lähde: James Bach.
• Sinun on ennakoitava käyttäjän...– Aineisto– Taidot– Toiminta– Odotukset– Ympäristö
• …tutkiaksesi tuotetta, joka on…– Näkymätön– Epävakaa– Herkkä– Monimutkainen– Tuntematon
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
• ...käyttämällä prosessia, joka on usein...– Loputon– Epäselvä– Negatiivinen– Ikävystyttävä– Työläs
• …löytääksesi ongelmia, jotka ovat– Odottamattomia
Testaus on vaikeaa (2/2)Lähde: James Bach.
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Vaihtoehtoja on loputtomasti
• Toiminnallisuudet vs. syötteet vs. tilat
• Erilaiset ympäristöt• Sisäiset vs. ulkoiset tekijät• Ominaisuudet vs. odotukset• Testauksen aikaiset versiot vs.
toimitusversiot
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Ohjelmistotestauksen laajuus
loppukäyttäjänäkökulmastaPalvelut
Ympäristöt
Ohjelmisto
Järjestelmä:•Uusi koodi
•Vanha koodi•Sovelluskehys
Dokumentaatio:•Toteutuksen
aikainen•Asiakas-
dokumentaatio
Laitteisto & Verkko
Käyttöjärjestelmä
Muut ohjelmistot
AsennusTekninen
tukiPäivitykset
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Täysin kattava testaus on mahdotonta
• Testataksesi kaiken, sinun täytyisi:– Testata jokaisen muuttujan jokainen mahdollinen
syöte. – Testata jokainen mahdollinen yhdistelmä
syötteitä ja muuttujia. – Testata jokainen mahdollinen toimintoketju
ohjelman läpi. – Testata jokainen laitteisto/
ohjelmistokonfiguraatio, mukaanlukien palvelinkonfiguraatiot jotka eivät ole hallinnassasi.
– Testata jokainen tapa, jolla käyttäjä saattaisi yrittää käyttää sovellusta.
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Riittävä laatu
Nolla virhettä
Auttavasti toimiva
Riittävä laatu / Tilanneohjattu
laatu
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Riski
• Menetyksen tai vaurion mahdollisuus• Joku tai jokin, joka luo mahdollisen vaaran
• Riskiin liittyy:– Menetys: ei-toivottu vaikutus– Todennäköisyys: toteutuminen on epävarmaa– Tavoitteet: mihin menetys kohdistuu– Sidosryhmät: menetyksestä kiinnostunut
osapuoli
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Vaatimus, hyöty, kustannus ja riski
VaatimusVaatimus
HyötyKustan
-nusMitä
Miten
Riski
Rajoite
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Kuinka riski ymmärretään testauksessa
• Elintärkeää tietoa testaukselle – järjestelmäriskit– Liiketoimintariski– Tekninen riski
• Vaikutus myös testauksen menestykseen ja saattaa muuttaa järjestelmäriskejä– Projektiriski
• Projektiriskit ovat helpompia keksiä ja käsittää, mutta eivät ole testauksen sisällön keskeisin ohjausmekanismi
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Riskianalyysi testausnäkökulmasta
Riskianalyysi
Järjestelmäriskit(Liiketoiminta & tekninen)
Riski-analyysin tyyppi
Keskeiset aktiviteetit
Tulokset
Projektiriskit
Aikatauluvaikutusten tunnistaminen
Vastatoimet
Tunnista virheen todennäköisyys
Tunnista virheen vaikutus
Testauksen prioriteetit
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Miksi riski on oleellinen testauksessa?
• Johto ajattelee riskien ja hyötyjen kautta• Riskejä voidaan käyttää perustelemaan
lisärahoitusta asiakkaalta• Riskin ottaminen tarkoittaa tyypillisesti
parempaa sijoituksen tuottoa– Sama laadun kanssa, sillä riskien vaikutusten
lieventäminen aiheuttaa kustannuksia
• Täysin kattava testaus on mahdotonta tai ainakin epäkäytännöllistä– Kaiken testauksen pitäisi perustua riskiin
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Mikä on ”virhe”?
• Virhe: Ihmisen toiminta joka tuottaa väärän tuloksen
• Vika: Virheen ilmentymä ohjelmistossa– Tunnetaan myös bugina, ongelmana ...– Vika voi ajonaikana aiheuttaa häiriön
• Häiriö: Ohjelmiston poikkeama odotetusta toimituksesta tai palvelusta
Täsmällisessä kielenkäytössä: häiriö on tapahtuma; vika on
ohjelmiston tila, jonka aiheuttaa ihmisen tekemä virhe
Täsmällisessä kielenkäytössä: häiriö on tapahtuma; vika on
ohjelmiston tila, jonka aiheuttaa ihmisen tekemä virhe
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Virhe – Vika - Häiriö
Ihminen tekee virheen…
…joka aiheuttaa vian ohjelmistoon…
…joka voi aiheuttaa häiriön ohjelmiston toiminnassa
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Havainnot ja virheet
• Havainnot ovat testauksen keskeisin tuotos– Neutraalimpi kuin ”virhe”
• Virhe voi normaalissa kielenkäytössä tarkoittaa niin virhettä, vikaa kuin häiriötä– Vrt. Virheettömyys tavoitteena on itse asiassa
häiriöttömyys
• Erotetaan tekstissä selitteellä kun tarpeen korostaa eroa– Ihmiset tekemä virhe =virhe– Virhe ohjelmistossa = vika– Käytönaikainen virhe = häiriö
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Virheettömyys vs. luotettavuus
• Usein peräänkuulutetaan ”virheettömyyttä” ja tarkoitetaan käytön aikaista häiriöttömyyttä
• Luotettavuus: todennäköisyys, että järjestelmässä ei ole häiriöitä tietyn ajan kuluessa tiettyjen olosuhteiden vallitessa
• Mikään järjestelmä ei ole virheetön• Järjestelmä, jossa on virheitä voi olla luotettava• Vaikka virheitä olisi vähän kussakin osassa,
järjestelmä ei välttämättä ole luotettava• Järjestelmän toiminta on eri kuin sen osien
toiminta erikseen– Jos kukin osa on 90 % luotettava ja järjestelmä koostuu
viidestä osasta, kokonaisjärjestelmän luotettavuus on 0,9^5=0,6 ~> 60 %
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Priorisointisääntö
Priorisoi testejä siten että koskatahansa lopettaessasi testauksen,
olet tehnyt parasta mahdollistatestausta saatavilla olevan
ajan ja resurssien puitteissa.
Priorisoi testejä siten että koskatahansa lopettaessasi testauksen,
olet tehnyt parasta mahdollistatestausta saatavilla olevan
ajan ja resurssien puitteissa.
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Uudelleentestaus vs. uusinta-testaus
Testi löytää virheen
Korjattu ja uudelleentestattu
Uusia virheitä syntyy korjauksen vaatimien muutosten seurauksena.
Perustoiminnal-lisuuden uusintatesti
(Leveystesti)
Erikoistunut toiminnalli-suuden uusintatesti
(Syvyystesti)
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Uusintatestauksen ja testien toistettavuuden
tarve• Kaiken testauksen pitäisi perustua riskille• Riskinhallinnan kysymys kuuluu: ”Onko
olemassa riski, että ohjelmisto taantuu”?• Jos taantumisen katsotaan olevan vakava
laaturiski, niin testien toistettavuus ja testauksen säännöllinen toistaminen on tärkeää
• Todennäköisyys, että ohjelmistoinsinööri tahattomasti luo virheen muutosta tehdessään on 20 % ja 50 % välillä (Watts Humphrey, SEI)
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Toteutuksen ja testauksen työt
• Toteuttamisen ja testaamisen työmäärät eivät ole symmetrisiä– pieni muutos toteutuksessa voi aiheuttaa
suuren työmäärän testaukseen
• Testauksen työmäärä kasvaa projektin edetessä– Testauksen tulokset eivät pysy voimassa ajan
kuluessa – ohjelmiston muuttuessa aiempien testien tulokset eivät välttämättä pidä paikkaansa.
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Uusintatestaus projektissa
Uusien ominaisuuksi
en testaus
Uusintatestaus
Työmäärä
Aika
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
1 – Tehokas ohjelmistotestaus
Käsiteltävät asiat
Testaus ja laatu
Riskiperus-teinen testaus
Testauksen monipuolis
uus
Keskeiset haasteet
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Ohjelmistokehityksen kolminaisuus
Vaatimukset
Tekninen suunnittelu ja toteutus
Testaus
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Testauksessa monta puolta
Testauksen hallinta –
Suunnittelu ja seuranta
Testaus-toiminta -Määrittely ja suoritus
Projekti-tiedustelu –
ennakoiva testaustoiminta
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Testauksen keskeiset näkökulmat
Tekninen näkökulma”järjestelmä ei toimi, jos...”
Tekninen näkökulma”järjestelmä ei toimi, jos...”
Käyttäjän näkökulma
”ei voi ratkaista
ongelmaa / tehostaa
toimintaa, jos...”
Käyttäjän näkökulma
”ei voi ratkaista
ongelmaa / tehostaa
toimintaa, jos...”
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Testaustasot
Yksikkö-
testaus
Integrointi-testaus
Järjestelmä-testaus
Hyväksymis-testaus
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Useita testauksen tasoja
• Yksikkötestit keskittyvät virheisiin, jotka syntyvät koodia kirjoittaessa, kuten raja-arvovirheet käyttäjän syötettä kelpuutettaessa.
• Integraatiotestit keskittyvät alhaisen tason suunnitteluun, erityisesti virheiden tarkastukseen yksiköiden välisissä rajapinnoissa ja muissa integroinneissa.
• Järjestelmätestit tarkistavat toteuttaako järjestelmä kokonaisuutena korkean tason suunnitelman, mukaan lukien suorituskyvyn riittävyyden tuotanto-olosuhteissa sekä useiden järjestelmien integroinnin.
• Hyväksymistestit tehdään tavallisesti asiakkaiden / käyttäjien toimesta varmistamaan, että tuote täyttää liiketoimintavaatimukset.
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Toteuttaja vs. Testaaja työmäärän kohdistuminen
Uusien ominaisuuk-sien testaus
Uusintatestaus
Uusien ominaisuuksi
en testaus
Uusintatestaus
Toteut-taja
Testaa-ja
Valmistelu
Julkaisu testaukseen / järjestelmätestauksen aloitus
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Mikä on ”järjestelmä”
{JärjestelmäJärjestelmä
SovellusSovellus
Muut sovellukset (ohjelmistot)
Muut sovellukset (ohjelmistot)
Järjestelmäohjelmistot(käyttöjärjestelmä)
Järjestelmäohjelmistot(käyttöjärjestelmä)
LaitteistoLaitteisto
Halli
ttu
ym
päri
stö
Halli
ttu
ym
päri
stö
=
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Testaus vs. Vian jäljitys
Vian jäljitysDynaaminen (lasilaatikko)
testausVian eristäminen
Testaus Ohjelmointi
Tavoite: Tunnistaa häiriöt ja virheet
Tavoite: Paikallistaa virheet, poistaa virheet
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Toiminnallinen ja ei-toiminnallinen testaus
• Toiminnallinen testaus on ohjelmiston tarjoamien toimintojen testaamista yksittäisinä toimintoina, toimintoryhminä sekä yhdistettynä ohjelmiston aineiston kanssa.
• Ei-toiminnallinen testaus kohdistuu nk. ei-toiminnallisiin ominaisuuksiin, jotka vaikuttavat ohjelmistoon liittyvään kokonaislaatu-kokemukseen, mutta eivät ole liitettävissä suoraan toimintoon tai toimintoryhmään ohjelmistossa, kuten käytettävyys, suorituskyky ja luotettavuus.
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Staattinen ja dynaaminen testaus
• Staattisessa testauksessa ei ajeta koodia– Tietokoneeseen perustumattoman testaamisen
prosessi– Katselmoinnit, tarkastukset, staattinen analyysi
• Dynaamisessa testauksessa ajetaan koodia– Testausta perinteisessä merkityksessä– Tietokoneeseen perustuvat testaustekniikat– Tämän suorituspohjaisen testauksen perinteet
ovat ajattelussa, että ohjelmat on kirjoitettu vain koneella ajamista varten eikä ihmisten luettavaksi (Myers 1979)
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Mustalaatikko- vs. lasilaatikkotestaus
? y = 2xx = 2 y = 4 x = 2 y = 4
Tuntematon vs. tunnettu yhtälö
Mustalaatikko Lasilaatikko
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Mustalaatikko- ja lasilaatikkotestaus
• Mustalaatikko (toiminnallinen, käyttäytymiseen pohjautuva, aineistovetoinen, syöte-tulos-vetoinen)– Testaus perustuu syötteisiin ja vastaaviin tuloksiin– Sisäistä käyttäytymistä ja rakennetta ei huomioida– Etsitään tilanteita, joissa ohjelma ei toimi määrittelynsä
mukaisesti Täysin kattava syötetestaus (sallitut ja ei-sallitut syötteet,
toimintosarjat)
• Lasilaatikko (rakenteeseen pohjautuva, logiikkavetoinen)– Testaus perustuu ohjelman logiikan tietämiseen– Ainutlaatuisia polkuja ohjelman läpi äärimmäisen paljon– Ohjelma voi olla vastaamatta määrittelyä, puuttuvia polkuja,
aineistoherkkyysvirheitä Täysin kattava polkutestaus
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Positiivinen ja negatiivinen testaus
• Positiivinen testaus on testausta, joka kohdistuu käyttäjän normaalitoiminnan aikana tarvitsemien ominaisuuksien testaamiseen.
• Negatiivinen testaus on testausta, jossa testataan järjestelmän ominaisuuksia, jotka hoitavat virhe- ja poikkeuskäsittelyä.
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Todennus ja kelpuutus
• Todennus– Järjestelmän tai komponentin arviointiprosessi
sen selvittämiseksi, täyttävätkö annetun kehitysvaiheen tuotokset vaiheen alussa asetetut ehdot (BS7925-1)
– ”Järjestelmän tekeminen oikein”
• Kelpuutus– Ohjelmistokehityksen tuotosten oikeellisuuden
arviointi asiakastarpeiden ja –vaatimusten suhteen (BS7925-1)
– ”Oikean järjestelmän tekeminen”
• Testauksessa voi olla molempia näkökulmia– Perinteisesti paino todennuksessa
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Sisäinen ja ulkoinen muutos
• Sisäinen muutos – ohjelmistokehitystä– Uusia ominaisuuksia– Muutoksia– Korjauksia
• Ulkoinen muutos – ympäristö muuttuu– Uusi laitteisto– Uusi käyttöjärjestelmä
Testausta tarvitaan molempien suhteenTestausta tarvitaan molempien suhteen
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Idea Projekti
Tuotanto
Testaus
Vaatimustenhallinta
Testaus elinkaariprosessina
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Erilaisia osaamisia testauksessa
idea projekti
tuotanto
tekninen näkökulma
Käyttäjä-näkökulma
Toimin-nallinen
Ei-toiminnalline
n
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Testauksen tehokkuus
• Ulkoinen tehokkuus (effectiveness)– Tehdään oikeaa asiaa ja valitaan oikeat asiat tilanteeseen
mahdollisimman hyvän lopputuloksen saavuttamiseksi. – Valitut keinot oikeat; soveltuvuus
• Sisäinen tehokkuus (efficiency)– Juoksunopeustehokkuus - "sama työ lyhyemmässä
ajassa". – Valittuja keinoja käytetään tehokkaasti; suorituskyky;
hyötysuhde
• Tehokkuutta tavoitellessa ensin pitää saavuttaa tulokset ja sitten vasta optimoida tulosten saavuttamiseen käytettävää aikaa – Ulkoinen tehokkuus ensisijaisen tärkeä
• Testattavuus on testauksen mahdollisuuksia tehdä testausta tehokkaasti
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Ulkoinen vs. sisäinen tehokkuus
Korkea sisäinen, alhainen ulkoinen tehokkuuskulut ok, mutta
tulokset eivät
Molemmat alhaisia korkeat kustannukset,
vähäiset tulokset
Alhainen sisäinen, korkeaulkoinen tehokkuus
Virheitä löytyy, muttase maksaa liikaa
Molemmat korkeita Tavoite, johon pyrkiä
Ulkoinen tehokkuus
Sisäinen tehokkuu
s
Tekniikat
TyökalutProsessin paranta-minen
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
??? ???
Mutta voit olla täällä.
Testaus laadun arvioinnissa
Ohjelmiston laatu
Alhainen
Korkea
Alhainen
Testien
laatuKorkea
Paljon virheitä
Vähän virheitä
Luulet olevasi täällä...
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
1 – Tehokas ohjelmistotestaus
Käsiteltävät asiat
Testaus ja laatu
Riskiperustei-nen testaus
Testauksen monipuolisuu
s
Keskeiset haasteet
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Testaus käytännössä
• Riskiperusteinen testaus tarkoittaa testauksen suuntaamista riskiin perustuen– Osia ja näkökulmia jätetään testaamatta
• Tilannetekijäohjattu testaus tarkoittaa testauksen toimintatapojen suuntaamista tilannetekijöihin perustuen– Kustannukset ja soveltuvuus ohjaavat jokaisen
toimintatavan valintaa– Riski on oleellinen osa toimintatavan
tarpeellisuuden ja toteutustavan arviointia
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Testaushaasteiden jako
Testauksen hallinta –
Suunnittelu ja seuranta
Testaus-toiminta -Määrittely ja suoritus
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Testauksen hallinnan haasteet (1/3)
• Raportointi: Testaus tekee tietoiset päätökset laadun suhteen mahdollisiksi. Kuinka testaus raportoi työstään niin että tieto otetaan vastaan ja käytetään?
• Viestintä: Testaukseen tarvitaan tietoa testattavista asioista, ja tämä tieto on luonteeltaan jatkuvasti muuttuvaa. Miten viestintä ja yhteistyö hoidetaan tarvittavan tiedon saamisen kannalta?
• Lähtötaso: Testausta tehdään useiden osapuolien toimesta eri tasoilla. Kuinka huolehditaan kunkin osapuolen tarvitsemasta lähtötasosta laadun suhteen?
• Työmääräarviointi: Testauksessa on paljon tehtäviä ja tarpeellista toistoa. Kuinka etukäteen tiedetään kuinka paljon aikaa ja resursseja tarvitaan työhön jota ollaan tekemässä?
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Testauksen hallinnan haasteet (2/3)
• Testaustyypit: Monenlainen testaus voi olla tarpeen. Miten tietää mitä kaikkea testausta voidaan yleensäkään tarvita?
• Logistiikka: Testaus on osa ohjelmistokehitystoimintaa ja sen tulee rytmittyä tukemaan ohjelmistokehitystä. Kuinka testaajat käyttävät työmääränsä oikea-aikaisesti oikeassa paikassa hyödyn maksimoimiseksi?
• Lopettaminen: Kaikkea ei voi testata. Kuinka päättää koska testaus voidaan lopettaa eli koska testausta on tarpeeksi?
• Missio: Testausta käytetään moneen tarkoitukseen ja sille on monenlaisia odotuksia eri osapuolilta. Mitä vaatimuksia testaukselle kohdistuu?
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Testauksen hallinnan haasteet (3/3)
• Opettaminen ja ohjaus: Testaus on haastavaa. Kuinka auttaa testaajia tulemaan hyviksi työssään ja miten tunnistaa hyvä testaaja?
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Testaustoiminnan haasteet (1/3)
• Edustus: Testaajat toimivat edustajina jollekin näkökulmalle. Kuinka testaajat aidosti edustavat tätä näkökulmaa?
• Kattavuus: Testattavaa on paljon. Kuinka päätetään mitä testataan ja mitä ei?
• Riski: Testejä on kaikkiaan liikaa kullekin ajanhetkelle. Kuinka tiedetään mitkä testit ovat parhaita suoritettavaksi juuri nyt?
• Tukirakenteet: Testauksessa tarvitaan muutakin kuin testattava kohde. Mitä ympäristöjä ja välineitä tarvitaan?
• Hyönteismyrkky: Testattava kohde tulee immuuniksi samoille testeille ja virheiden löytäminen vaatii testien muuttamista. Kuinka testejä muutetaan tehokkaasti?
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Testaustoiminnan haasteet (2/3)
• Testattavuus: Järjestelmän ja vaatimusten rakenteet vaikuttavat kykyyn tehdä testausta. Kuinka järjestelmä voidaan rakentaa siten että testaaminen on mahdollista ja tehokasta?
• Oppiminen: Testattavat järjestelmät ovat monimutkaisia. Kuinka opimme järjestelmän toiminnan?
• Suoritus: Testien suorittamiseen on useita vaihtoehtoisia tapoja. Mikä on tehokkain tapa suorittaa tarvittavat testit?
• Virheraportointi: Testaus löytää virheitä. Kun löydämme virheen, kuinka toistamme sen ja raportoimme sen tehokkaasti?
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Testaustoiminnan haasteet (3/3)
• Arviointi: Kaikki virheet eivät ole itsestään selviä. Kun virhetilanne tulee kohdalle, kuinka testaaja tunnistaa sen?
• Dokumentaatio: Testauksesta pitää jäädä jälki vähintään löydettyjen ja käsiteltyjen virheiden osalta. Mitä dokumentaatiota tarvitaan ja mihin tarkoituksiin?
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Ihmisluonnon rajoitteet testauksessa
• Kyky edustaa haluttua näkökulmaa on rajoittunut– Muistin rajoitteet– Vinoumat
• Aikomukset ovat tärkeitä– Ihmisluontoon kuuluu vääristää tulokset ja tulkinnat
odotusten ja toivomusten mukaan– Samasta syystä odotetut tulokset testauksessa
korostuvat
• Opettelemalla ymmärtämään omia vinoumiaan oppii paremmaksi testaajaksi
• Opettelemalla ymmärtämään muiden vinoumia saa viestinsä paremmin läpi
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Esimerkkejä vinoumistaLähde: Kaner, Bach, Pettichord. 2002. Lessons Learned in Software Testing.
• Tulkinta – tulevien testitulosten tulkinta siten että ne vahvistavat nykykäsitystä järjestelmästä
• Vahvistus – vahvistavat tulokset saavat suuremman painoarvon
• Saatavuus – helposti muistettava käyttäjän toiminnallisuus tuntuu todennäköisemmältä
• Etusija – ensimmäiset havainnot tuntuvat tärkeämmiltä
• Lähiaika – Viimeisin havainto tuntuu tärkeämmältä• Läheisyys – Tuttujen käyttäjien mielipiteillä on
enemmän painoarvoa• Edustavuus – Oletetaan pienten ongelmien syiden
olevan pieniä ja suurien suuria• Kehysvaikutus – Reaktio virheraporttiin riippuu sen
muotoilusta, riippumatta sen sisällöstä ja merkityksestä
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Vinoumat vaikuttavat toimintaan (1/2)
• Esimerkki: Palkitseminen– 10 000 € palkkio, joko huomenna tai vuoden
päästä– Ei ole olemassa vaihtoehtoa, ettei sitä tulisi– Haluaisimme silti saada palkkion
mahdollisimman pian
• Esimerkki: Laskun maksaminen– 10 000 € lasku, joka pitää maksaa joko
huomenna tai vuoden päästä– Jos odotamme, emme voi mitenkään välttää
sen maksamista– Haluaisimme välttää laskun maksamista niin
pitkään kuin mahdollista
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Vinoumat vaikuttavat toimintaan (2/2)
• Esimerkki: Yksikkötestauksen käytäntöjen parantaminen– Poistaa enemmän virheitä aiemmin
projektissa ja tuloksena on lopulta paljon pienemmät työmäärät myöhemmässä virheiden jäljittämisessä, korjauksessa ja testauksessa
– Olemme kohtuullisen varmoja siitä, että jokainen yksikkötestaukseen tällä viikolla laitettu lisätunti tulee tuottamaan 8-12 tunnin työmäärän säästön tulevaisuudessa
– Tuotto tapahtuu vasta kuukausia myöhemmin, projektin loppuvaiheilla
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
”Alusta”
Prosessi
Haasteisiin vastaaminen
Missio
Strategia Käytännöt
OsaaminenTestaus-
välineet ja -ympäristö
Mittarit
Tavoitteet
Odotukset
Konteksti,mahdollisuudet
Testaus-tasot Testaus-
tyypit
Laatu-kriteerit
Riskit
Viestintä&yhteistyö
Testauksenydin
Mahdol-listajat
Tavoitteet
Välineet
Koulutus-tarve
Testaus-tekniikat
Kustannus/hyöty
Testauksen rytmitys
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Yhteenveto
• Testaus on haastavaa toimintaa, jossa useat näkökulmat ovat tarpeen
• Testausta tekevät niin erilliset testaajat kuin kaikki muut ohjelmistokehityksessä mukana olevat
• Testaus tuottaa tietoa kehityksen muuttuvasta tilanteesta riskiperusteisesti
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Linkkejä ja vinkkejä
• Esimerkkejä ohjelmistovirheistä löytyy uutisryhmästä – comp.risks
• Esimerkkejä Microsoftin ohjelmistoissa olevista virheistä löytyy kirjoista– James Whittaker. 2002. How to Break Software.– James Whittaker. 2003. How to Break Software
Security.
Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen
Hyviä testaustiedon lähteitä verkossa
• Stickyminds – Forum for testing– http://www.stickyminds.com/
• ”Better Software”-lehti, ilmestyi ennen nimellä ”Software Testing and Quality Engineering”
– http://www.bettersoftware.com/• Cem Kaner’s website
– http://www.kaner.com/• James Bach’s website
– http://www.satisfice.com/• Rex Black’s website
– http://www.rexblackconsulting.com/
• Karl Wiegers website– http://www.processimpact.com/
• Tulevaisuudessa suomenkielistä materiaalia
– http://www.testauskirja.com• Testauksen sertifiointia
– http://www.bcs.org.uk/iseb/– http://www.istqb.org/
• Software Testing Hotlist– http://www.io.com/~wazmo/qa/#
test_tools • Brian Marick’s Website
– http://www.testing.com/• Bret Pettichord’s Website
– http://www.pettichord.com/• TestingEducation Promotion site
– http://www.testingeducation.org/• Suomalainen
testausosaamisyhteisö– http://www.pcuf.fi
/sytyke/kerhot/testaus/ • Suomalainen testaajien
keskusteluryhmä– http://groups.yahoo.com/groups/fi
-testaus/• SoftaTest Moodle
– http://softatest.moodle.fi/