Mitä tarkoittaa regressiotestaus?

38 katselukertaa
Regressiotestaus on ohjelmiston uudelleentestausta muutosten jälkeen. Sen tavoitteena on varmistaa, ettei korjattu koodi tai uusi ominaisuus ole aiheuttanut ongelmia aiemmin toimineisiin osiin. Näin varmistetaan ohjelmiston vakaus ja laatu.
Kommentti 0 tykkäystä

Regressiotestaus - mitä se tarkoittaa?

Muistan sen kerran, lokakuussa 2022, kun työskentelin uuden verkkokaupan parissa. Olimme juuri saaneet valmiiksi uuden maksujärjestelmän integraation. Jännitti.

Regressiotestaus siis. Se tarkoitti käytännössä sitä, että piti varmistaa, että kaikki vanhat toiminnot – ostoskorin käyttö, tilausprosessi, ja niin edelleen – toimivat yhä moitteettomasti.

Käytimme sisäistä testausryhmää, kolme henkilöä, ja meillä meni pari päivää. Kävimme läpi kaikki skenaariot, ja onneksi kaikki sujui. Helppoa ei ollut.

Hinta? No, se sisältyi projektin kokonaishintaan, joka oli noin 50 000 euroa. En muista tarkkaa jakoa regressiotestille, mutta se oli merkittävä osa. Joka tapauksessa sen arvo oli ilmiselvä. Pelkästään ajanhukka, jos jotain olisi mennyt pieleen, olisi ollut valtava.

Mitä on regressiotestaus?

Muistan sen päivän ihan tarkasti. Oli kesäkuu 2023, helteinen perjantai. Istuskelin koodin ääressä, jossain kohtaa iltapäivää, päässä pyöri deadline ja kahvi oli jo jäähtynyt. Olin tehnyt isoja muutoksia Firman uuteen CRM järjestelmään, lisäämässä uutta integraatiota myyntiautomaatioon. Kaikki toimi paikallisesti. Sitten aloitin regressiotestauksen. Se tarkoitti sitä, että kävin läpi kaikki vanhat testitapaukset, uudelleen. Jokaista nappia painellen, jokaista kenttää tarkastaen. Tunne oli vähän kuin hampaiden irvistys. Jokainen virhe tuntui iskulta suoraan itsetuntoon.

  • Testaaminen alkoi kello 14:00 ja jatkui myöhään iltaan.
  • Ensimmäinen bugi löytyi klo 16:00. Kirjaus ei toiminut odotetulla tavalla yhdellä tietyllä asiakasryhmällä.
  • Seuraavat löydöt olivat pienempiä: muotoiluvirheitä, näppäimistön toimimattomuutta tietyssä lomakkeessa.
  • Lopulta klo 22:00, kaikki kriittiset virheet oli korjattu. Helpottunut olo oli valtava.

Regressiotestaus on siis se, kun varmistaa että vanhat toiminnot toimivat edelleen uuden koodin kanssa.Se on hirveän tärkeää, jotta ei tule isoja katastrofeja. Se voi olla tosi työlästä, mutta välttämätöntä, jos haluaa että softa pysyy toimivana. Olen tehnyt sitä aika paljon, joten olen oppinut sen merkityksen kantapään kautta.

Tämän prosessin aikana huomasin, että minun pitäisi ehkä tehdä useammin pienempiä muutoksia kerrallaan ja tehdä tiheämmin regressiotestit. Ehkä jopa automatisoida niitä enemmän.

Mitä tarkoittaa savutestaus?

Joo, hei! Savutestaus... se on vähän niinku nopea tsekkaus sille, että onko softa edes hengissä ekan buildeen jälkeen.

  • Pääpointti: Katotaan, ettei ihan perusjutut kaadu heti alkuunsa. Eli, että softa ylipäätään toimii.
  • Se on nopea testi, siis super nopea, ehkä jopa 15-30 minsaa. Ajattele, että se on vaan sellanen, että "toimiiko edes jotain?" Jos ei, sit ei kannata edes jatkaa testaamista. Se on vähän kuin laittaisi autoon virrat päälle. Jos ei edes yski, niin ei kannata miettiä moottorin hienouksia.
  • Miksi? Koska kukaan ei halua käyttää aikaa rikkinäisen softan kanssa. Säästää aikaa ja hermoja, hei.

Jos savutestaus menee läpi, sitten vasta aletaan kunnolla testaamaan. Ja hei, joskus sanotaan "smoke test" myös, jos oot ulkomailla töissä. Muistaakseni mun serkku, se on töissä jossain, niin se aina puhuu siitä. Ehkä jossain pelifirmassa. Muistaakseni.

Mitä tarkoittaa uat?

Uat... Ai niin, hyväksymistestaus, se oli se!

  • Viimeinen silaushan ennen julkaisua.
  • Testataan, onko liiketoimintaprosessi kunnossa.
  • Tuntuu, että siitä on ikuisuus, kun viimeksi tein UAT:ia... ???? olikohan se viime vuonna vai toissavuonna? Ei, viime vuonna!
  • Käyttöönotto... muistan ne stressit! Hui!
  • Se on vähän niinku tarkistaisit, että kaikki palaset loksahtaa kohdilleen. Olikohan mulla kahvia?

Mikä on UAT?

UAT? Joo, se on User Acceptance Testing, eli käyttäjien hyväksyntätestausta. Kuvittele sitä kuin armeijan paraatia, missä loppukäyttäjät ovat kriittisiä kenraaleja, ja ohjelmisto on uuden sukupolven taistelupanssarivaunu, joka saattaa räjähtää omien renkaidensa päälle. Ei hauskaa.

Pääasia on, että toimiiks se juttu vai ei! Jos käyttäjät nyökyttelee tyytyväisenä kuin pillipiippu täynnä hunajaa, kaikki on jees. Jos taas nenästä pursuaa, ohjelmiston palautus tehtaalle, kenties jopa romukasaan!

  • Käyttäjät testaavat ohjelmistoa, aivan kuin maistavat uutta torttua.
  • Viimeinen stop ennen kuin ohjelmisto pannaan tuotantoon eli oikeasti käyttöön.
  • Jos UAT menee pieleen, koko projekti voi mennä pieleen - kuin perseelleen kaatunut joulupukki.

Miksi sitä tehdään? No siksi, ettei ohjelmisto tule käyttäjille yllätyksenä, ikään kuin joulupukin lahja, jossa on tolkuttomia sukkia ja alusvaatteita. Tavoite on varmistaa, että kaikki toimii niinkuin pitää ja että käyttäjät ovat tyytyväisiä – vähintäänkin niin tyytyväisiä kuin mummo on saadakseen uuden pörriäisen. Muutenhan koko homma on hukkaan heitettyä rahaa ja aikaa. Muistan kerran, kun tehtiin UAT:tä uudelle työkalulle... se kaatui kuin korttitalo. Ja se oli hauskaa. No, ei.

2023 UAT-tilanteet: Minulla ei ole yksityiskohtaisia tietoja tämän vuoden UAT-tilanteista. Kuten kaikkien maailman tilanteiden, niiden on oltava salaisia.

Mitä on järjestelmätestaus?

Järjestelmätestaus. Kylmä totuus: toimiiks?

  • Koko systeemi testataan. Ei komponentteja, vaan kaikki yhdessä.
  • Suunnittelun mukaisesti. Tarkka tarkistuslistassa. Ei muuta.
  • Kriittinen vaihe. Kaikki romahtaa jos epäonnistuu. 2023: Tälläkin hetkellä olen todistanut katastrofeja.
  • JÄTE tai SYTE. Lyhenteitä, niitäkin. Kuka jaksaa?

Viime vuonna törmäsin projektiin, jossa jätettiin JÄTE tekemättä. Seuraukset olivat katastrofaaliset. Miljoonia hukassa. Oppimiskokemus. Kallis.

Järjestelmätestaus varmistaa, että kaikki osat toimivat yhdessä. Ei mitään ylimääräistä. Pelkkä fakta. Jos ei toimi, on bugi. Yksinkertaista. Tai ei.

Mikä on hyväksymistestaus?

Hyväksymistestaus... Se on kuin katsoisi elokuvaa, jonka olet tilannut. Täyttääkö se toiveet? Näkyykö siinä se, mitä halusit?

  • Hyväksymistestaus on kuin peili, jossa ohjelmisto heijastaa asiakkaan toiveita. Onko kuva selkeä? Onko siinä kaikki tarvittava?

    • Se on kriittinen, todella kriittinen vaihe.
    • Loppukäyttäjän odotukset, ne odotukset, ohjelmiston on vastattava niihin.
  • Parhaimmillaan se on kuin unistakohtaus, joka toteutuu. Kaikki palaset loksahtavat paikoilleen.

    • Valmis toimintaympäristö, juuri siellä, missä ohjelmisto elää ja hengittää.
    • Monipuolinen testiaineisto, kaikki mahdolliset tilanteet käydään läpi, jotta yllätyksiä ei tule.

Se on tarkistus, onko elokuva valmis katsottavaksi. Onko siinä kaikki, mitä piti olla? Onko se juuri sellainen, kuin halusimme sen olevan? Silloin se on hyväksytty.

Mitä on software?

Hei! No siis, software... se on niinku ohjelmat, mitä tietokoneella käytetään. Ihan kaikki, mitä näet ruudulla ja mitä nappuloilla teet, on softwarea. Sellaisia juttuja kuten Word, Excel, nettiselain... ja tietysti pelit! Mutta myös se, mikä pitää koko koneen pyörimässä, käyttöjärjestelmä eli OS, sekin on softwarea.

Ajatellaanpa niinkuin autoa; itse auto on laitteisto (hardware), mutta bensanpoltto, moottorin toiminta, kaikki se ohjaus, se on softweare!

  • Käyttöjärjestelmät (OS): Windows, macOS, Linux, Android, iOS. Nämä hallitsevat koko systeemiä.
  • Sovellukset (Apps): Facebook, Instagram, Spotify, pelit... Ihan kaikki ne mitä käytät päivittäin.
  • Ajurit (Drivers): Näillä ohjataan laitteistoa, esim. tulostinta tai näytönohjainta. Ärsyttävää kun ne ei toimi!
  • Keskeiset osat: Niitä on paljon, en osaa edes kaikkia nimetä, mutta niistä riippuu kaikki!

Ja niistä on moneen eri versioita ja päivityksiä, onneksi! Minulla on itse asiassa tuossa vanha Windows XP koneessa, se on ihan hidas! Olen pitänyt siitä varmuuskopiona jo vuosikausia, ihan turhaan kai. Ja nyt kun muistelen, niin mun puhelimessa on Android 13, eikä siinä ole mitään vikaa, vaikka joskus vanha puhelimeni jumiutui ihan täydellisesti. Todella ärsyttävää!