tie-21201 ohjelmistojen testaus 2016 harjoitustyö vaihe...

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

Upload: others

Post on 08-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TIE-21201 Ohjelmistojen testaus 2016 Harjoitustyö Vaihe 3tie21201/s2016/luennot/harjoitustyo_vaihe_3.pdf · • Peruslaskutoimitukset (yhteen, vähennys, kerto ja jako) ja niiden

TIE-21201 Ohjelmistojen testaus 2016

Harjoitustyö

Vaihe 3

Antti Jääskeläinen

Matti Vuori

Page 2: TIE-21201 Ohjelmistojen testaus 2016 Harjoitustyö Vaihe 3tie21201/s2016/luennot/harjoitustyo_vaihe_3.pdf · • Peruslaskutoimitukset (yhteen, vähennys, kerto ja jako) ja niiden

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

Page 3: TIE-21201 Ohjelmistojen testaus 2016 Harjoitustyö Vaihe 3tie21201/s2016/luennot/harjoitustyo_vaihe_3.pdf · • Peruslaskutoimitukset (yhteen, vähennys, kerto ja jako) ja niiden

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

Page 4: TIE-21201 Ohjelmistojen testaus 2016 Harjoitustyö Vaihe 3tie21201/s2016/luennot/harjoitustyo_vaihe_3.pdf · • Peruslaskutoimitukset (yhteen, vähennys, kerto ja jako) ja niiden

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

Page 5: TIE-21201 Ohjelmistojen testaus 2016 Harjoitustyö Vaihe 3tie21201/s2016/luennot/harjoitustyo_vaihe_3.pdf · • Peruslaskutoimitukset (yhteen, vähennys, kerto ja jako) ja niiden

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-linux-

koneet/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 viikkoharjoituksissa16.11.2016 5

Page 6: TIE-21201 Ohjelmistojen testaus 2016 Harjoitustyö Vaihe 3tie21201/s2016/luennot/harjoitustyo_vaihe_3.pdf · • Peruslaskutoimitukset (yhteen, vähennys, kerto ja jako) ja niiden

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

Page 7: TIE-21201 Ohjelmistojen testaus 2016 Harjoitustyö Vaihe 3tie21201/s2016/luennot/harjoitustyo_vaihe_3.pdf · • Peruslaskutoimitukset (yhteen, vähennys, kerto ja jako) ja niiden

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

Page 8: TIE-21201 Ohjelmistojen testaus 2016 Harjoitustyö Vaihe 3tie21201/s2016/luennot/harjoitustyo_vaihe_3.pdf · • Peruslaskutoimitukset (yhteen, vähennys, kerto ja jako) ja niiden

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

Page 9: TIE-21201 Ohjelmistojen testaus 2016 Harjoitustyö Vaihe 3tie21201/s2016/luennot/harjoitustyo_vaihe_3.pdf · • Peruslaskutoimitukset (yhteen, vähennys, kerto ja jako) ja niiden

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

Page 10: TIE-21201 Ohjelmistojen testaus 2016 Harjoitustyö Vaihe 3tie21201/s2016/luennot/harjoitustyo_vaihe_3.pdf · • Peruslaskutoimitukset (yhteen, vähennys, kerto ja jako) ja niiden

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 Python-

tulkissa 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

Page 11: TIE-21201 Ohjelmistojen testaus 2016 Harjoitustyö Vaihe 3tie21201/s2016/luennot/harjoitustyo_vaihe_3.pdf · • Peruslaskutoimitukset (yhteen, vähennys, kerto ja jako) ja niiden

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

Page 12: TIE-21201 Ohjelmistojen testaus 2016 Harjoitustyö Vaihe 3tie21201/s2016/luennot/harjoitustyo_vaihe_3.pdf · • Peruslaskutoimitukset (yhteen, vähennys, kerto ja jako) ja niiden

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

Page 13: TIE-21201 Ohjelmistojen testaus 2016 Harjoitustyö Vaihe 3tie21201/s2016/luennot/harjoitustyo_vaihe_3.pdf · • Peruslaskutoimitukset (yhteen, vähennys, kerto ja jako) ja niiden

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

Page 14: TIE-21201 Ohjelmistojen testaus 2016 Harjoitustyö Vaihe 3tie21201/s2016/luennot/harjoitustyo_vaihe_3.pdf · • Peruslaskutoimitukset (yhteen, vähennys, kerto ja jako) ja niiden

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

Page 15: TIE-21201 Ohjelmistojen testaus 2016 Harjoitustyö Vaihe 3tie21201/s2016/luennot/harjoitustyo_vaihe_3.pdf · • Peruslaskutoimitukset (yhteen, vähennys, kerto ja jako) ja niiden

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