TIE-21204 Ohjelmistojen testaus 2015 Harjoitustyö Vaiheet 1 ja 2 Antti Jääskeläinen Matti Vuori
Työn yleiset järjestelyt 14.9.2015 2
Valmistautuminen Ilmoittaudu kurssille Lue harjoitustyön nettisivut Lue kahden ensimmäisen vaiheen ohjeistus Selvitä kuka on työsi ohjaaja (Antti vai Matti) Ohjaajajaosta ilmoitetaan sähköpostitse Ohjaajasi vastaa kysymyksiin yksittäisistä työn tehtävistä ja arvostelee työsi Kysymykset projektin yleisistä järjestelyistä Antille Käy aiheeseen liittyvissä viikkoharjoituksissa (vapaaehtoista) 14.9.2015 3
Rakenne ja aikataulu Kolme vaihetta: 1. Tutkivan järjestelmätestauksen suunnittelu 2. Tutkivan järjestelmätestauksen suoritus ja raportointi 3. Mallipohjainen testaus Karkea aikataulu (tarkat ajat harjoitustyösivuilla): Viikko 38 Vaiheiden 1 ja 2 ohjausluento Viikko 41 Vaiheen 1 deadline Viikko 43 Vaiheen 1 palaute Viikko 46 Vaiheen 2 deadline Viikko 46 Vaiheen 3 ohjausluento Viikko 48 Vaiheen 2 palaute Viikko 49 Vaiheen 3 deadline Viikko 51 Vaiheen 3 palaute 14.9.2015 4
Palautukset Palautukset tehdään sähköpostitse To: testaus@cs.tut.fi From: @student.tut.fi-mailiosoitteesta Subject: TIE-21204_2015_<VAIHE>_<OHJAAJAN_NIMIKIRJAIMET> Liite: palautettavat tiedostot Onnistuneesta palautuksesta lähetetään kuittaus Tarkasta täsmälliset ohjeet harjoitustyösivuilta 14.9.2015 5
Arvostelu Harjoitustyöstä saatavilla kaikkiaan 16 pistettä Puolet koko kurssin pisteistä Kahdesta ensimmäisestä vaiheesta saatavilla 6 pistettä kummastakin Kolmannesta vaiheesta saatavilla 4 pistettä Nollan pisteen palautus on silti hyväksytty Kussakin vaiheessa on tehtävä palautus Kaikista vaiheista yhteensä on saatava vähintään 5 pistettä 14.9.2015 6
Harjoitustyön vaiheet 1 ja 2 14.9.2015 7
Yleistä 1/2 Testikohde: ohjelmoijan tekstieditori jedit, versio 5.3pre1CE CE tarkoittaa kurssin omaa versiota (course edition), johon on kylvetty bugeja version 5.3pre1 päälle CE-versio tulee saataville vasta kun suunnitteluvaihe on ohi Perusversio ja loppukäyttäjän dokumentaatio ovat saatavilla jeditin sivulla: http://www.jedit.org/ Varsinaisia spesifikaatioita ei ole tarjolla jedit on liian suuri tässä työssä kokonaan testattavaksi, joten priorisointia ja testattavien asioiden valintaa tarvitaan 14.9.2015 8
Yleistä 2/2 Testaustapa: tutkiva funktionaalinen GUI-testaus Ohjelmaa käytetään manuaalisesti käyttöliittymän läpi, kuten tavallinen käyttäjä Mustalaatikkotestausta, lähdekoodia ei tarkastella Ei yksityiskohtaisia testitapauksia, vain yleisiä suuntaviivoja siitä, mitä ominaisuuksia tarkastellaan ja miten Ei-funktionaalisia ominaisuuksia kuten käytettävyyttä tai suorituskykyä ei testata Virallinen testiympäristö: Lintulan Linux Työasemia luokissa TC205 ja TC217 Muitakin ympäristöjä kuten omia läppäreitä saa käyttää, mutta ohjelman pystyttäminen niihin on omalla vastuulla (ei kylläkään pitäisi olla vaikeaa) Lisätietoja vaiheiden 1 ja 2 tarkassa ohjeistuksessa 14.9.2015 9
Palautettavat dokumentit Vaihe 1 Testisuunnitelma <ONUM>_2015_1.pdf Vaihe 2 Pakkaus <ONUM>_2015_2.tar.gz, joka sisältää Testiraportin <ONUM>_2015_2.pdf Korjatun testisuunnitelman <ONUM>_2015_1_c.pdf Tai pelkkä raportti, jos korjauksia ei tarvittu Tarkasta täsmälliset ohjeet harjoitustyösivuilta 14.9.2015 10
Dokumentoinnin tärkeydestä Erityisesti järjestelmätestauksessa dokumentaatio on välttämätöntä kommunikoinnille Yksi tiimi voi kirjoittaa päätestaussuunnitelman, toinen tarkan testisuunnitelman, kolmas suorittaa testauksen, neljäs korjaa löydetyt virheet, ja manageri päättää onko softa valmis julkaistavaksi Kirjoita dokumentit muita ihmisiä ajatellen Voiko joku muu suorittaa testauksen suunnitelmasi avulla tarkoittamallasi tavalla? Voiko joku muu lukea testiraporttisi ja hahmottaa testikohteen tilanteen? Voiko jonkun muun testituloksia verrata omiisi? Voiko joku muu paikantaa löytämäsi virheet raporttiesi perusteella? Dokumentaatiota voidaan tarvita myös osoittamaan muille tahoille, että testaus on tehty riittävän hyvin 14.9.2015 11
Testisuunnitelma Johdanto Mitä olet tässä testaamassa? Ominaisuudet ja prioriteetit Mitä ominaisuuksia testikohteella on? Miten päätät, kuinka tärkeä ominaisuus on? Mitä ominaisuuksia testaat? Mitä ominaisuuksia et testaa? Lähestymistapa Miten pääset käsiksi testikohteeseen ja käytät sitä tarvittavalla tavalla? Mitä testauksen aikana pitää tehdä, ja miten? Läpäisykriteerit Miten päätät, kuinka vakava virhe on? Kuinka paljon ja kuinka vakavia virheitä testikohteessa voi sietää? 14.9.2015 12
Ominaisuudet ja prioriteetit Priorisointimenetelmä tarvitaan, jotta muut voivat määrittää vertailukelpoisia prioriteetteja muille ominaisuuksille Vaatimusmäärittelyä ei ole tarjolla tässä auttamaan Mikä ei ole harvinaista yrityksissäkään Harvat spesifikaatiot muutenkaan kuvaavat yleistä editorin toimintaa Mieti käyttäjän tarpeita: jedit on ohjelmoijan tekstieditori Menetelmän voi valita itse Esimerkiksi: ominaisuuksien todennäköisyys / vakavuus -analyysi Numeerinen arvio käytön yleisyydestä Numeerinen arvio häiriön aiheuttamasta haitasta Yhdistä prioriteetiksi Testattavien ominaisuuksien valinnan pitäisi heijastaa prioriteetteja, muttei tarvitse vastata niitä täysin 14.9.2015 13
Lähestymistapa Tutkivassa testauksessa ei ole testitapauksia tai muita yksityiskohtaisia toimintaohjeita Jonkinlaista ohjenuoraa tarvitaan silti varmistamaan, ettei mitään vahingossa unohdu Käyttöskenaarioita: käytä softaa tavalla, jolla sitä käytettäisiin oikeasti Esimerkkikäyttäjiä: käytä softaa kuten tietynlainen käyttäjä sitä käyttäisi Varmista, että tärkeät ominaisuudet ja niiden eri käyttötavat tulevat katetuiksi Muista negatiivinen testaus 14.9.2015 14
Läpäisykriteerit Miten virheen vakavuus määräytyy? Ominaisuuksien prioriteetit ovat relevantteja mutta eivät kerro kaikkea Miten virheen todelliset vaikutukset otetaan huomioon? Läpäisykriteerit Virheettömyyden vaatiminen ei ole realistista, yleensä joitakin virheitä on vain siedettävä Kuinka paljon ja millaisten vakavuuksien virheitä testikohteessa saa sitten olla? Onko muita kriteereitä joiden on täytyttävä? 14.9.2015 15
Testiraportti Johdanto Mitä olet testannut? Muutokset suunnitelmaan Suorititko testauksen suunnitelman mukaisesti? Kattavuusarvio Kuinka hyvin testikohde on nyt testattu? Tulokset Millaisessa kunnossa testikohde kaikkiaan on? Mitkä ovat merkittävimmät ongelmat? Arviointi Kuinka vakavia ovat löytämäsi virheet? Onko testikohde riittävän hyvässä kunnossa julkaistavaksi? 14.9.2015 16
Virheraportit Kerro mitä testikohteessa on vialla Otsikko ja/tai lyhyt kuvaus Selosta missä ja miten ongelma ilmenee Testiympäristö Suoritettavat toiminnot, syötteet Odotetut ja todelliset tulokset Motivoi ihmisiä korjaamaan ongelma Vaikutukset loppukäyttäjään Vaikutukset kehitykseen ja testaukseen 14.9.2015 17
Testiloki Tutkivassa testauksessa ei ole testitapauksia osoittamassa, mitä on tarkkaan ottaen tehty Tarvitaan testilokeja: testaaja tekee muistiinpanoja siitä, mitä ominaisuuksia testaa ja miten Pitää kirjaa testikattavuudesta Auttaa jäljittämään hankalasti toistettavia bugeja 14.9.2015 18