Testiautomaation vertailu: mikä lähestymistapa sopii sovellukseesi?
Kun kuukausipäätös, lähetyksen hyväksyntä tai uusi asiakasportaali pysähtyy virheen vuoksi, ei auta työkaluesittely vaikuttavine koontinäyttöineen. Testiautomaation vertailun on siksi alettava varsinaisesta sovelluksesta: mitkä kulut eivät saa pettää, kuinka usein ne muuttuvat ja mitä todisteita tiimi tarvitsee, kun testi epäonnistuu?
Monelle yritykselle pullonkaula ei ole yksittäisen testityökalun puute. Se on manuaaliset regressiotestit, epäselvät vastuut, tuotannon kaltaisten järjestelmien testitiedot ja tulokset, joita kukaan ei osaa luotettavasti selittää. Sopiva ratkaisu pienentää tätä riskiä. Se ei automatisoi mahdollisimman monta napsautusta hinnalla millä hyvänsä.
Testiautomaatio vertailussa: neljä lähestymistapaa
Markkinoilla kohtaavat yleensä neljä lähestymistapaa: perinteiset koodipohjaiset testauskehykset, low-code- tai no-code-alustat, pilvipohjaiset tekoälytyökalut ja itse ylläpidetty testi-infrastruktuuri. Mikään niistä ei ole periaatteessa ylivoimainen. Ero on sovellustyypeissä, tietoturvavaatimuksissa ja tiimin kyvyssä ylläpitää testejä pitkäjänteisesti.
Koodipohjaiset kehykset antavat kehitystiimeille paljon hallintaa. Ne voidaan liittää olemassa oleviin build- ja käyttöönottoprosesseihin, ne versioivat testilogiikan lähdekoodissa ja sopivat erityisen hyvin verkkosovelluksiin, joilla on vakaa tekninen arkkitehtuuri. Hinta on selvä: testit ovat ohjelmistoa. Ne tarvitsevat katselmointeja, siistejä valitsimia, järkeviä testitietoja ja kehittäjäkapasiteettia. Huonosti jäsennelty testikokonaisuus on yhtä ylläpitoraskas kuin huonosti jäsennelty tuotantokoodi.
Low-code-työkalut lupaavat nopeamman alun. Liiketoimintayksiköt tai QA-tiimit voivat koota testivaiheita käyttöliittymien kautta ohjelmoimatta jokaista tarkistusta itse. Se voi olla järkevää selvästi rajatuissa vakiokuluissa, esimerkiksi verkkosovelluksessa, jossa on muutama toistuva hyväksyntäprosessi. Kun mukaan tulee paljon erikoistapauksia, dynaamisia käyttöliittymiä tai monimutkaisia käyttöoikeuksia, työ kuitenkin usein vain siirtyy: pois koodista kohti tallenteiden, muuttujien ja poikkeussääntöjen ylläpitoa.
Pilvipohjaiset tekoälytestauspalvelut täydentävät näitä lähestymistapoja kuvantunnistuksella, itsekorjautuvuuden lupauksilla tai luonnollisella kielellä kirjoitetuilla testikuvauksilla. Se voi nopeuttaa laatimista. Vastuullisten tulisi kuitenkin kysyä tarkasti, mitkä tiedot poistuvat yrityksestä. Kuvakaappaukset, käyttöliittymät, virheilmoitukset ja testitiedot voivat sisältää liikesalaisuuksia, henkilötietoja tai näkymiä sisäisiin prosesseihin. Julkisen verkkokaupan käyttöliittymän kohdalla punninta on toinen kuin sisäisen suunnitteluohjelmiston tai tuotannossa käytettävän Windows-sovelluksen kohdalla.
Oma tai itse ylläpidetty testi-infrastruktuuri ei yleensä ole pikainen aloitus luottokortilla. Se vaatii käyttöönottoa, valvontaa ja selkeää käyttövastuuta. Vastineeksi testiliikenne, kuvakaappaukset ja todisteet pysyvät oman hallinnan alla. Se on erityisen tärkeää, kun verkko- ja työpöytäsovellukset, arkaluonteiset tiedot tai toimialakohtaiset vaatimustenmukaisuusvelvoitteet yhdistyvät. Softify.pron COCO on suunniteltu juuri tähän tilanteeseen: oma tekoälypalvelin, joka suorittaa testit, tallentaa todisteet ja tuottaa ymmärrettäviä arvioita välittämättä sisäisiä testitietoja oletuksena ulkoiseen pilvipalveluun.
Älä vertaa toimintoja vaan virheriskejä
Pitkä ominaisuuslista vaikuttaa objektiiviselta, mutta on harvoin oikea päätöspohja. Ratkaisevaa on, minkä virheluokan järjestelmän on määrä kattaa. Kirjautumisvirhe tunnuksen lukituksen muutoksen jälkeen on kriittinen, jos työntekijät eivät pääse aloittamaan työtään. Väärin laskettu varastosaldo voi johtaa keräilyvirheisiin. Siirtynyt painike harvoin käytetyssä näkymässä on ehkä selvästi alempi prioriteetti.
Kestävä valinta alkaa siksi kymmenestä kahteenkymmeneen edustavasta kulusta. Niihin ei kuulu vain ihannetapauksia. Tarkista esimerkiksi, mitä tapahtuu, kun pakollisia kenttiä puuttuu, miten eri roolit käyttäytyvät, tulostetaanko toimitus uudelleen korjauksen jälkeen tai miten järjestelmä reagoi aikakatkaisuihin. Juuri näissä kohdissa näkyvät erot vakuuttavan esittelyn ja käyttökelpoisen testikäytön välillä.
Myös testitiheyden tulisi seurata riskiä. Täydellisen end-to-end-testin käynnistäminen kaikille kuluille jokaisen commitin jälkeen kuulostaa perusteelliselta, mutta voi estää kehitystä. Nopeat tekniset tarkistukset voivat ajaa jokaisen muutoksen yhteydessä. Liiketoimintakriittiset end-to-end-skenaariot ajetaan julkaisun yhteydessä, öisin tai ennen tuotantohyväksyntää. Hyvä rakenne tekee näkyväksi, miksi testi ajetaan missäkin vaiheessa.
Ylläpidettävyys ratkaisee ensimmäisen neljänneksen jälkeen
Automaattisilla testeillä on huono maine, kun ne muuttuvat punaisiksi jokaisen pienen käyttöliittymämuutoksen jälkeen. Usein syy ei ole valittu tuote vaan testien rakenne. Testi, joka tukeutuu sijaintiin, väriin tai satunnaisesti luotuun sisältöön, on hauras. Parempia ovat yksiselitteiset tekniset tunnisteet, vakaat testitiedot ja uudelleenkäytettävät vaiheet kirjautumiseen, roolin valintaan tai tilauksen luontiin.
Testiautomaation vertailussa kannattaa siksi katsoa ylläpidon arkea. Pystyykö tiimi jäljittämään epäonnistuneet vaiheet nopeasti? Tallennetaanko kuvakaappaus, aikaleima, loki ja odotettu tulos yhdessä? Voidaanko yksittäisiä testejä toistaa kohdennetusti? Ja onko selvää, kuka arvioi epäonnistuneen testin asiasisällön kannalta ja kuka korjaa teknisen syyn?
Erityisesti pitkäikäisissä sovelluksissa merkitystä on myös yhteensopivuudella oman arkkitehtuurin kanssa. Nykyaikaiset JavaScript-käyttöliittymät käyttäytyvät toisin kuin palvelinpuolella renderöidyt PHP-sovellukset. Windows-työpöytäohjelmisto tarvitsee muita ohjaus- ja havainnointimahdollisuuksia kuin selain. Joka testaa molempia, ei saisi valita ratkaisua, joka käsittelee toista aluetta vain kiertoteitse.
Tekoäly testauksen apuna, ei hyväksyjänä
Tekoäly voi keventää testitiimien työtä mielekkäällä tavalla. Se voi priorisoida poikkeamia, tunnistaa muutoksia kuvakaappauksissa, kuvata testivaiheita ymmärrettävällä kielellä tai johtaa monista lokeista toistuvia virhekuvioita. Se säästää aikaa triagessa eli sen ratkaisemisessa, mitä punaista ilmoitusta todella täytyy tutkia.
Se ei kuitenkaan korvaa asiasisällöllistä hyväksyntää. Malli voi tunnistaa epätavallisen käyttöliittymän, mutta ei voi luotettavasti päättää, onko hinnan hyväksyntä oikeudellisesti oikein tai pysyykö varastopoikkeama sallittuna kyseisessä prosessissa. Tällaisiin tapauksiin tarvitaan nimenomaiset säännöt, määritellyt odotusarvot ja vastuullinen ihminen.
Kysy tekoälytoiminnoista luottamuskynnyksiä ja eskalointilogiikkaa. Jos järjestelmä ilmoittaa poikkeaman vain suurella varmuudella, hienovaraiset virheet voivat jäädä huomaamatta. Jos se luokittelee jokaisen pienen kuvaeron virheeksi, syntyy hälytysväsymystä. Sopiva kynnys riippuu prosessista, ja se tulee asettaa todellisten testiajojen eikä yleisten markkinointilupausten perusteella.
Arvioi tiedot, käyttö ja kustannukset rehellisesti
Lisenssi on vain osa kustannuksista. Laske mukaan myös aika testitapausten valintaan, testitietojen ylläpitoon, julkaisujen jälkeisiin mukautuksiin, infrastruktuuriin ja arviointiin. Halpa työkalu voi tulla kalliiksi, jos kolme ihmistä lajittelee joka viikko vääriä hälytyksiä. Toisaalta yksilöllisesti pystytetty testipalvelin voi olla kannattava, jos se havaitsee kriittiset regressiot luotettavasti ja lyhentää manuaalisia hyväksyntäpäiviä.
Testitietojen kohdalla pidättyvyys on järkevää. Mahdollisuuksien mukaan tulisi käyttää anonymisoituja tai kohdennetusti luotuja tietoja. Tuotantokopiot sisältävät usein enemmän tietoa kuin testi vaatii. Jos tiedot tallennetaan paikallisesti tai omassa verkossa, käyttöoikeudet, säilytysajat ja lokitus on silti sovittava. Itse ylläpidetty ei tarkoita automaattisesti turvallisesti ylläpidettyä.
Suunnittele myös testijärjestelmän vikaantuminen. Jos yöajo epäonnistuu, pitää olla selvästi nähtävissä, onko sovellus virheellinen, oliko testiympäristö tavoittamattomissa vai puuttuiko riippuvuus, kuten sähköpostipalvelin. Tämä erottelu säästää aamulla paljon aikaa ja estää vääriä hyväksymispäätöksiä.
Aloita rajatulla pilotilla
Mielekkäin vertailu syntyy harvoin esityksessä vaan pilotissa todellisilla kuluilla. Valitse prosessi, jolla on konkreettista liiketoiminta-arvoa mutta hallittava monimutkaisuus. Kirjautuminen roolitarkistuksineen, tilauksen luonti ja lähetteen tulostus voivat sopia paremmin kuin koko järjestelmämaiseman mallintaminen heti.
Määrittele etukäteen, mitä onnistuminen tarkoittaa: esimerkiksi tietty suoritusaika, jäljitettävät virhetodisteet, ei arkaluonteisten tietojen siirtoa ulospäin ja ylläpito, jonka nykyinen tiimi pystyy hoitamaan. Muutaman julkaisusyklin jälkeen näkyy, näyttääkö valittu menetelmä vain hyvältä vai keventääkö se todella työtä.
Paras testiautomaatio ei ole se, jossa on eniten automaatioita. Se on se, jonka tulokset tiimi ymmärtää, johon se luottaa hyväksynnöissä ja jota voidaan edelleen ylläpitää järkevästi seuraavan prosessimuutoksenkin jälkeen.