Testaus ohjelmistokehityksen osana
This presentation is the property of its rightful owner.
Sponsored Links
1 / 71

Testaus ohjelmistokehityksen osana PowerPoint PPT Presentation


  • 340 Views
  • Uploaded on
  • Presentation posted in: General

Testaus ohjelmistokehityksen osana. Maaret Pyhäjärvi ja Erkki Pöyhönen Julkaisuversio 1.0 2005-01-06. tekijä mainittava http://creativecommons.org/licenses/by/1.0/fi/. Tiedoksi lukijalle. Tämä materiaali on edelleen työn alla

Download Presentation

Testaus ohjelmistokehityksen osana

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Testaus ohjelmistokehityksen osana

Testaus ohjelmistokehityksen osana

Maaret Pyhäjärvi ja Erkki Pöyhönen

Julkaisuversio 1.0

2005-01-06

tekijä mainittavahttp://creativecommons.org/licenses/by/1.0/fi/


Tiedoksi lukijalle

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 [email protected]


2 testaus ohjelmistokehityksen osana

2 – Testaus ohjelmistokehityksen osana

Tehokas ohjelmistotestaus

Testaustekniikat

Testaus ohjelmisto-kehityksen osana

Testauksen suunnittelu ja hallinta

Virheraportointi ja virheasian ajaminen

Testausvälineet ja testauksen automatisointi

Katselmoinnit testaustoimintana

Testausprosessin muuttaminen

Testitapaukset ja testien suorittaminen


Oppimistavoitteet

Oppimistavoitteet

  • Tiedät mitä testausprosessi on suhteessa ohjelmistoprosessiin

  • Tunnet suunnitelmaohjatun ja ketterän ohjelmistokehityksen sekä testauksen ja ymmärrät tasapainottelun niiden välillä

  • Osaat välttää perinteisimmät sudenkuopat testausprosessin määrittelyssä ja toteuttamisessa

  • Tunnet ohjelmistokehityksen dokumenttihierarkian ja ymmärrät että testaus ei perustu vain dokumentteihin

  • Osaat tehdä vaatimusanalyysin testausprosessissa tuotettavalle testauksen dokumentaatiolle

  • Tiedät mikä on testaustaso ja testaustyyppi ja osaat käyttää niitä suunnittelussa

  • Tiedät mitä testattavuus on ja kuinka sitä arvioidaan ja kehitetään

  • Ymmärrät että riskit riippuvat monista tekijöistä ja muuttuvat sekä ohjelmiston että projektin elinkaaren aikana


2 testaus ohjelmistokehityksen osana1

Käsiteltävät asiat

Testauksen V-malli

Suunnittelua elinkaaressa

Testaus-prosessi

Testattavuus ja laatu

2 – Testaus ohjelmistokehityksen osana


2 testaus ohjelmistokehityksen osana2

Käsiteltävät asiat

V-malli ja testaustyypit

Suunnittelua elinkaaressa

Testaus-prosessi

Testattavuus ja laatu

2 – Testaus ohjelmistokehityksen osana


Testaustasot ja vaiheet

Testaustasot ja vaiheet

  • Testaustaso – Jatkuvaa testaustoimintaa tietyn tyyppisen testaustavoitteen ja testauskohteen ympärillä.

    • Testaustoiminnasta tekee oleellisesti jatkuvaa vaatimus uusintatestauksesta muutoksen osalta.

    • Taso ei ole välttämättä sama asia kuin vaihe.

  • Testausvaihe - Testaustason sisäinen tai useiden testaustasojen yhteinen tehtäväkokonaisuus, joka on tyypiltään kertaluonteinen eikä jatkuva.


V malli testauksen tasot

V-malli – testauksen tasot

Vaatimukset

Hyväksymis-testaus

Määrittely

Järjestelmä-testaus

Tekninen suunnittelu

Integrointi-testaus

Ohjelmointi

Yksikkö-testaus


Tyypilliset testauksen tasot

Tyypilliset testauksen tasot

[Craig&Jaskiel 2002]


Testaustasojen tyypilliset merkitykset

Testaustasojen tyypilliset merkitykset

Tyypillinen organisointi

kokonaisuus

Hyväksymistestaus

Asiakas/käyttäjä

Testauksen kohteena olevan kokoonpanon laajuus

Järjestelmätestaus

Testaaja

Integrointitestaus

Toteuttajat yhdessä

Yksikkötestaus

Kukin toteuttaja

osa

Ympäristöjen edustavuus

osa

kaikki


Yksikk testaus

Yksikkötestaus

  • Yksikkötestauksella tarkoitetaan koodin toteutukseen kohdistuvaa teknistä testausta

    • Keskittyy virheisiin, jotka tyypillisesti syntyvät koodia kirjoittaessa

  • Yksikkö voi olla:

    • Tehtävänanto: ”Koodaan ja testaan tämän ominaisuuden”

    • Komponentti, moduuli, luokka: ”toteutan kaikki toiminnallisuuden näihin kooditiedostoihin”

  • Laajuuden tulkinnassa paljon vaihtelua

    • Usein näkee suurissa hankkeissa jaettavan yksikkötestaustaso kahteen osaan, yksikkö- ja komponenttitestaukseen

    • Tällöin yksikkötestaus kohdistuu kooditiedostolaajuuteen ja komponenttitestaus vastaa kehittäjän omalle komponentilleen tekemää osajärjestelmätestausta ennen integrointia kokonaisjärjestelmään


Integrointitestaus

Integrointitestaus

  • Integrointitestauksella tarkoitetaan kaiken tasoisten osajärjestelmien yhdistämiseen kohdistuvaa teknistä testausta

  • Integrointitestaus usein vaikea erottaa yksikkötestauksesta, koska integrointi voi sisältää ohjelmointitehtäviä

    • Usein toimiva perussääntö: enemmän kuin yksi toteuttaja  integrointitestaustarve

    • Arkkitehtuuri apuna integrointitestaustarpeiden tunnistamisessa

  • Testaus kohdistuu integroitavaksi valittujen osajärjestelmien laajuuteen

    • Integrointitestauksessa osajärjestelmien liittymän näkökulma


J rjestelm testaus

Järjestelmätestaus

  • Järjestelmätestauksella tarkoitetaan kokonaisjärjestelmän laajuuteen kohdistuvaa testausta

    • Voi sisältää sekä teknisen että käyttäjän näkökulman

  • Testaus kohdistuu kulloinkin olemassa olevaan kokonaisjärjestelmän laajuuteen

    • Laajuus kasvaa uusien integrointien myötä

    • Järjestelmätestauksessa kokonaisjärjestelmän näkökulma


Hyv ksymistestaus

Hyväksymistestaus

  • Hyväksymistestauksella tarkoitetaan testausnäkökulmaa, jossa tarkastellaan järjestelmää sen todelliseen ympäristöönsä soveltuvuuden kannalta

  • Sopimuspohjainen hyväksymistestaus

    • Voi olla juuri ennen tuotantoon siirtoa tai keskellä järjestelmätestausta

    • Etenkin monitoimittajaympäristössä hyväksymistestaus liittyy laskunmaksuun eikä voida odottaa tuotantoon siirtoa

    • Voi toistua jokaisen uuden alijärjestelmän versioasennuksen jälkeen

  • Alpha- ja betatestaus, pilotointitestaus

    • Virhetilanteiden löytäminen, joita on vaikeaa tai kallista löytää laboratorio-olosuhteissa – todellisten ympäristöjen monimuotoisuuden toistaminen haaste


V malli testauksen tasot1

V-malli – testauksen tasot

Vaatimukset

Hyväksymis-testaus

Määrittely

Järjestelmä-testaus

Tekninen suunnittelu

Integrointi-testaus

Ohjelmointi

Yksikkö-testaus

Testien ajaminen ja korjaustyö

Testien suunnittelu


V mallin ydin

V-mallin ydin

  • Pienempien osien testaaminen ennen järjestelmään liittämistä on hyvä lähestymistapa.

  • Testaukselle on useita eri näkökulmia.

  • Testaus voi alkaa suunnittelulla heti kun korkeimman tason vaatimukset on tunnistettu.


Erityisesti huomioi 1 2

Erityisesti huomioi (1/2)

  • Suunnittele testit perustuen jokaisen suunnitteluvaiheen tuotokseen, mutta suorita testit siinä järjestyksessä joka on kaikkein järkevin

    • Testauksen vaiheistus voi olla erilainen kuin tasot peräkkäisinä vaiheina

    • Pyri saamaan oikea näkökulma, jolla löydetään tärkeät virheet, mukaan suoritukseen mahdollisimman aikaisin

  • Uusintatestauksella entistä suurempi painoarvo kun lisätään uusia ominaisuuksia olemassa oleviin järjestelmiin

    • Selvitä minkä testaustason näkökulmasta uusintatestausriski on taloudellisinta hallita


Erityisesti huomioi 2 2

Erityisesti huomioi (2/2)

  • Suunnitteluvaiheen tuotos ei välttämättä ole dokumentti

    • Dokumentti on vain yleinen viestinnän väline

  • V-mallia käytetään usein perusteluna sellaisten tehtävien tekemisen puuttumiselle, jotka ”olisi pitänyt jo tehdä”’

    • Jos näet jonkun muun valmistelevan samoja testejä kuin sinun oletetaan tekevän, miksi tekisit?

  • Hyväksymistestauksen suunnittelun vaatiminen ennen muita aiheuttaa vaihtelevia reaktioita

    • ”He testaavat vain nämä, joten emme mekään muuta testaa”

    • ”He testaavat nämä joten meidän ei tarvitse tehdä sitä”


Riski v mallin aikatauluvaikutus

Riski: V-mallin aikatauluvaikutus

Katselmoi, mieluummin kuin määrittele testitapauksia virheellisiin vaatimuksiin pohjaten.

Vertaiskatselmointien virheenpoistoteho 60 % Perspektiivipohjaisesti suunnattujen teho 35 % enemmän.

parhailla katselmoijilla 20 % virheistä menee läpi testaukseen saakka.

Virheet eivät ole tasa-arvoisia. 80 % vältettävissä olevasta korjaustyöstä tulee 20 %:sta koodia.


2 testaus ohjelmistokehityksen osana3

Käsiteltävät asiat

Testauksen V-malli

Suunnitteluaelinkaaressa

Testaus-prosessi

Testattavuus ja laatu

2 – Testaus ohjelmistokehityksen osana


Testauksen suunnittelu

Testauksen suunnittelu

  • Organisaation odotukset testaustoiminnalle

  • Laatupainotukset sovellusalueella

Testauksen missio ja korkean tason tavoitteet

Testausstrategia

  • Järjestelmä / tuote / palvelukohtainen

  • Useita projekteja saman järjestelmän elinkaaressa

Yleistestaussuunnitelma

  • Projektikohtainen

  • Projektin lähestymistapa, strategian räätälöinti

Testaussuunnitelma

  • Tarkentavat suunnitelmat ryhmittäin

Testitapaukset

  • Testauksen yksityiskohdat


Testauksen tilannemalli

Testauksen tilannemalli

Muokattu [Kaner et al. 2002]


Annettujen m rittelyt

Annettujen määrittelyt

  • Missio - Täytettävät tavoitteet, jotta testaus olisi sidosryhmiensä näkökulmasta onnistunutta.

  • Vaatimukset - Onnistuneen järjestelmän kriteerit.

  • Toteutus ja integrointi - Järjestely, joka tuottaa testattavan järjestelmän.

  • Testausryhmä - Testaukseen käytössä olevat ihmiset.

  • Testausympäristöt ja -välineet - Testauksen järjestelmät, työkalut ja materiaalit.


Annetut tarkemmin

Annetut tarkemmin

  • Testausympäristöt ja välineet

  • Testausympäristöt

  • Testikirjasto

  • Testiaineistot

  • Testausvälineet

  • Havaintojen seurantajärjestelmä

  • Toimistotilat

  • Missio

  • Testauksen sidosryhmät

  • Odotukset

  • Tavoitteet

  • Vaatimukset

  • Laatu-aika-ominaisuuspainotukset

  • Järjestelmän riskit

  • Laatuominaisuuksien painotukset

  • Järjestelmän tavoitteet (ratkaistava ongelma)

  • Järjestelmänsidosryhmät

  • Vaatimusdokumentaatio

  • Epäsuorien vaatimusten viestintä

  • Kehitys ja integrointi

  • Sovellusarkkitehtuuri ja -rakenteet

  • Projektin elinkaarimalli ja rytmitys

  • Projektinhallinta

  • Kokoonpanonhallinta

  • Julkaisunhallinta

  • Virheiden estäminen

  • Kehitysryhmä

  • Testausryhmä

  • Resurssointi

  • Osaaminen

  • Johtaminen

  • Työn jakaminen

  • Motivaatio


Valinnat

Valinnat

  • Lähestymistapa - Kokoelma ajatuksia, jotka ohjaavat testien ja testauksen suunnittelua.

  • Käytännöt - Kokoelma ajatuksia, jotka ohjaavat voimavarojen kohdistamista lähestymistapaa toteutettaessa.


Testausk sitteiden kohteita

Testauskäsitteiden kohteita


Testaustyyppi

Testaustyyppi

  • Testaustyyppi – Ryhmä testausaktiviteettejä, joilla on yhteisiä ominaisuuksia joiden perusteella ne voidaan tunnistaa omana luokkanaan, ja jotka on ryhmitelty arvioimaan yhtä tai useampaa toisiinsa liittyvää laatuominaisuutta.

    • Voi sijoittua yhdelle tai useammalle testaustasolle ja testausvaiheeseen.

    • Kaikki eivät aina tarpeellisia - käytännössä testaustyypit muodostavat tarkastuslistan mahdollisesti katettavista asioista

  • Testaustyypit jakaantuvat toiminnallisiin ja ei-toiminnallisiin


Toiminnallisen testauksen testaustyyppej

Toiminnallisuustestaus (functionality testing, feature testing)

Yhtäaikaisuustestaus (concurrency testing)

Asennustestaus (installation testing)

Alustatestaus (platform testing)

Aloitustestaus (build verification testing, smoke testing)

Konfiguraatiotestaus (configuration testing)

Yhteensopivuustestaus (compatibility testing)

Rinnakkaistestaus (end-to-end testing)

Rajapintatestaus (interface testing)

Poikkeustilannetestaus (recovery testing)

Lokalisointitestaus (localization testing)

Dokumentaation testaus (documentation testing)

Aineiston laadun testaus (data quality testing)

Alfatestaus (alpha testing)

Betatestaus (beta testing)

Muuntotestaus (conversion testing)

Tuotantotestaus (production testing, operational testing)

Standardien testaus (standards testing)

Toiminnallisen testauksen testaustyyppejä


Ei toiminnallisen testauksen testaustyyppej

Luotettavuustestaus (reliability testing)

Suorituskykytestaus (performance testing)

Kuormitustestaus (load testing)

Rasitustestaus (stress testing)

Paljoustestaus (volume testing)

Kestävyystestaus (endurance testing)

Tietoturvatestaus (security testing)

Käyttöturvallisuuden testaus (safety testing)

Käytettävyystestaus (usability testing)

Esteettömyystestaus (accessibility testing)

Palautettavuustestaus (recoverability testing)

Tuettavuustestaus (supportability testing)

Ylläpidettävyystestaus (maintainability testing)

Siirrettävyystestaus (portability testing)

Koodin laadun testaus (code quality testing)

Ei-toiminnallisen testauksen testaustyyppejä


Tasot vaiheet ja tyypit

Tasot, vaiheet ja tyypit

Hyväksymistestaus

Järjestelmätestaus

Integrointitestaus

uusinta

Yksikkötestaus

uusinta


Testausaktiviteettien rytmitys 1 2

Testausaktiviteettien rytmitys (1/2)

  • Testien suoritus tarvitsee version ohjelmistosta

  • Testausryhmä saa ohjelmiston testaukselle tehtyjen julkaisujen kautta (koonnit ja julkaisut)

  • Ohjelmistoversion sisältö ohjaa ja rajaa tehtävää testausta

    • Riskien toteutumisen arviointi vaatii pääsyn sopivaan toiminnallisuuteen

    • Tärkeimmät löydettävissä olevat virheet riippuvat toteutuksen vaiheesta ja kypsyydestä

    • Testauksen syvyyden pitäisi peilata riskejä, joiden selviämisajankohtaa ei voi määrittää projektin alussa


Testausaktiviteettien rytmitys 2 2

Testausaktiviteettien rytmitys (2/2)

  • Joissain asioissa ajoissa valmistelu ja suunnittelu voi olla liian ajoissa

    • Muutos mitätöi suunnitelman

    • Muutoksen aiheuttama lisätyö luo haluttomuutta muuttaa testauksen suuntaa

  • Tavoitteena oikea-aikainen suunnittelu: Tee testauksen suunnittelu juuri ajoissa ilman, että hukkaat aikaisen työn avainhyödyt.


In synch vs off synch testaus

In-synch vs. off-synch testaus

  • Tarvittavien valmistelujen kesto asettaa aktiviteettien rytmin

    • In-synch testaus koostuu testaustehtävistä jotka voidaan tehdä samassa rytmissä kuin jossa kehitys etenee, jatkuvaan tyyliin.

    • Off-synch testaus tarkoittaa tyypillistä näkymää suunniteltuun ja valmisteltuun testaukseen, jonka valmistelu ja suorittaminen vie liikaa aikaa ollakseen luonnollisesti integroitu kehityksen päivittäiseen/viikottaiseen rytmiin.

  • Rytmin huomioiminen

    • Tuo rakennetta lyhyen aikavälin suunnitteluun muistuttaen eri aikaväleistä joilla asioita tehdään testauksessa

    • Tuo joustoa pitkän aikavälin suunnitteluun ottaen kantaa tehtäviin joita ei kannata suunnitella erillisinä.


Palautteen ajoitus

Palautteen ajoitus

Järjestelmä 1

Järjestelmä 2

Testaus on mekanismi, jolla huomataan jos osa ei toimi. Kuinka saavuttaa nopea palaute?


2 testaus ohjelmistokehityksen osana4

Käsiteltävät asiat

Testauksen V-malli

Suunnittelua elinkaaressa

Testaus-prosessi

Testattavuus ja laatu

2 – Testaus ohjelmistokehityksen osana


Ohjelmistokehitystoiminnan j sent minen

Ohjelmistokehitystoiminnan jäsentäminen

Järjestelmän elinkaari

Järjestelmäkehityksen elinkaari

Hanke

Projekti

Uuskehitys

Jatkokehitys

Ylläpito

Hankinta


Kehitys vs hankkijaorganisaatio

Kehitys- vs. hankkijaorganisaatio

  • Kehitysorganisaatio

    • järjestelmän luominen – toteutus ja testaus

  • Hankkijaorganisaatio

    • järjestelmän ostamisen, integroinnin ja/tai käyttöönoton miettiminen

  • Eroja liiketoimintamallissa:

    • Tuoteliiketoiminta: myytävä kokonaisuus on tuote

    • Projektiliiketoiminta: myytävä kokonaisuus on asiakastilausprojekti

    • Erona: onko hankkijaorganisaatio asiakas (projektiliiketoiminta) vai käyttäjä (tuoteliiketoiminta)


Ohjelmistokehityksen elinkaarimallit

Ohjelmistokehityksen elinkaarimallit

  • Ohjelmistokehityksen elinkaarimallit (käytetään myös nimeä ohjelmistoprosessimalli) kuvaavat hankkeen/projektin kehityksen organisointia

    • Aktiviteetteja ja vaiheita

  • Oleellisesti kolme hyvin erilaista perusrakennetta:

    • Vesiputousmalli – ”tarvittava kokonaisuus kerralla vaiheistetussa toteutuksessa”

    • Iteratiivinen ja inkrementaalinen – ”tarvittava kokonaisuus toteutuserissä”

    • Ketterä – ”inkrementaalinen muutos- ja ihmiskeskeisin arvoin”


Testausprosessi ja sidosryhm t

Testausprosessi ja sidosryhmät


Testausprosessi muokattu pol van veenendaal tmap

Testausprosessi Muokattu: Pol & Van Veenendaal. TMap.

Testitapaukset

Valmistelu

Määrittely

Suoritus

Lopetus

Suunnittelu ja hallinta (projektinäkökulma)

Strateginen suunnittelu ja hallinta (elinkaarinäkökulma)

Yleistestaussuunnitelma

Testausstrategia


Strateginen suunnittelu ja hallinta

Strateginen suunnittelu ja hallinta

  • Missio ja strategia

  • Organisaation yhteinen toimintatapa

  • Projektin ulkopuolinen testaustoiminta

    • Alustan versioiden hyväksymistestaus

    • Automaatioarkkitehtuurin ylläpito

    • Välinetuki ja hyötyjen arviointi

    • Koulutus

    • Testausprojektin vertailu


Suunnittelu ja hallinta

Suunnittelu ja hallinta

  • Testaussuunnittelu

    • Tavoitteet ja laaturiskit

    • Aikatauluraamit

    • Lähestymistapa

    • Resurssointi

  • Hallinta

    • Seuranta

    • Korjaustoimenpiteet

    • Eskalointi ja ongelmanratkaisu

    • Testauksen laadun arviointi

    • Viestintä sidosryhmille


Valmistelu

Valmistelu

  • Vaatimuskatselmointi

  • Testattavuuskatselmointi

  • Testausvaatimusten tunnistaminen

  • Ympäristöjen valmistelu

  • Aineistojen valmistelu

  • Tiedon kerääminen


M rittely

Määrittely

  • Riskien tunnistaminen

  • Testitapausten määrittely

  • Testitapausten priorisointi

  • Testiaineiston määrittely

  • Ympäristöjen pystyttäminen

  • Testien automatisointi


Suoritus

Suoritus

  • Julkaisut testaukseen

  • Aloitustestit

  • Testiaineistojen alustaminen

  • Testien suoritus

  • Uusintatestaus

  • Uudelleentestaus

  • Testitapausten ja automaation ylläpito

  • Testauksen tulosten kirjaaminen

  • Havaintojen käsittely


Lopetus

Lopetus

  • Testattavuusyhteenveto

  • Testauksen tulosten yhteenveto

  • Testauksen kokemusten yhteenveto

  • Testauksen materiaalien päivitys ja paketointi

  • Testausryhmän purkaminen


Suunnitelmaohjattu vs tutkiva testaus

Suunnitelmaohjattu vs. tutkiva testaus

  • Suunnitelmaohjatussa testauksessa testitapaukset suunnitellaan ennen testien suoritusta

    • Skriptaus tuottaa yksityiskohtaisen suunnitelman

    • Askel-askeleelta prosessi – testausprosessi koostuu vaiheista

    • ”Mitä testejä pitäisi ajaa?”

  • Tutkivassa testauksessa testitapauksia suunnitellaan testejä suoritettaessa

    • Etukäteen ei voida ennustaa testien yksityiskohtia, jotka riippuvat ohjelmiston tilasta

    • Usein pohjaa korkeamman tason jäsennykseen

    • Eteen-taakse prosessi – testausprosessi ei vaiheita, vaan toistettavia tehtäviä

    • ”Mikä on paras testi, jonka voin suorittaa juuri nyt?”


Testausl hestymistapojen vastakkainasettelu

Testauslähestymistapojen vastakkainasettelu

  • Skriptatussa testauksessa testitapaukset suunnitellaan ja dokumentoidaan ensin. Myöhemmissä vaiheissa ne voidaan suorittaa saman tai eri henkilön toimesta.

    vs.

  • Tutkivassa testauksessa testit suunnitellaan ja suoritetaan yhtäaikaisesti ja niitä ei yleensä dokumentoida yksityiskohtaisesti.

Testit

Testit

Ohjelmisto


Tutkiva vs valmistelematon testaus

Tutkiva vs. valmistelematon testaus

  • Valmistelematon testaus (ad hoc testing): Testaustoimintaa, jossa virheiden etsiminen on valmistelematonta. Testausta ei suunnitella, tavoite testaamiselle ei ole selvillä, tuloksille ei ole odotuksia ja tekemistä ohjaa satunnaisuus.

  • Joskus jaetaan suunnattuun ja suuntaamattomaan valmistelemattomaan testaukseen, jossa suunnattu valmistelematon testaus on tutkivaa testausta eikä itse asiassa valmistelematonta.


Tutkiva testaus prosessina

Tutkiva testaus prosessina

Tutkiva

Täydentäjä

- Suunnitel-tujen testien laajentajana

Sessio

- rajatulla ajalla

Ryhmä

- rajatulla ryhmällä

Projekti

- Koko toiminnan prosessina

Suunnitelmaohjattu


Vaihtoehtojen punnitsemista testausprosessia suunnitellessa

Vaihtoehtojen punnitsemista testausprosessia suunnitellessa

Soveltuvin prosessimuoto

päivittäinen kehittäjän tekemä testaus

testaaja-kehittäjäparit työnjakona

in-synch

Tutkivaa testausta

Rytmitys

inkrementaalinen järjestelmätestaus, jossa toteutuserä voi olla projektin sisäinen tai koko projekti

inkrementaalinen integraatio

off-synch

Suunnitelma-ohjattua testausta

tekninen näkökulma

käyttäjänäkökulma

Testauksen fokus


2 testaus ohjelmistokehityksen osana5

Käsiteltävät asiat

Testauksen V-malli

Suunnittelua elinkaaressa

Testaus-prosessi

Testattavuus ja laatu

2 – Testaus ohjelmistokehityksen osana


Testattavuuden m ritelm

Testattavuuden määritelmä

  • Testattavuudella tarkoitetaan

    • kykyä suorittaa kustannustehokasta testausta (Gelperin)

    • ominaisuuksia jotka vaikuttavat muutetun ohjelmiston varmistamisen työmäärään (ISO9126)

    • mahdollisuuksia, jotka muut osapuolet antavat testaaville osapuolille

  • Testattavuus voi kohdistua:

    • testattavaan järjestelmään

    • testauksen pohjana oleviin vaatimuksiin, määrittelyihin ja dokumentaatioon


J rjestelm n testattavuuden riskitilanne

Järjestelmän testattavuuden riskitilanne

Liiketoiminta-suunnittelija

Ohjelmisto-suunnittelija

Testisuunnittelija

Ohjelmisto-kehittäjä

Testien kehittäjä

Testattava järjestelmä

Testaus-järjestelmä


Tavoiteltava testattavuus

Tavoiteltava testattavuus

Liiketoiminta-suunnittelija

Ohjelmisto-suunnittelija

Testisuunnittelija

Ohjelmisto-kehittäjä

Testien kehittäjä

Testattava järjestelmä

Testaus-järjestelmä


J rjestelm n testattavuuden keskeisimm t tekij t

Järjestelmän testattavuuden keskeisimmät tekijät

  • Hallinta

    • Helppo testata

    • Liittymä, jota kautta käyttö mahdollista

    • Kyky käyttää järjestelmän osia hallitusti (syötteet, tapahtumien käynnistys, metodikutsut, GUI-elementtien käyttö, rajapinnat, dedikoitu testausliittymä)

    • Kyky tuottaa syötteitä ja saavuttaa ohjelmiston tiloja.

  • Näkyvyys

    • Helppo tulkita tuloksia

    • Kyky seurata testattavan ohjelmiston tiloja ja syötteistä seuraavia tuloksia.

    • Virhetilanteen syiden jäljittäminen helppoa, tapahtumien suhteet selvät

    • Lasilaatikko, jonka sisälle nähdään (tulokset, tilat, ominaisuudet, järjestelmän vuorovaikutus, resurssien käyttö, virheet)


J rjestelm n testattavuuden muita tekij it

Järjestelmän testattavuuden muita tekijöitä

  • Vakaus

    • Muutosten laajuus ja muutostapahtumien tiheys

    • Vaikuttaa testien ylläpitotarpeeseen

  • Yhdenmukaisuus

    • Samanlaiset osat käyttäytyvät samalla tavalla

    • Mahdollistaa testien uudelleenkäytön eri osissa

  • Luotettavuus

    • Järjestelmä tekee mitä oli tarkoituskin

    • Testien toistaminen samoissa tilanteissa tuottaa samat tulokset, eli saman tilanteet voidaan saada aikaan

  • Dokumentaatio

    • Tieto siitä kuinka järjestelmän piti toimia


Vaatimus vs testausvaatimus

Vaatimus vs. Testausvaatimus

Vaatimukset ja testausvaatimukset eivät ole 1:1 tai varsinkaan samat!

  • Vaatimusten testatattavuus:

  • - Kyky nähdä ja ymmärtää vaatimus konkreettisesti toteutettuna

  • Kyky mitata vaatimuksen toteutumista

Vaatimus

Näiden välinen yhteensopivuus on vaatimusten testattavuus

Vaatimusten testattavuudesta seuraa pienempi kustannus testausta valmistellessa

Testausvaatimus

Testitapaus

Testitapaus

Testitapaus


Vaatimukset testauksessa l hde kaner bach pettichord 2002 lessons learned in software testing

Vaatimukset testauksessaLähde: Kaner, Bach, Pettichord. 2002. Lessons Learned in Software Testing.

  • Vaatimus on ominaisuus tai asia joka merkitsee jollekulle joka merkitsee

  • Määritelmä toimii hyvin testaajalle

  • Osalliset

    • Eri osapuolilla eri tarpeita

    • Eivät välttämättä tiedä mitä haluavat

    • Mitä haluavat muuttuu ajan myötä

  • Monia muotoja ja lähteitä


Mist testaus saa vaatimukset l hde kaner bach pettichord 2002 lessons learned in software testing

Mistä testaus saa vaatimukset? Lähde: Kaner, Bach, Pettichord. 2002. Lessons Learned in Software Testing.

  • ”Jos odotat saavasi vaatimukset paperinippuna joka on leimattu yleispätevän totuuden leimalla, etsi toinen työ”

    • Parhaissa tapauksissa dokumentaatio on epätäydellistä ja moniselitteistä, mutta silti valaisevaa ja avuksi

  • Kolme keskeistä tapaa saada vaatimuksia

    • Keskustelu: Puhu jonkun kanssa jolla on merkitystä siitä millä on merkitystä

    • Päätelmä: Johda vaatimukset siitä mitä tiedät projektista ja tuotteesta

    • Maininta: Suorat ja epäsuorat määrittelyt


K ytt j toiveet vaatimukset m rittelyt ja tekniset m rittelyt

Käyttäjätoiveet, vaatimukset, määrittelyt ja tekniset määrittelyt

Vaatimukset

Käyttäjätoiveet

Liiketoiminta-vaatimus

Käyttäjä-vaatimukset

(vaatimusmäärittely)

Tekniset määrittelyt

(arkkitehtuuri, komponentit)

Testausvaatimus

Testausvaatimus

Testausvaatimus

Testausvaatimus

Testitapaus

Testitapaus-arkkitehtuuri

Testitapaus

Testitapaus

Testien uudelleenkäyttö eri tasoilla


Vaatimukset vs testaus n k kulma vaatimuksiin

Vaatimukset vs. Testaus- näkökulma vaatimuksiin

Vaatimus-näkökulma keskittyy tarkkojen vaatimusten dokumentoin-tiin

”näin sovittiin suullisesti”

”yleiset pelisäännöt ja kikat”

Dokumen-toimaton

Testaus keskittyy kaikkiin näkökulmiin;

toteutus tarvitsee yksinkertai-suutta!

”tekijät eri mieltä, mutta tekstistä ei huomaa”

Dokumen-toitu

Suora

Epäsuora


Laadun ymm rt minen

Laadun ymmärtäminen

  • Laatua on pyritty jäsentämään laatumalleihin

    • Mm. ISO 9126

  • Laatua pitää tarkastella eri sidosryhmien näkökulmasta

    • Käyttäjä ja asiakas

    • Kehitysorganisaatio

  • Usein haastavimpia asioita on päättää kenellä on oikeastaan väliä.

    • Testaajan pitäisi tuoda esiin havaitsemiaan riskejä loppullisen laatukokemuksen suhteen.


Laatuodotukset vs laatukokemukset

Laatuodotukset vs. Laatukokemukset

  • Odotus

    • Käyttäjien ja asiakkaiden uskomukset järjestelmän tarjoaman laadun tasosta

    • Kohtuuttomat odotukset ovat tyypillisesti oire vaatimusten keräämisen, liiketoiminta-analyysin tai muutostenhallinta-aktiviteettien epäonnistumisesta

    • Testaus ei voi suoraan vaikuttaa kohtuuttomiin vaatimuksiin testausprosessissa

  • Kokemus

    • Mielipiteet yhdistettynä käyttäjien ja asiakkaiden järjestelmän kanssa saadun kokemuksen myötä syntyneisiin yleisiin tyytyväisyyden ja tyytymättömyyden tasoihin

  • Odotusten ja kokemusten yhdistäminen  tyytyväinen asiakas


Iso 9126 1 laatuominaisuudet

ISO 9126-1 laatuominaisuudet


Erilaisten laatuominaisuuksien painottuminen

Erilaisten laatuominaisuuksien painottuminen

  • Perinteisesti paino toiminnallisuudella

  • Kasvanut paino käytettävyydellä

    • Ohjelmistot tulossa yleisemmiksi

    • Käytettävyys pitää olla sisäänrakennettuna kuten kaikki laatu

    • Käytettävyys = Käyttöliittymä + toiminnallisuuden logiikka

  • Kasvanut paino suorituskyvyllä

    • Erityisesti käyttäjämäärien skaalaamisessa

  • Tietoturvan paino lisääntymässä

    • Uusi ”vuosi 2000” onkin ”puskuriylivuoto”


Laatumalli ei kokonaiskuva

Laatumalli ei kokonaiskuva

  • Vertaa lentosimulaattori

    • Pelitarkoituksiin - oleellista on pelattavuus, hauskuus ja opettavaisuus sellaiselle, joka ei oikeaa konetta ole lentänyt.

    • Opetussimulaattori - realismi on keskeistä ja simulaattorin pitää hallita erilaiset lentokoneen ohjaajan mahdollisesti kohtaamat tilanteet.

  • Molemmissa kovat, mutta erilaiset laatuvaatimukset

  • Miten peilaisit tämän ISO9126-jakoon?


Maailma muuttuu vaatimukset muuttuvat

Maailma muuttuu – vaatimukset muuttuvat

Ennen

Nykyään


K ytt j n n k kulma eroaa omastasi

Käyttäjän näkökulma eroaa omastasi

  • Kaikilla sidosryhmillä on erilaiset näkökulmansa

    • Asiakas

    • Käyttäjä

    • Ohjelmoija

    • Projektipäällikkö

    • Testaaja

  • Huomaa: virheetön tuote ei välttämättä kelpaa käyttäjälle

    • Käyttäjäskenaariot (käyttötapaukset) pitäisi kelpuuttaa

    • Vaatimukset pitäisi kelpuuttaa

    • Käytettävyystarpeet pitää ottaa huomioon

    • Dokumentaatio pitää testata

    • Asiakaspalautteen prosessin pitää toimia

    • ”Absence of errors fallacy” - Weinberg


Yhteenveto

Yhteenveto

  • Testausprosessia on ajateltava useista näkökulmista: V-malli ja testaustasot, tason sisäinen prosessi, testaus suhteessa sidosryhmiin, elinkaari ja projekti

  • Testaustasot ja testaustyypit kuvaavat perusrakenteen tarvittaville näkökulmille, mutta eivät kiinnitä tehtävien suoritusjärjestystä

  • Testattavuus laajentaa testauksen roolia pelkästä vastaanottajasta aktiivisemmaksi toimijaksi


Linkkej ja vinkkej

Linkkejä ja vinkkejä

  • Kirjoja:

    • Craig&Jaskiel.

      • Hyvä perusteos testauksesta. Etenkin V-mallin kuvaus ansiokas.

  • Artikkeleita:

    • Pyhäjärvi, M., & K. Rautiainen "Integrating Testing and Implementation into Development", Engineering Management Journal, June 2004.

  • Täydentävät jatkokurssit:

    • Riskiperusteinen testaus

  • Syventävät jatkokurssit:

    • Testauksen opit vaatimusten määrittelyyn ja hallintaan

    • Tutkiva testaus

    • Tietoturvatestaus

    • Suorituskykytestaus

    • Käytettävyystestaus


  • Login