Tehokas vianetsintä taktiikoita testaajille



Samankaltaiset tiedostot
Ohjelmistojen virheistä

Testaajan eettiset periaatteet

Testaus-tietoisku: Tärkeimpiä asioita testauksesta projektityökurssilaisille

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

Onnistunut SAP-projekti laadunvarmistuksen keinoin

58160 Ohjelmoinnin harjoitustyö

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

Testaus ja säästöt: Ajatuksia testauksen selviämisestä lama-aikana

dokumentin aihe Dokumentti: Testausraportti_I1.doc Päiväys: Projekti : AgileElephant

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

JÄRJESTELMÄTYÖKALUT SEKÄ SOVELLUSTEN POISTAMINEN

Onnistunut ohjelmistoprojekti

Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen

Työ intohimona caseina testaus, käytettävyys ja riskienhallinta

TRUST USB VIDEO EDITOR

Kuopio Testausraportti Kalenterimoduulin integraatio

Ohjelmistotuotteen hallinnasta

Topfieldin sarjaporttipäivitystyökalun asennus(rs232)

Järjestelmän kriittisimmille toiminnallisuuksille (listattu alla), toteutetaan 1

Maha Eurosystem jarrulaskentaohjelman asennusohje versio

CEM DT-3353 Pihtimittari

Project-TOP QUALITY GATE

OHJELMISTOTEKNIIKKA LABORATORIOHARJOITUKSEN OHJEET

Seuratoiminnan. Tämä on seuroille tarkoitettu työkirja urheiluseuran tulevaisuuden pohtimiseen. Kokoa tiimi omasta seurasta.

ipad:n päivitys versioon ios 7 Porin kaupungin luottamushenkilöt

Teknillinen korkeakoulu T Tietojenkäsittelyopin ohjelmatyö. Testitapaukset - Siirtoprotokolla

Automaattinen yksikkötestaus

Ohjelmiston toteutussuunnitelma

Ajatukset - avain onnellisuuteen?

AIKUISVÄESTÖN HYVINVOINTIMITTARI Minun elämäntilanteeni

Simulaattoriavusteinen ohjelmistotestaus työkoneympäristössä. Simo Tauriainen

Palvelumuotoilun perusteet ja palvelupolku. luontokeskus

5 asiaa, jotka sinun on hyvä tietää sinun aivoista

Kuopio Testausraportti Asiakkaat-osakokonaisuus

TRUST FLAT SCAN USB 19200

Dynaaminen analyysi IV

Opponointitestaus VYM -> LiKe

Dynaaminen analyysi IV Luento 6 Antti-Pekka Tuovinen

Millainen maailmani pitäisi olla?

Testiraportti - Koordinaattieditori

T Testiraportti - integraatiotestaus

Trust Gamer Kit PCI TRUST GAMER KIT PCI. Pika-asennusohje. Versio 1.0

työssäoppimispaikan työtehtävissä toimiminen ammattiosaamisen näytön suorittaminen näyttösuunnitelman mukaan

Pienin askelin snadein stepein -väline oman työn kehittämiseen arjessa

Mihin kaikkeen voit törmätä testauspäällikön saappaissa?

Tapahtuipa Testaajalle...

Reflektoiva oppiminen harjoittelussa Insinööritieteiden korkeakoulu

Ohjelmiston testaus ja laatu. Testausmenetelmiä

Testaussuunnitelma. PUSU-ryhmä. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

työssäoppimispaikan työtehtävissä toimiminen ammattiosaamisen näytön suorittaminen näyttösuunnitelman mukaan Ammattitaidon osoittamistavat

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

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

MITÄ ON GEMBA-WALK? Janne Metsolahti Työnjohtaja YIT Infra Oy

Visma Avendon asennusohje

Opiskelija tekee työasemaympäristöön ja sen hankintaan liittyviä toimistotehtäviä ja laskutoimituksia sekä hyödyntää kielitaitoaan.

3. Ryhdy kirjoittamaan ja anna kaiken tulla paperille. Vääriä vastauksia ei ole.

ARVIOINTISUUNNITELMA Sivu 1/7

Onnistunut Vaatimuspohjainen Testaus

1(5) TYÖSSÄOPPIMINEN JA AMMATTIOSAAMISEN NÄYTTÖ. Tutkinnon osa: Testaus 15 osp Tavoitteet:

Alkukartoitus Opiskeluvalmiudet

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

Projektisuunnitelma Viulu

Käytettävyyden huomiointi ohjelmisto prosessissa testausta lisäämällä

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

TUNNE ITSESI TYÖNHAKIJANA

KÄYTETTÄVYYSTESTAUS OSANA KETTERÄÄ KEHITYSTÄ

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

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0

Testitapaukset - Siirtoprotokolla

TESTIRAPORTTI - XMLREADER-LUOKKA Virtuaaliyhteisöjen muodostaminen Versio 1.0 (luonnos 2)

Hirviö Järjestelmätestauksen testitapaukset ja suoritusloki I1

TESTIRAPORTTI - XMLREADER LUOKKA Virtuaaliyhteisöjen muodostaminen Versio 1.0

Hyväksymistestauksen tarkistuslista järjestelmän hankkijalle

Copyright

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

Ohjeistus pöytäkirjan käyttöön. Suomen Lentopalloliitto ry

Reflektoiva oppiminen harjoittelussa Insinööritieteiden korkeakoulu

HELIA 1 (11) Outi Virkki Käyttöliittymät ja ohjelmiston suunnittelu

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

Kontrollipolkujen määrä

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

ARVIOINTISUUNNITELMA Sivu 1/6

PROJEKTIN OHJAUS JA SEURANTA JOUNI HUOTARI

Online-kurssien pikaopas Adobe Connect -yhteyden käyttämiseen

- Marko Mikkola

Sosiaalisen median käyttö autokaupassa. Autoalan Keskusliitto ry 3/2012 Yhdessä Aalto Yliopisto, Helsingin kauppakorkeakoulu opiskelijatiimi

IHMISOIKEUSKASVATUS Filosofiaa lapsille -menetelmällä

MONIKULTTUURISEN OPETUKSEN JA OHJAUKSEN HAASTEET. Selkokielen käyttö opetuksessa. Suvi Lehto-Lavikainen, Koulutuskeskus Salpaus

Testaussuunnitelma Labra

T Testiraportti - järjestelmätestaus

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2016

Versio Päiväys Tekijä Kuvaus Tikkanen varsinainen versio

Kymmenen Nopeaa & Näppärää Office-ohjelmien käyttövinkkiä

T Testiraportti - integraatiotestaus

Nimeni on. Tänään on (pvm). Kellonaika. Haastateltavana on. Haastattelu tapahtuu VSSHP:n lasten ja nuorten oikeuspsykiatrian tutkimusyksikössä.

Agenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi

Tietopohjainen testaus ja silmien avaaminen kohteen ilmiöille

TRUST AMI MOUSE WIRELESS 300

Määrittelydokumentti NJC2. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Nimi: Opnro: Harjoitustyön suoritus: ( ) syksy 2006 ( ) syksy 2005 ( ) muu, mikä. 1. Selitä seuraavat termit muutamalla virkkeellä ja/tai kaaviolla:

Transkriptio:

Tehokas vianetsintä taktiikoita testaajille Joukko erilaisia periaatteita ja taktiikoita, jotka antavat lisätehoa ohjelmiston vikojen löytämiseen. Periaatteita voi soveltaa sekä testien systemaattisessa etukäteissuunnittelussa että ketterässä testauksessa. Matti Vuori, www.mattivuori.net 26.9.2010 1(30)

Sisällysluettelo 1/2 Asenne 4 Varoituksen sana 5 Ymmärrä koko ohjelma 6 Testaa koko tuote, kaikki käyttö 8 Tiedä kaikki vaatimukset 9 Etsi kaikenlaisia virheitä 10 Ole realisti 11 Rakasta virheitä 12 Kyseenalaista vanha testaustapa. 13 Käytä erilaisia testiympäristöjä 14 Konfiguroi ympäristöt eri tavoilla 15 Asetu tietoisesti rooleihin 16 Tutki poikkeus- ja virhetilanteita 17 Yllätä 18

Sisällysluettelo 2/2 Kuormita 19 Käytä vainuasi 20 Tunne vikojen luonne 21 Tiedosta ohjelmiston toteutuksen haasteet 22 Selvitä vaikea toteutuksen paikat 23 Monimutkaisuus tuottaa virheitä 24 Tunnista ongelmien oireita 25 Katso ihmistä 26 Hyödynnä kokemustietoa 27 Tee yhteistyötä ja ideoi 28 Ajattele omilla aivoillasi 29 Löydä oma intohimosi testaukseen 30

Asenne Testauksessa on tavoitteena löytää vikoja, jos niitä ei löydy, testaus ei ole onnistunut. Ohjelmistossa on vikoja ne vain ovat vielä löytämättä. Ohjelmiston pitää kestää kovakouraistakin kohtelua testauksessa muuten se ei ole riittävän tukeva tuotantokäyttöönkään. Ohjelmisto voi kokea käytön aikana mitä tahansa. Suhtaudu ohjelmistoon armottomasti ja ennakkoluulottomasti. Mieti, että nopeassa testausjaksossa olisi löydettävä kaikki ne viat, jotka muuten paljastuisivat vähitellen suuren käyttäjäjoukon kenties vuosien työn kuluessa. Ohjelmistoa on siksi todella koeteltava testauksessa. Testaus perustuu raadolliseen todellisuuteen, sen tehtävä on purkaa pilvilinnat 4(30)

Varoituksen sana Tässä kalvosarjassa puhutaan vain siitä, millaisilla ajattelumalleilla bugeja löydetään Aivan toinen asia ja pitkien tarinoiden aihe on se, miten testausta suunnataan sen prioriteettien ja riskien perusteella. Joka paikasta löydetyt virheet eivät ole yhtä tärkeitä! Kuitenkin: määrässä on laatua! Tiettyä määrää pieniäkin bugeja vastaa vähäisempi määrä isompia bugeja. Pienten bugien löytämisellä päästään isojen jäljille! 5(30)

Ymmärrä koko ohjelma 1/2 Ymmärrä, miten koko ohjelma toimii. Vaikka tehtävänä olisi testata vain pientä osaa ohjelmasta, on tärkeää tuntea sen osuus kokonaisuudesta Mitä koko ohjelma tekee Miten sitä käytetään, kuka, millä tavoilla ja tavoitteilla, millaisilla poikeamilla Miten kukin palanen liittyy kokonaisuuteen Mistä tiedot tulevat, mihin ne menevät, miten ne virtaavat Mikä on tärkeää ja mikä ei 6(30)

Ymmärrä koko ohjelma 2/2 Joskus vaatimusmäärittelyjen ja testauksenhallinnan näkymät sekä tehtävänantosi vähentävät ymmärrystä esittelemällä kokonaisuudesta vain siivuja yritä nähdä enemmän 7(30)

Testaa koko tuote, kaikki käyttö Testaa järjestelmällisesti kaikki toiminnot ja ominaisuudet. Suorita kaikki ohjelmiston elinkaaren, käyttötapausten ja toimintoketjujen tapahtumat. 8(30)

Tiedä kaikki vaatimukset Käytä kaikkia tietolähteitä ohjelmiston vaatimusten tunnistamiseen. Määrittelyt, käyttöohjeet, tieto käyttäjien tavoista, yleinen tietämys siitä miten tällaisia tuotteita käytetään. Muista, että määrittelypapereissa on vain pieni osa vaatimuksista. Mieti, mitä käyttäjät odottavat. Selvitä, mitkä asiat ovat ohjelmiston käytössä tärkeitä. 9(30)

Etsi kaikenlaisia virheitä Puuttuva toiminto. Väärin toimiva toiminto. Hankalakäyttöisyys. Käyttö- tai tietoturvallisuusongelmat. Suorituskykypuutteet. Määrittelypuutteet määrittelyn mukaan toteutettu toiminto toimii huonosti tai epäloogisesti. Esteettiset puutteet (on toki ymmärrettävä, että omat preferenssit voivat olla erilaisia kuin ohjelmiston kohderyhmällä). Tunnista tyypillisiä tai mahdollisia vikoja. Preppaa itsesi ennen testausta tarkistuslistojen ja aiempien ohjelmistojen virheiden avulla. 10(30)

Ole realisti Testaa sellaisilla tavoilla, joilla ohjelmistoa käytetään oikeasti. Muista, että käyttäjät eivät tiedä yhtään mitään siitä, miten koodaajat ovat ajatelleet ohjelmaa käytettävän "oikein". Ajattele kuin käyttäjä kuin aloittelija, kuin hyvin kokenut, monipuolinen ja vaativa experttikäyttäjä. Käytä testattavia toimintoja useilla erilaisilla tavoilla. Käytä huonosti käyttäytyvää testiaineistoa (puuttuvia tietoja, väärämuotoista, jne ) 11(30)

Rakasta virheitä Kun jotain vihaa, ei osaa ajatella selkeästi ja luovasti Siksi ohjelmiston virheitä ei kannata vihata, vaan rakastaa! Jokainen löydetty virhe kertoo testauksen onnistumisesta ja on oppimisen mahdollisuus koko organisaatiolle teemalla: miten sellainen virhe vältetään jatkossa? 12(30)

Kyseenalaista vanha testaustapa. Uudet viat eivät välttämättä löydy vanhoilla testaustavoilla ja testeillä. Uudista testejä koko ajan. Suunnittele ja suorita sellaisia testitapauksia, joita ei ole aikaisemmin käytetty. 13(30)

Käytä erilaisia testiympäristöjä Eri käyttöjärjestelmäversiot. Erilaiset tietokoneet. Erilaiset oheisohjelmat. Jokainen ympäristön muutos auttaa bugien löytämisessä. Pyri matkimaan erilaisten käyttäjien ympäristöjä. Realismi ja likaisuus (paljon epämääräistä softaa, pitkä historia) auttaa paljastamaan bugeja Älä käytä samanlaista ympäristöä kuin ohjelmistokehittäjillä käyttäjillä ei ole sellaista ympäristöä. Mieti käyttöympäristön mahdollisia ongelmia. Toimiiko verkko aina ok? Vedä verkkojohto seinästä! 14(30)

Konfiguroi ympäristöt eri tavoilla Esimerkiksi nettipalvelimet voivat olla tuhansilla tavoilla konfiguroituja ja ovatkin, käytännössä Kokeile muuttaa asetuksia Ruuvaa tietoturva-asetukset kaikkein tiukimmalle niin tulee joku käyttäjäorganisaatio tekemään 15(30)

Asetu tietoisesti rooleihin Aseta itsesi erilaisiin käyttäjärooleihin. Toimi kuin Aloittelija. Lapsi. Vanhus. Huippexpertti. Nörtti. Vieraskielinen. Mitä he tekevät? Toimi niin. Millaisia virheitä he tekevät? Tee niitä. 16(30)

Tutki poikkeus- ja virhetilanteita Testaa poikkeustilanteita ja raja-arvoja. Kokeile oudoilla virhesyötteillä niin käyttäjätkin tekevät. Kokeile raja-arvoilla ja arvoalueen ulkopuolella olevilla arvoilla nolla, miinusmerkkiset luvut. Testaa virhetilanteita. Yritä avata tiedosto, jota ei ole olemassa, virheellinen tiedosto, etsiä tietoa, jota ei ole olemassa. Mitä tapahtuu, jos töpselin vetää seinästä? 17(30)

Yllätä Tee odottamattomia asioita. Käynnistä toiminto, jota ei "pitäisi" käyttää. Aloita ohjelman käyttäminen sen latautuessa. Tee asioita satunnaisesti. Tee gorillatestausta. 18(30)

Kuormita Kuormita ohjelmistoa. Käytä sitä pieniresurssisella laitteistolla. Avaa suuri määrä tiedostoja. Käynnistä useita samanaikaisia toimintoja. Toista, toista, toista. Monet viat ilmenevät vasta pidemmän käyttöjakson myötä. Toiminnot voivat toimia ensimmäisellä kerralla, mutta eivät enää seuraavalla. 19(30)

Käytä vainuasi Haasta koodaaja. Mieti, mitä asioita hän ei ole kenties ottanut huomioon. Luota "metsästäjän vainuun". 20(30)

Tunne vikojen luonne Viat pitävät toisistaan. Jos jollakin osa-alueella on paljon vikoja, niitä voi löytyä paljon lisää! Testaa piilossa olevia toimintoja. Päänäytön toiminnot luultavasti toimivat, mutta pari tasoa siitä alaspäin, vikoja voi olla enemmänkin. 21(30)

Tiedosta ohjelmiston toteutuksen haasteet Tunne ohjelmiston toteutuksen kriittiset piirteet. Jos ymmärrät tekniikan päälle, testaa sellaisia asioita, joiden tiedät olevan vaikeaa toteuttaa luotettavasti. Testaa muuttuvia alueita. Muutos on aina mahdollisuus vioiksi. Aina menee jotain rikki löydä se. Testaa alueita, jotka ovat uusia, joihin on aiemmin kohdistunut monia muutospyyntöjä. Testaa uuden teknologian sovellukset huolella Myöhässä olevat osat tehdään paineissa ja ovat helposti täynnä vikoja 22(30)

Selvitä vaikea toteutuksen paikat Juttele ohjelmistokehittäjien kanssa ja selvitä, Minkä asioiden toteutuksessa on ollut vaikeaa Mitkä paikat ohjelmassa pysyvät kasassa vain hyvällä onnella Missä asioissa kehittäjät tietävät tulevan ongelmia 23(30)

Monimutkaisuus tuottaa virheitä Kun ohjelman logiikka on monimutkaista, bugit ovat aina lähellä. Erityisesti silloin, kun logiikka vaatii substanssitietoa Jos et saa selvää dokumenteista, eivät muutkaan ole saaneet joten väärinkäsityksistä on syntynyt virheitä Jos johonkin toimintoon liittyy paljon dataa kuten lomalleellinen nippelitietoa osaa siitä käsitellään ohjelmassa yleensä väärin 24(30)

Tunnista ongelmien oireita Jos jossakin toiminnossa esiintyy pieniä virheitä näytön päivityksessä, kursorin liikkeissä, hidastumista jne., siellä voi piillä isojakin vikoja. Tunnista puutteellista suunnittelua. Alueilla, jotka ovat monimutkaisia, epäsiistejä, hitaita jne. on usein myös vikoja. Testaa niitä alueita, joista on tullut helpdeskiin valituksia. 25(30)

Katso ihmistä Uudet tiimit ja uudet työntekijät yllättävät usein turhilla virheillä, ennen kuin pääsevät samalle viivalle muiden kanssa Koodaajat, joilla on aina kiire ja työpäivät venyvät, eivät välttämättä ehdi itse testata tuotoksiaan kunnolla (Koodaajien laaduntuotolla on selviä eroja, mutta usein on enemmän kyse olosuhteista, joissa he toimivat ja softan historiasta) 26(30)

Hyödynnä kokemustietoa Testaa niitä alueita, joissa ohjelmistoissa on usein vikoja. Mieti kokemustasi vastaavan tyyppisistä ohjelmistoista. Testaa aiempien versioiden vikojen kaltaisia asioita. Viat syntyvät ohjelmistokehittäjien käsissä, samanlaisista suunnittelu- ja toteutustavoista. Jos aiemmissa versioissa on ollut tulostusongelmia, testaa niitä tälläkin kertaa. Hanki tietoa reklamaatioista ja havaituista virheistä (ylläpidon vikakanta, helpdesk-tietokanta). 27(30)

Tee yhteistyötä ja ideoi Testaustiimin aivot kannattaa yhdistää vikojen potentiaalisten paikkojen tunnistamiseen. Erityinen eri osapuolten (testaajat, kehittäjät jne.) yhteinen "vianmetsästyspäivä" voi olla hyvin hedelmällinen. 28(30)

Ajattele omilla aivoillasi Jokaisen ammatin ja työsuhteen alussa noudatetaan alan ja työpaikan käytäntöjä. Mutta joskus ne ovat kehnoja! Ja varsinkin testauksessa, mikä on kovin uutta monille organisaatioille. Joskus organisaatiot ovat tapoihinsa kangistuneita. Siksi kannattaa tunnistaa oma, kehittyvä oppiminen ja huomata hetki, jolloin pystyy itse miettimään, miten testaus on hyödyllisintä tehdä. 29(30)

Löydä oma intohimosi testaukseen Löydä se syy, miksi testaus on tai voisi olla hienoa. Rakenna tietoisesti mielenkiintoa eri asioihin ja anna mielenkiinnon kasvaa oppiessasi asioita. Näin saat motivoitunutta skarppiutta ja uutta bugien löytämisen kykyä! 30(30)