TIE Ohjelmistojen testaus 2016 Harjoitustyö Vaihe 3. Antti Jääskeläinen Matti Vuori

Samankaltaiset tiedostot
TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaihe 3. Antti Jääskeläinen Matti Vuori

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaiheet 1 ja 2. Antti Jääskeläinen Matti Vuori

TIE Ohjelmistojen testaus 2016 Harjoitustyö Vaiheet 1 ja 2. Antti Jääskeläinen Matti Vuori

TIE Ohjelmistojen testaus Harjoitustyön esittely osa 2: Vaiheet 3 & 4. Antti Jääskeläinen Matti Vuori

TIE Ohjelmistojen testaus Harjoitustyön esittely osa 2: Vaiheet 3 & 4. Antti Jääskeläinen Matti Vuori

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

Systemaattinen apina ja miten se tehdään fmbt:llä

TIE Ohjelmistojen testaus Harjoitustyön esittely osa 1: Yleisinfo ja vaiheet 1 & 2. Antti Jääskeläinen Matti Vuori

58160 Ohjelmoinnin harjoitustyö

T Testiraportti - järjestelmätestaus

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

Testausraportti. Orava. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

T Tietojenkäsittelyopin ohjelmatyö. Testiraportti, vaihe T1. Tietokonegrafiikka-algoritmien visualisointi. Testiraportti, vaihe T1

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

Convergence of messaging

S11-09 Control System for an. Autonomous Household Robot Platform

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä

Testausdokumentti. Sivu: 1 / 10. Ohjelmistotuotantoprojekti Sheeple Helsingin yliopisto. Versiohistoria

T Testiraportti - integraatiotestaus

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Test-Driven Development

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

T Testiraportti - integraatiotestaus

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3

Ohjelmoinnin perusteet Y Python

CVS. Kätevä väline usein päivitettävien tiedostojen, kuten lähdekoodin, hallitsemiseen

Onnistunut Vaatimuspohjainen Testaus

12. Näppäimistöltä lukeminen 12.1

UCOT-Sovellusprojekti. Testausraportti

Harjoitustyön testaus. Juha Taina

Ohjelmiston testaus ja laatu. Testaustasot

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

Testaussuunnitelma. Ohjelmistotuotantoprojekti Nero. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

Harjoitus 3 (viikko 39)

Test-Driven Development

815338A Ohjelmointikielten periaatteet Harjoitus 7 Vastaukset

Simulaattorin asennus- ja käyttöohje

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Harjoitus 5 (viikko 48)

Hellä ensikosketus. Tomi Kiviniemi

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

Tik Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu. LiKe Liiketoiminnan kehityksen tukiprojekti

Harjoitus 3 -- Ratkaisut

Harjoitus 2 (viikko 45)

Unifaun OnlinePrinter

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2016

Johnson, A Theoretician's Guide to the Experimental Analysis of Algorithms.

T harjoitustyö, kevät 2012

Hallintatyökaluja Fujitsu-työasemille

Automaattinen yksikkötestaus

Näin järjestän ohjelmointikurssin, vaikka en ole koskaan ohjelmoinut

PRINCIPLES OF PROGRAMMING LANGUAGES - DEBUGGER

Ohjelmoinnin perusteet Y Python

Uudelleenkäytön jako kahteen

Hakemistojen sisällöt säilötään linkitetyille listalle.

Lohtu-projekti. Testaussuunnitelma

T Testitapaukset TC-1

Testaussuunnitelma PULSU. Syksy 2008 Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Soveltuvuustutkimus Lifebelt-ohjelman ideologian käytettävyydestä olioorientoituneeseen

COTOOL dokumentaatio Testausdokumentit

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

Valppaan asennus- ja käyttöohje

tulli.fi versio 0.3, Sanoma-asioinnin testauspalvelun käyttöohje

Ylläpitodokumentti. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

Dynaaminen analyysi IV

Testauksen tuki nopealle tuotekehitykselle. Antti Jääskeläinen Matti Vuori

Ohjelmistojen testaus ja hallinta. Gradle

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

DOORS 7.1 Test Tracking Toolkit

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

Dynaaminen analyysi IV Luento 6 Antti-Pekka Tuovinen

5. HelloWorld-ohjelma 5.1

2 Konekieli, aliohjelmat, keskeytykset

L models. Testisuunnitelma. Ryhmä Rajoitteiset

Onnistunut SAP-projekti laadunvarmistuksen keinoin

Testausraportti. Oppimistavoitteiden hallintajärjestelmä harri

Ohjelmiston toteutussuunnitelma

Opiskelijan pikaopas STACK-tehtäviin. Lassi Korhonen, Oulun yliopisto

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

Osallistavan suunnittelun kyselytyökalu

Hannu Mäkiö. kertolasku * jakolasku / potenssiin korotus ^ Syöte Geogebran vastaus

Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ).

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

Tapahtuipa Testaajalle...

Dynaaminen analyysi I

Eclipse ja JUnit-ohjelmoijatestit

Fiksumpi käyttöliittymä kuntaan. Miten kuntien tietojärjestelmät saadaan palvelemaan kuntalaisia? LapIT-päivät 2015

Salasanojen turvallinen tallentaminen KeePass ohjelmalla

OCAD KOULUTUS ALITTELIJOILLE OCAD PERUSTEET

TIE Ohjelmistojen testaus Harjoitustyön esittely osa 1: Yleisinfo ja vaiheet 1 & 2. Antti Jääskeläinen Matti Vuori

Sukupuu -ohjelma. Ossi Väre ( ) Joni Virtanen ( )

8. Näppäimistöltä lukeminen 8.1

Transkriptio:

TIE-21201 Ohjelmistojen testaus 2016 Harjoitustyö Vaihe 3 Antti Jääskeläinen Matti Vuori

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 3 ohjausluento Viikko 46 Vaiheen 2 deadline Viikko 48 Vaiheen 2 palaute Viikko 49 Vaiheen 3 deadline Viikko 51 Vaiheen 3 palaute 16.11.2016 2

Järjestelyt Valmistautuminen Lue harjoitustyön nettisivut Lue kolmannen vaiheen ohjeistus Perehdy fmbt-työkalun käyttöön liittyviin viikkoharjoituksiin Palautukset tehdään sähköpostitse kuten aiemminkin Kolmannesta vaiheesta on saatavilla 6 pistettä 16.11.2016 3

Yleistä 1/2 Testikohde: laskin galculator, versio 4.1CE CE tarkoittaa kurssin omaa versiota (course edition), johon on kylvetty bugeja jonkin version 4.1 päälle Testataan vain peruslaskutoimituksia laskimen Basic-moodissa 16.11.2016 4

Yleistä 2/2 Testaustapa: mallipohjainen funktionaalinen GUI-testaus Testejä generoidaan ohjelman toiminnallisuutta kuvaavasta mallista Testit suoritetaan automaattisesti ohjelman käyttöliittymän läpi Mustalaatikkotestausta, lähdekoodia ei tarkastella Testiympäristö: TTY:n Linux-etätyöpöytäympäristö Työasemia luokassa TC217, ohjeita etäkäyttöön Tutkassa https://www.tut.fi/tutka/it/tietokoneluokat/yhteiskayttoiset-linuxkoneet/index.htm Mallinnusta voi tehdä muuallakin Lisätietoja vaiheen 3 tarkassa ohjeistuksessa Työkalu: fmbt Asennettu valmiiksi ympäristöön Työkalu ja dokumentaatiota saatavilla kotisivuilta https://01.org/fmbt/ Käytännön ohjeistusta saatavilla viikkoharjoituksissa 16.11.2016 5

Palautettavat asiat Testimalli Mukaan lukien aputiedostot kuten testikohteen hallinnassa käytetyt bittikarttakuvat Virheraportit Varmista, että palautuspakettisi on oikeellinen, jotta sen automaattinen käsittely onnistuu Ohjeet palautuspaketin toimivuuden tarkastamiseen palautusohjeiden yhteydessä 16.11.2016 6

Testimalli Testimalli kuvaa testikohteen käyttäytymistä tarpeellisilta osin Mallin tietojen perusteella testikohteelle voidaan generoida erilaisia testejä Tämän työn malli kirjoitetaan fmbt:n AAL/Python-kielellä Malli rakennetaan tukemaan online-testausta, jossa testejä suoritetaan samalla kun niitä generoidaan 16.11.2016 7

Mallinnettavat asiat Peruslaskutoimitukset (yhteen, vähennys, kerto ja jako) ja niiden muodostamat lausekkeet Huomaa mm. laskujärjestyssäännöt Kokonais- ja desimaaliluvut Valmis mallipohja sisältää funktion satunnaisten lukujen generointiin Tulosten ja välitulosten tarkastaminen Ideaalisesti laskimen näytöllä näkyvä luku tarkastetaan aina jokaisessa mallin tilassa Jos tuloksen desimaaliesitys ei mahdu laskimen näytölle, ei sitä tarvitse tarkastaa ja laskimen voi resetoida 16.11.2016 8

Ei tarvitse mallintaa Laskimen käynnistämistä ja sammuttamista Valikoiden sisältöä Muita kuin Basic-moodia Basic-moodin toiminnoista Sulkeita sisältäviä lausekkeita Muistin käyttöä Syötteen kumoamista (Clear ja Backspace) Neliöjuuri- ja potenssioperaatioita Eri tapoja antaa syötteitä Apinatestauksen tyylisiä järjettömiä syötesarjoja 16.11.2016 9

Testikohteen hallinta Käytetään fmbt:n tarjoamaa fmbtx11-rajapintaa, joka tarttuu X11- ikkunointijärjestelmään Rajapinnasta on jonkin verran dokumentaatiota fmbt:n kotisivuilla, mutta käytännössä sen ominaisuuksia on paras tutkia Pythontulkissa dir- ja help-komennoilla Testikohdetta käsitellään erillisellä näytöllä, käynnistyskomennot ovat valmiina mallipohjassa Tuloksia tarkastetaan tekstintunnistuksen (OCR) avulla OCR toimii pääosin hyvin testikohteen kanssa, mutta ei jostain syystä tunnista luotettavasti kahdeksikoista koostuvia lukuja (8, 8.88, -88, ) Tärkeimmät erikoistapaukset voi tarkastaa bittikarttoina, muut sivuuttaa 16.11.2016 10

Vinkkejä mallinnukseen 1/2 Aloita yksinkertaisista asioista ja etene sitten monimutkaisempiin Hyvä lähtökohta: yhteenlasku kokonaisluvuilla Esim. ensin yhteen- ja kertolasku vain erillisissä lausekkeissa, laskujärjestyksen toteutus vasta myöhemmin Sivuuta ongelmallisia tilanteita tarpeen mukaan Jätä yksittäinen ongelmallinen tulos tarkastamatta Havaitessasi tilanteen, josta mallisi ei selviä eteenpäin, resetoi testiajo ja peruuta malli vastaavaan tilaan Älä anna testiajon kaatua, ellei kyseessä ole todellinen virhetilanne! Vaikka malli olisi kattavuuden puolesta pahasti puutteellinen, voi se silti osoittaa että testikohteen hallinta on osattu tehdä hyvin 16.11.2016 11

Vinkkejä mallinnukseen 2/2 Mieti, kuinka paljon toiminnallisuutta sisällytät yksittäiseen aktioon; liian pienet aktiot tekevät mallin logiikan seuraamisesta vaikeaa, liian suuret rajoittavat erilaisten testien generointia Huolehdi, että malli on vahvasti kytketty, ts. jokaisesta saavutettavasta tilasta pääsee takaisin alkutilaan Siivoa tilamuuttujista vanhat turhat arvot pois Esim. jos muuttujan x ollessa arvossa 1 on muuttujan y arvo merkityksetön, sijoita siihen None tms., jotta tilat eivät monistu Huolehdi mallin selkeydestä Nimeä aktiot, muuttujat yms. kuvaavasti Kommentoi mallikoodia, jos se ei muuten ole riittävän helposti ymmärrettävää 16.11.2016 12

Testikonfiguraatio Kertoo fmbt:lle millainen testi halutaan generoida Mallipohjan mukana on kaksi testikonfiguraatiota Savutesti, joka suorittaa kaikki mallin aktiot kertaalleen Laajempi testi, joka yrittää suorittaa kaikki erilaiset neljän aktion sarjat Muita konfiguraatioita voi rakentaa, jos kokee tarpeelliseksi Esim. painotettu konfiguraatio, joka testaa enimmäkseen tietynlaisia operaatioita Ohjeistusta fmbt:n dokumentaatiossa https://github.com/01org/fmbt/blob/devel/doc/configuration.txt 16.11.2016 13

Testiajot ja virhelokit fmbt tuottaa testiä ajaessaan lokin, joka kertoo suoritetut tapahtumat Tulostuu oletusarvona komentoriville, voi ohjata tiedostoon parametreilla Lokin avulla virheeseen johtanut testiajo voidaan toistaa ja löydetty virhe jäljittää Epädeterministisellä mallilla tosin mahdollisesti hankalaa Käytännön debuggauksessa hyödyllisiä ovat fmbt:n tuottamat näyttökaappaukset 16.11.2016 14

Virheraportit Virheet raportoidaan kuten tutkivan testauksen yhteydessäkin Varsinaista testausraporttia ei tarvita, vain virheraportit ja kansilehti Mallin rakennetta, testatessa tehtyjä havaintoja tms. voi silti dokumentoida 16.11.2016 15