Automaation kehittäjänä emmekö tunnekin tyytyväisyyttä, kun kuulemme manuaalisen testauksen tiimiltä tai asiakkaalta, miten he ovat hyötyneet rakentamamme automaation käytöstä? Tätä varten luotamme korkealaatuiseen automaatiosovellukseen, joka ei ole ainoastaan vankka vaan myös helposti mukautettavissa liiketoiminta- tai teknisten vaatimusten muutosten edellyttämiin päivityksiin. Ylläpidon pitäisi olla helppoa – tätä muistutamme jatkuvasti itsellemme. Millä tavoin voimme varmistaa tämän?
Testiautomaatiosovelluksen korkean laadun varmistamiseen on useita tapoja. Yksi niistä on uudelleenkäytettävyyden varmistaminen – ei ainoastaan usein käytettyjen testivaiheiden uudelleenkäytöllä, vaan myös usein käytettyjen käyttöliittymäobjektien uudelleenkäytöllä. Tässä artikkelissa selitän, miten objektivarastojen avulla voidaan parantaa uudelleenkäytettävyyttä käyttämällä objekteja uudelleen käyttöliittymän testiautomaatiohankkeessa.
- Mikä objektivarasto on testiautomaatiossa?
- Miksi se on tärkeä?
- Parhaat käytännöt objektivarastojen käytössä
- Objektivarastojen luominen (esimerkkejä)
Mikä objektivarasto on testiautomaatiossa?
Kun aloitat testiautomaatiosovelluksen suunnittelun, useimmat meistä varmistavat, ettemme kirjoita koodilohkoja uudelleen. Tätä varten rakennamme uudelleenkäytettäviä funktioita ja asetamme uudelleenkäytettävät koodilohkot saataville koodikirjastoissa. Oletko kuitenkaan käyttänyt uudelleen usein käytettyjä käyttöliittymäobjekteja? Jos et, selitän, miten voit tehdä sen käyttämällä objektivarastoa perustana.
Objektivarasto on kokoelma käyttöliittymäobjekteja, jotka liittyvät yleisesti toisiinsa. Tämä ei ainoastaan paranna uudelleenkäytettävyyttä, vaan varmistaa myös käyttöliittymäelementtien luotettavuuden ja hallinnan automaatiosovelluksessa.
Testiautomaatioskriptejä rakentaessasi olisit liittänyt testiskriptien vaiheet kuhunkin näistä käyttöliittymäobjekteista. Esimerkiksi –
- Tekstin kirjoittaminen tekstikentän käyttöliittymäobjektiin
- Tekstin hakeminen otsikkotunnisteen käyttöliittymäobjektista
- Hyperlinkkiobjektin napsauttaminen … ja niin edelleen.
Miten voit nyt parantaa uudelleenkäytettävyyttä käyttämällä uudelleen käyttöliittymäobjekteja, joiden parissa skriptisi toimivat?
Jos käyttämässäsi testiautomaatiotyökalussa on ”objektivarasto”, asia on helppo. Objektivaraston avulla voit koota käyttöliittymäobjektit yhteen ja lisätä, poistaa, hallita tai päivittää niitä kyseisestä varastosta järjestelmällisellä tavalla. Voit lopulta käyttää objekteja uudelleen viittaamalla niihin.
Tarkastellaan tilannetta, jossa et ole käyttänyt OR:ää testiautomaatiosovelluksessasi. Tällöin erillisissä testiautomaatioskripteissä, jotka käyttävät samaa käyttöliittymäkomponenttia, lisäisit useita kopioita samasta käyttöliittymäobjektista kuhunkin testiskriptiin suorittaaksesi siihen liittyviä toimintoja.
Tarkastellaan nyt tilannetta, jossa käytämme OR:ää. Tällöin sinulla olisi yksi sijainti/varasto, johon tallentaisit käyttöliittymäobjektit. Näin jokainen testiskripti, jonka on toimittava saman käyttöliittymäobjektin/komponentin kanssa, liittäisi sen samaan OR:ään tallennettuun käyttöliittymäobjektiin. Testisovelluksessa olisi vain yksi kopio käyttöliittymäobjektista, ja useat testiskriptit viittaisivat samaan käyttöliittymäobjektiin tai kutsuisivat sitä. Tässä kohtaa uudelleenkäytettävyys astuu kuvaan!
Have an account? Log In
Miksi se on tärkeä?
Ensimmäinen kokemukseni OR:n käytöstä oli, kun käytin sitä IBM Rational Functional Test Automation -työkalussa. Siitä lähtien olen aina uutta työkalua opetellessani halunnut tarkistaa, onko siinä OR-ominaisuus.
Ensimmäisen kerran käytin OR:ää, kun tiimimme automatisoi laajaa hallinnollista verkkokäyttöliittymäkonsolia, jossa oli useita sivuja. Meillä oli yli 100 automatisoitavaa testitapausta. Jos emme olisi käyttäneet OR:ää, automatisointi olisi ollut valtava haaste. Analysoimme tilanteen ja tulimme siihen tulokseen, että rakentamamme testiautomaatiosovellus oli ihanteellinen käyttötapaus OR:lle.
Syyt?
1. Jokaisessa automatisoitavassa testitapauksessa oli useita yhteisiä alikulkuja, ja siksi niissä oli yhteisiä käyttöliittymäkomponentteja.
Koska alikulut olivat yhteisiä, skenaarioissa oli ilmeisen selvästi yhteisiä käyttöliittymäobjekteja. Emme halunneet lisätä samoista käyttöliittymäobjekteista kopioita yhä uudelleen, joten päätimme käyttää käyttöliittymäobjekteja uudelleen.
Esimerkiksi tiettyjen testitapausten piti siirtyä samojen navigointivalikon linkkien kautta ennen tiettyjen vaiheiden suorittamista. Siksi suunnittelimme, että meillä olisi varasto, joka olisi nimetty ainoastaan kaikkien navigointilinkkien tallentamista ja hallintaa varten. Näin pystyimme käyttämään navigointivalikon linkkejä uudelleen OR-tiedostossa.
2. Saimme tiedon, että tulevaisuudessa käyttöliittymään voisi tulla päivityksiä – esimerkiksi hyperlinkkeihin ja otsikkotunnisteisiin.
Siksi halusimme varmistaa, että tällaisen käyttöliittymäpäivityksen tapahtuessa testiautomaatiosovellus mukautuisi muutokseen helposti ja että ylläpitotyö olisi nopeaa ja vaivatonta.
Tässä OR tuli apuumme: meidän ei tarvinnut tehdä muutoksia saman käyttöliittymäobjektin jokaiseen kopioon tallennettuihin käyttöliittymäobjektivarastoihin. Aina muutoksen tapahtuessa meidän tarvitsi vain päivittää yksi siihen liittyvä objekti OR:ssä, minkä jälkeen testiskriptit suoritettiin päivitetyn käyttöliittymäobjektin mukaisesti.
3. Meidän oli rakennettava yli 100 skriptin testiautomaatiosarja kuukaudessa!
Tässä tuli esiin toinen OR:n käytön etu: kun rakensimme OR:n eikä meidän kaikkien tarvinnut lisätä samoja käyttöliittymäobjekteja uudelleen, säästimme aikaa. Rakensimme hyvin järjestetyn OR:n, ja meidän tarvitsi vain rakentaa koodimme OR:ssä järjestettyjen objektien ympärille.
Keskityimme testitapauksen tavoitteeseen ja testitapausten liiketoimintalogiikkaan sen sijaan, että olisimme tuhlanneet aikaa objektien lisäämiseen jokaisessa testiskriptissä. Säästimme aikaa ja toimitimme lopulta testiautomaatiosarjan tavoiteajassa eli kuukaudessa!
Parhaat käytännöt objektivarastojen käyttämiseen
Nyt kun tiedät tilanteet, joissa käyttöliittymäobjektivarastosta olisi hyötyä, etkö halua tietää, mikä saa sen toimimaan?
1. Luokaa tiiminä yhteinen tavoite uudelleenkäytettävyydelle. Ymmärtäkää yhdessä, miksi siitä voi olla hyötyä automaatiotiimillenne, manuaalisen testauksen tiimille ja lopulta myös asiakkaalle.
2. Kun kehitätte testiautomaatiosarjaa, olkaa tiiminä aina ajan tasalla ja tietoisia rakentamistanne objekteista. Laatikaa ryhmittelysäännöt ja nimeämiskäytännöt, joita kaikki noudattavat. Aloittaessanne voitte laatia suunnitelman siitä, miten aiotte järjestää ja tallentaa kunkin OR-tiedoston. Esimerkiksi navigointivalikon objektit yhteen OR-tiedostoon ja kirjautumissivun käyttöliittymäobjektit toiseen OR-tiedostoon. Voitte myös päättää objektien nimeämiskäytännöistä, jotta ne on helppo löytää.
3. Muistakaa nimetä käyttöliittymäobjektit niin, että nimet ovat selkeitä ja objektit on helppo löytää ja yhdistää asiaankuuluviin toimintoihin. Nimetkää käyttöliittymäobjektit niin, että kuka tahansa käyttöliittymäobjektivarastoa päivittääkseen tarkasteleva löytää käyttöliittymäobjektin helposti. Näytän seuraavassa esimerkissä yhden tällaisen tilanteen.
Objektivarastojen luominen (esimerkkejä)
Katsotaan nyt käytännössä, miten pääset nopeasti alkuun objektivarastojen kanssa. UFT:n, IBM RFT:n, UiPath Test Automation Suiten ja Power Automaten kaltaisissa työkaluissa on objektivarastot. Joten miksi odottaa? Usko pois, se on todella helppoa!
Tässä on esimerkki QAL-verkkosivustoa varten luomastani OR:stä:
Tarkastele yllä olevaa käyttöliittymää – ryhmittelin kaikki kirjautumiskäyttöliittymän toimintoihin liittyvät käyttöliittymäelementit yhteen, koska ne ovat yhteisiä useille testitapauksille. Seuraavaksi ryhmittelin navigointilinkit yhteen. Jos tallennamme nämä objektit ryhmään, kaikki testiskriptit käyttävät varmasti tätä käyttöliittymälinkkiobjektien ryhmää kunkin testitapauksen alussa, joten objekteja voidaan käyttää uudelleen sen sijaan, että ne lisättäisiin varastoon uudelleen
Esimerkki objektivaraston käyttämisestä UiPathissa
Tältä objektivarasto näyttää UiPath-työkalussa:

Tässä objektivarastoesimerkissä järjestin ”Kirjautumissivu”-objektit yhteen joukkoon ja ”Päänavigointilinkit”-objektit toiseen joukkoon. Jos rakentaisin useita testiskriptejä esimerkiksi ”Kirjautumissivu”-sivun testaamista varten, kaikissa testiskripteissä kutsuttaisiin samoja objekteja, jotka olin sijoittanut ”Kirjautumissivu”-joukkoon.
More Articles
Esimerkki objektivaraston käyttämisestä PowerAutomatessa
Tältä objektivarasto näyttää PowerAutomate-työkalussa:

Kuten mainitsin aiemmin, uudelleenkäytettävyyden kannalta on tärkeää myös nimetä objektit niin, että löydät ne myöhemmin helposti. Tarkastele ”meprmath_quiz”-käyttöliittymäobjektia. Toisin kuin muut kentät, emme oikeastaan pysty helposti tunnistamaan, mihin käyttöliittymäobjektiin se viittaa. Kun siis lisäsin ”quiz”-tekstikentän käyttöliittymäobjektin, sen kentän nimeksi tuli ”meprmath_quiz”, mutta tällaisessa tapauksessa voisimme ehkä nimetä sen esimerkiksi ”login_add”-nimiseksi, jotta objekti olisi helppo löytää OR:n automaation ja ylläpidon aikana.
Yhteenveto
Miten siis käytät OR:ää suosikkitestiautomaatiotyökalussasi? Kuulisimme mielellämme.
Toivon, että tämä artikkeli auttaa sinua ymmärtämään, miten OR auttaa tiimiä pitkällä aikavälillä. Olemme onnekkaita, että elämme aikakautta, jolloin useimmissa testiautomaatiotyökaluissa on OR-ominaisuus. Sinun tarvitsee siis vain tutustua siihen, miten se toimii suosikkityökalussasi!
Opitko tästä artikkelista jotain uutta? Jos haluat lukea lisää tämänkaltaisia artikkeleita, muista tilata The QA Lead -uutiskirje!
Aiheeseen liittyvää luettavaa:
Aiheeseen liittyvä työkalulista: SUORITUSKYKYTESTAUSOHJELMISTOT QA-TIIMEILLE
Tutustu myös:



