Uudelleenkäytettävyyden mahdollistaminen objektivarastoilla automaatiotestauksessa

By Najwa Riyaz

Käytämme yleensä koodilohkoja ja funktioita uudelleen asioiden helpottamiseksi, joten miksemme käyttäisi myös käyttöliittymäobjekteja uudelleen? Useimmat testiautomaatiotyökalut mahdollistavat objektivarastojen käytön juuri tästä syystä.

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?

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 –

  1. Tekstin kirjoittaminen tekstikentän käyttöliittymäobjektiin
  2. Tekstin hakeminen otsikkotunnisteen käyttöliittymäobjektista
  3. 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!

Get Free Access
Get regular tech leadership wisdom for delivering better software and systems.
Get Free Access

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: 

Kuvakaappaus UiPathin objektivarastosta
Esimerkki objektivarastosta UiPathissa.

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:

Kuvakaappaus PowerAutomaten objektivarastosta
Esimerkki objektivarastosta PowerAutomatessa.

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:

Najwa Riyaz
Najwa Riyaz is an experienced automation developer, business analyst, tester, and project manager. She has worked with clients across multiple sectors including banking, travel/transport, and storage management. She is passionate about traveling around the world and enjoys photography.

You may also like