Testaus teoriassa ja käytännössä. Jukka Paakki Helsingin yliopisto Tietojenkäsittelytieteen laitos



Samankaltaiset tiedostot
Software engineering

Automaattinen regressiotestaus ilman testitapauksia. Pekka Aho, VTT Matias Suarez, F-Secure

Ohjelmistotekniikka - Luento 2

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät

Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi. Verifiointi- ja validointitekniikat. Verifiointi- ja validointitekniikat II

Tapahtuipa Testaajalle...

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Ohjelmistoprosessit ja ohjelmistojen laatu Kevät Ohjelmistoprosessit ja ohjelmistojen laatu. Projektinhallinnan laadunvarmistus

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2015

Johdantoluento. Ohjelmien ylläpito

Testaaminen ohjelmiston kehitysprosessin aikana

Standardin IEC testaustekniikoista. V-malli vai ketterämpi prosessi?

ITK130 Ohjelmistojen luonne

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Testaustyökalut. Luento 11 Antti-Pekka Tuovinen. Faculty of Science Department of Computer Science

Yhteenveto. Menettelytavat

Ohjelmistojen testaus

Ohjelmistotuotanto, verifiointi ja validointi Syksy Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi

Oleelliset vaikeudet OT:ssa 1/2

Advanced Test Automation for Complex Software-Intensive Systems

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Ohjelmistojen mallinnus, s2008 HY/TKTL, 28/10/2008. Harri Laine 1. Ohjelmisto

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

Työkalut ohjelmistokehityksen tukena

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Myös opettajaksi aikova voi suorittaa LuK-tutkinnon, mutta sillä ei saa opettajan kelpoisuutta.

Testiautomaatio tietovarastossa. Automaattisen regressiotestauksen periaate ja hyödyt

Laatukustannukset. Laadun hallinta. Laadun kustannuksista

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Laadun hallinta. Laatukustannukset. Laadun kustannuksista. Sami Kollanus TJTA330 Ohjelmistotuotanto

Laadun hallinta. Laatukustannukset. Sami Kollanus TJTA330 Ohjelmistotuotanto

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

Ohjelmistotuotanto s

Globaalisti Hajautettu Ohjelmistokehitys Mitä, Miksi & Miten? Maria Paasivaara

Ohjelmistoihin perustuva liiketoiminta: haasteita ja mahdollisuuksia

Laadunvarmistustekniikat

Tietojenkäsittelytieteen tutkintovaatimukset

AUTOMATISOITU REGRESSIOTESTAUS SULAUTETUN JÄRJESTELMÄN KEHITYSTYÖSSÄ

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Laadunvarmistustekniikoita. Ohjelmistotuotanto. Testaus termejä. Testaus periaatteita. Testaus havaintoja. Testaus havaintoja

7. Verifiointi ja validointi

Korkean resoluution ja suuren kuva-alueen SAR

Ohjelmistotekniikan menetelmät, kesä 2008

Tietotekniikan Sovellusprojektit

Wipron Suomen toimipisteen ohjelmistotestauksen kehittäminen. Marko Isoaho

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2015

1. Johdanto. Ohjelmistotuotannon ongelmia

Ketterä vaatimustenhallinta

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

Työkalujen merkitys mittaamisessa

Fujitsu SPICE Lite. Kimmo Vaikkola Fujitsu Finland Oy Laatu ja liiketoimintatavat. Copyright 2010 FUJITSU

PlugIT-projektin työsuunnitelma 3. jaksolle EHDOTUS johtoryhmälle, Koko projektin keskeiset tehtävät

Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistoprosessit ja ohjelmistojen laatu (4op)

Ohjelmistotuotanto, s /27/2003

Testausprosessin vaatimukset. 2. Testausprosessi (Artikkelit) Vesiputousmallin ongelmia. V-mallin neljä osavaihetta. Testausprosessimalli V-malli

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2015

Kontrollipolkujen määrä

Ohjelmiston toteutussuunnitelma

Testaustyökalut Sini Mäkelä

Ohjelmistotuotantoprojekti

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Ohjelmistotekniikan menetelmät, kevät 2008

WCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Julkaisemattomia koulutusmateriaaleja

Dynaaminen analyysi IV

Ohjelmistotestauksen perusteita I Luento 1 Antti-Pekka Tuovinen

2. Ohjelmistotuotantoprosessi

Dynaaminen analyysi IV Luento 6 Antti-Pekka Tuovinen

Tutkittua tietoa. Tutkittua tietoa 1

Käytettävyyslaatumallin rakentaminen web-sivustolle. Oulun yliopisto tietojenkäsittelytieteiden laitos pro gradu -suunnitelma Timo Laapotti 28.9.

Kokonaisvaltainen mittaaminen ohjelmistokehityksen tukena

Ohjelmistoprosessit ja ohjelmistojen laatu kevät Suunnitelmakeskeiset prosessit (lukuisia lähteitä)

Ohjelmistoprosessit ja ohjelmistojen laatu kevät 2009

Testaus käsite. Sekalaista testausasiaa. Testauksen käsitteestä. Kattavuusmitat. Jos ajatellaan, että testaus = V&V, voidaan erottaa:

Ohjelmistojen laadun parantaminen refaktoroinnilla Simo Mäkinen Tietojenkäsittelytieteen laitos Helsingin yliopisto

Ohjelmistotestaus: Testausprosessin luonti ja. kehittäminen

Käytettävyyslaatumallin rakentaminen verkkosivustolle

Σ!3674. Advanced Test Automation for Complex Software-Intensive Systems

Testaus osana ohjelmistojen elinkaarta II

Testi generaattori. Testien ajotyökalu. Kuva 1. Offline mallipohjainen testaus

1.3 Katsaus ohjelmistotuotannon kehittymiseen

CMM Capability Maturity Model. Software Engineering Institute (SEI) Perustettu vuonna 1984 Carnegie Mellon University

CMMI CMM -> CMMI. CMM Capability Maturity Model. Sami Kollanus TJTA330 Ohjelmistotuotanto Software Engineering Institute (SEI)

CMMI CMMI CMM -> CMMI. CMM Capability Maturity Model. Sami Kollanus TJTA330 Ohjelmistotuotanto

OHJELMISTON TESTAUKSEN AUTOMATISOINTI

Mallintarkistus ja sen

Hyväksymistestauksen tarkistuslista järjestelmän hankkijalle

Ohjelmiston testaus ja laatu. Testaus käytettävyys

WCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma

Ohjelmien testaustyökalut

Turvakriittisen projektin menetelmät ja työkalut

Kokemuksia ja näkemyksiä teollisuusmatematiikan koulutuksen kehittämisestä

KONTTI - Teolliset komponenttiohjelmistot Tekesin ETX-ohjelma

TIETOTEKNIIKKA Koodi Vanha opintojakso op ov Vastuuhenkilö LV vastaavat opinnot tai korvaava suoritustapa TTE.

9. Luento: Ohjelmistotyö. Tommi Mikkonen,

SataSPIN. Prosessien parantaminen verkostoitumalla. Porin korkeakouluyksikkö, TTKK

Katselmoinnit. review) Katselmoinnit (review( Mitä ovat katselmoinnit? Katselmoinnin määritelmä (IEEE 1988)

Mitä prosessissa kehitetään. Prosessin kehittäminen. Kehittämisen tavoitteita. Perusasioita kehittämisessä. Pohjana esim. CMM

Ohjelmistoprosessit ja ohjelmistojen laatu Kevät Ohjelmistoprosessit ja ohjelmistojen laatu. Projektinhallinnan laadunvarmistus

Transkriptio:

Testaus teoriassa ja käytännössä Jukka Paakki Helsingin yliopisto Tietojenkäsittelytieteen laitos

Teoria = tutkimus IEEE Transactions on Software Engineering, 2000-2002 Software Testing, Verification & Reliability, 2000-2002 International Symposium on Software Testing and Analysis, 1998-2000

virhetiheyden arviointi capture-recapture-menetelmällä virhetiheyden ennustaminen ohjelmiston muutoshistorian avulla virhehajonnan ja suoritushahmojen yhteisvaikutuksen simulointi vikojen välisten riippuvuuksien teoretisointi testikattavuuden salattu osoittaminen salakirjoitustekniikoilla optimaalinen tietovuokattavuus rinnakkaisohjelmien all-du-polkukattavuus optimaalinen ekvivalenssiluokitus rajapintojen mutaatiotestaus olioperustaisten testausmenetelmien tehokkuuden arviointi mutaatiomenetelmällä mutaatio-operaattorien tehokkuus C-ohjelmien yksikkö- ja integrointitestaus mutaatiomenetelmin C-ohjelmille riittävät mutaatio-operaattorit

GUI-testitapausten automaattinen generointi source-to-source-kääntäjien testitapausten generointi testitapausten automaattinen generointi rajapintavirheitä varten testitapausten automaattinen generointi geneettisillä algoritmeilla testitapausten automaattinen generointi rajoitelaskennalla testitapausten automaattinen generointi rajoitelogiikkaohjelmoinnilla ja symbolisella laskennalla testijonojen generointi propositiologiikalla parametrijoukon kattavien testitapausten automaattinen generointi testiaineiston generointi Z-spesifikaatiosta luokkien testiajureiden generointi testitapausten valinta ja generointi spesifikaation avulla tilakoneiden testitapausten valinta testitapausten satunnaisvalinnan ja ekvivalenssiluokituksen vertailu testiaineiston ja testitapausten minimointi

regressiotestauksen tehokkuuden ennustaminen regressiotestauksen testitapausten priorisointi regressiotestitapausten automaattinen generointi kontrollivuomenetelmien rajoitukset regressiotestitapausten valinnassa regressiotestausvirheiden ja ohjelmistoversioiden välisten erojen empiirinen vertailu C++-ohjelmien regressiotestitapausten valinta rinnakkaisohjelmien viipalointi ehdollinen viipalointi ekvivalenssiluokkien testaamiseen ekvivalenttien mutanttien tunnistaminen viipaloinnilla (Javan) poikkeusmekanismien testaus osoittimien tietovuoanalyysi

GUI-järjestelmien visuaalinen testausympäristö testauksen hallinta bayeslaisilla graafisilla malleilla luokkien automatisoitu testaaminen UML-pohjainen automatisoitu integrointitestaus automaattinen virheidenetsintä simuloidulla jäähdytyksellä haara- ja tietovuokattavuustestauksen sekä mustalaatikkotestauksen vertailu suhteessa luotettavuuteen spesifikaation ja toteutuksen välisen vastaavuuden formaali tarkistaminen onko todistaminen edullisempaa kuin testaaminen? formaalin spesifioinnin ja testaamisen yhdistäminen virheiden löytäminen rajoitelaskennalla eri virheenpaljastusmenetelmien yhdistetty malli

Käytäntö = teollisuus (Yrityksissä tehdyt) pro gradu tutkielmat, Helsingin yliopisto, tietojenkäsittelytieteen laitos, 1999-2002

ohjelmistojen luotettavuuden mittaaminen hajautettujen järjestelmien suorituskyvyn mallintaminen ja analysointi hajautetujen sovellusten suorituskyvyn testaus lokianalyysi osana hajautettujen järjestelmien virheenhallintaprosessia Web-sovellusten suorituskykymittaukset

DX 200 puhelinkeskuksen suorituskyvyn mittaaminen puhelinkeskuksen reaaliaikatietokannan kapasiteettitestaus IPv6-protokollan toimintotestaus DX 200 puhelinkeskuksessa OSPF:n protokollatestaus DX 200 järjestelmässä TTCN ja ASN.1 protokollien testauksessa eräiden sulautettujen järjestelmien vikadiagnostiikka testauksen automatisoinnin prosessi automatisoitu testaus XP-menetelmässä + olio-ohjelmien automaattinen testaaminen ohjelmiston kompleksisuuden ja ylläpidettävyyden välisen korrelaation analysointi virhetietokannan avulla

Teoria (tutkimus) käytäntö (teollisuus) Tutkimus tieteelliset ongelmat uudet tieteelliset tulokset syvällisyys, yleisyys, teoreettinen perusta radikaalisti uudet menetelmät malli / menetelmä ratkaiseva, ei toteutus tiedeyhteisö itse päättää laadusta sisäisesti Teollisuus liiketoiminta uudet myytävät tuotteet nopeus, toimivuus, peritty kohdeympäristö konservatiivisesti varmat menetelmät toteutus ratkaiseva, ei malli / menetelmä ulkoinen asiakaskunta päättää laadusta

Miksi yliopistoissa ei tutkita mitään järkevää (käytännöllistä)? käytännöllisyys kuuluu yrityksille, ei yliopistoille käytännön toteutuksia (tuotteita) kehittävä yliopisto olisi normaali yritysalihankkija eikä tutkimuslaitos ja tekisi siten väärää työtä käytännön ongelmat liian lyhytnäköisiä, suppeita, teknispainotteisia ja vain tiettyyn järjestelmään sidottuja (eli melko tylsiä) kelvatakseen tutkijoille tieteellisiksi tutkimuskohteiksi kukapa muukaan sitten tuottaisi suuria ideoita?

Kokemuksia teorian käytännöstä yritykset odottavat tutkijoiden ratkaisevan joko mahdottomia ongelmia tai niiden itsensä ongelmia usein ongelma on oikea, mutta ratkaisu väärä (esimerkkinä formaalit ohjelmistomenetelmät) usein ratkaisu on ok, mutta ei se toimi meidän ympäristössä (esimerkkeinä kaikki CASE-työkalujen prototyypit) yritykset haluavat tutkijoilta sekä ongelman ratkaisun että sen käytännössä toimivan toteutuksen ja lisäksi molempien viemisen yritysten liiketoimintaprojekteihin, mikä on mahdoton tehtävä käytännön ihmiset eivät tunne tutkimustyön tieteellisiä taustoja ja tavoitteita, jolloin lopputulostakaan ei oikein ymmärretä teorian saaminen teollisuuden hyötykäyttöön kestää vähintään 20 vuotta (eikä hyödyistä ole sitä ennen täyttä varmuutta) D.L. Parnas: On ICSE s Most Influential Papers. ACM SIGSOFT Software Engineering Notes 20, 3, 1995, 29-32.

Teoria (opetus) = käytäntö (teollisuus) pyritään opettamaan, miten asiat pitäisi tehdä (eikä, miten ne teollisuudessa tehdään) materiaali oppikirjoista, joihin se on suodatettu tieteellisistä artikkeleista ei tuoreimpia tutkimustuloksia, vaan kypsempiä ja paremmin tunnettuja käytäntöjä vähän käytännön oppikirjoja ei voida opettaa yritysten tapoja, vaan se jää niiden omalle vastuulle teollisilla luennoijavierailla useimmiten suppea näkökulma, mikä ei miellytä opiskelijoita?

Esimerkki 1: Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistotuotanto prosessina Ohjelmiston laatu ja sen mittaaminen laadun komponentit sisäisten attribuuttien mittaaminen ulkoisten attribuuttien mittaaminen resurssien käytön mittaaminen Ohjelmistotuotannon prosessimalleja ISO 9000 SPICE (Software Process Improvement and Capability determination) CMM (Capability Maturity Model) PSP (Personal Software Process) TSP (Team Software Process) Kevytprosessit (Extreme Programming) PSP-harjoituksia

Esimerkki 2: Ohjelmistojen testaus Ohjelmistojen laatukäsite Tarkastukset Testauksen ominaispiirteet ja rooli ohjelmistokehityksessä, V-malli Testausprosessi ja työkalut Toiminnallinen mustalaatikkotestaus (black-box) Rakenteellinen lasilaatikkotestaus (white-box) Integrointitestaus Regressiotestaus Tilastollinen testaus Testauksen käytännön ongelmia Laaja harjoitustyö

Teoria + käytäntö = Empiirinen (testaus)tutkimus tutkitaan, miten tietty prosessi, menetelmä tai työkalu toimii käytännön projekteissa tutkitaan : käytetään tieteellisiä menetelmiä käytännön projekteissa : kohteena jonkin tietyn yrityksen normaali projekti tai ohjelmistotuote tutkijat joko yrityksen omaa väkeä tai yliopistosta tulleita ulkopuolisia tarkkailijoita ja asiantuntijoita projektin läpivienti yrityksen toimesta, lisänä tutkimusosuus + teollisuus saa uskottavaa faktaa kehitystyönsä tueksi + tutkijat saavat validoitua (omia) tutkimustuloksia vaatii panostusta yritykseltä tulosten julkistaminen saattaa paljastaa liikesalaisuuksia

Teoria + käytäntö = Empiirinen (testaus)tutkimus Esimerkki 1: Yrityksen työntekijän pro gradu Satu Antikainen (Tellabs): The Effect of Internal Product Metrics on the Maintainability of Complex Software Products. Pro gradu C- 2002-10, Helsingin yliopisto, tietojenkäsittelytieteen laitos, 2002. Esimerkki 2: Tieteellinen empiirinen (kooste)artikkeli S.C. Ntafos: On Comparisons of Random, Partition, and Proportional Partition Testing. IEEE Transactions on Software Engineering 27, 10, 2001, 949-960.