- What is Automation Testing?
- miksi Automaatiotestaus on kriittistä ohjelmistojen elinkaaressa?
- voiko ohjelmisto testata toista ohjelmistoa?
- mitä testejä tulisi automatisoida?
- Automaatiotestauksen aloittaminen
- esimerkki Testiautomaatiosta
- Miten siirtyä manuaalisesta Automaatiotestauksesta
- Mitä Automatisoida?
- miten automatisoida?
- Testiautomaation huolto
What is Automation Testing?
kuten nimestä voi päätellä. automaatiotestaus vie ohjelmistotestaustoiminnot ja toteuttaa ne automaatiotyökalusarjan tai-kehyksen kautta. Yksinkertaisesti sanottuna, se on eräänlainen testaus, jossa työkalu suorittaa joukon tehtäviä määritellyssä mallissa automaattisesti.
se poistaa paineen manuaalisilta testaajilta ja antaa heille mahdollisuuden keskittyä arvokkaampiin tehtäviin-alustaviin testeihin, testitulosten tarkasteluun jne. Pohjimmiltaan kone ottaa haltuunsa ja toteuttaa arkisia, toistuvia, aikaa hämmentäviä tehtäviä, kuten regressiotestejä. Automaatiotestaus on olennaisen tärkeää, jotta saavutetaan parempi testipeitto lyhyemmissä aikajänteissä sekä parempi tulosten tarkkuus.
miksi Automaatiotestaus on kriittistä ohjelmistojen elinkaaressa?
kuvittele tämä.
ensimmäisenä QA-päivänä sinun on testattava sovellus, joka sisältää noin 100 syöttöä vaativaa kenttää. Kun suoritat eksploratiivisia testejä, sinun täytyy lisätä tulo manuaalisesti kuhunkin kenttään. Tämä kestää noin 10 minuuttia tehdä, jos olet todella nopea.
paina Submit. Näkyviin tulee virheilmoitus. Se näyttää käsittelemättömältä poikkeukselta. Ilmoitat viasta ja tunnet olosi todella hyväksi hyvin tehdystä työstä. Toistat prosessin, löydät muutaman virheen ja sinulla on yleisesti tuottava ensimmäinen päivä.
seuraavana päivänä Kehittäjä korjaa ongelmat ja joudut testaamaan ohjelmiston uutta versiota toistaen samat vaiheet kuin edellisenä päivänä. Vika korjattu. Hyvin tehty. Hyvä käyttökokemus varmistettu, kiitos ponnistelujesi.
kolmantena päivänä kehittäjät ovat julkaisseet uudemman version, jossa on uudempia ominaisuuksia. Mutta sen varmistamiseksi, että uudet ominaisuudet eivät ole rikkoneet vanhempia työominaisuuksia, sinun täytyy toistaa prosessi uudelleen. Ongelmia ei löytynyt.
kuukaudesta eteenpäin kehittäjät julkaisevat uudempia versioita jatkuvasti, mikä tarkoittaa, että ohjelmistoa on testattava jatkuvasti toistaen samaa prosessia (lisäämällä kenttäsyöttöä) joka kerta. Olet kyllästynyt ja väsynyt. Tarkkuutesi alkaa horjua,minkä seurauksena päädyt lopulta puuttumaan bugiin – mahdollisesti melko ilmeiseen.
Usko tai älä, tämä on melko yleinen skenaario useimmille QAs: ille. Ei ole mahdollista tehdä samaa asiaa uudestaan ja uudestaan ja olla täydellinen siinä joka kerta. Tässä kohtaa tulee automaatiotestaus.
voiko ohjelmisto testata toista ohjelmistoa?
Kyllä. Se on automaatiotestauksen koko pointti. Kun kyse on regressiotestauksesta, manuaalinen panostus on turhaa ja tuhlausta. Sen sijaan että ihmiset odottaisivat toistavansa samat vaiheet samalla nopeudella, tarkkuudella ja energialla, on paljon loogisempaa ohjelmoida kone tekemään samoin.
mitä testejä tulisi automatisoida?
ennen testiautomaatiostrategian luomista katsotaan, mitkä testit ovat parhaiten toteutettavissa automaatiossa:
- Regressiotestaus: Regressiokokeet kasvavat jatkuvasti ja vaativat samojen muuttujien täyttämistä lukuisia kertoja, jotta uudet ominaisuudet eivät peukaloisi vanhempia toimintoja. Tämä voidaan helposti automatisoida.
- monimutkaisten funktioiden testaus: automatisoi kaikki kompleksisia laskelmia vaativat testit, jotka ovat alttiita inhimillisille virheille.
- Savukoe: Suorita automatisoituja sviittejä varmistaaksesi tärkeimpien toimintojen laadun. Tämä säästää aikaa tarjoamalla nopean analyysin siitä, vaatiiko rakennus perusteellisempaa testausta.
- Datalähtöinen testaus: automatisoi testit validoimaan toimintoja, jotka on testattava toistuvasti lukuisilla tietokokonaisuuksilla.
- suorituskyvyn testaus: automatisoida testejä, jotka valvovat ohjelmiston suorituskykyä eri olosuhteissa. Tämän tekeminen manuaalisesti olisi erittäin vaivalloista ja aikaa vievää.
- toiminnallinen testaus: Joka kerta, kun Kehittäjä lähettää PR: n, toiminnalliset testit on suoritettava nopeasti ja annettava välitöntä palautetta. Tämä on mahdotonta saavuttaa ilman automaatiota, varsinkin kun organisaatiot skaalautuvat.
Automaatiotestauksen aloittaminen
kun siirryt manuaalisesta automaatiotestauksesta automaatiotestaukseen, muista seuraavat seikat:
- älä tähtää 100-prosenttiseen testiautomaatioon. Kaikkia testejä ei voi automatisoida. Edes automatisoitavissa testeissä ei aseteta alkuperäistä tavoitetta täydellisestä automaatiosta.
- Aseta realistinen tavoite. Aloita esimerkiksi siirtämällä muutama testi automaatioon. Kirjoita pienempiä testitapauksia, joita voidaan helposti käyttää uudelleen saman ohjelmiston tulevissa testeissä. Kartoita testitapaukset vastaavilla toiminnoilla, jotta testipeitto paranee. Leimaa testitapaukset niin, että tiimeillä on selkeyttä siihen, mitä automatisoidaan ja raportoidaan tehokkaammin.
- tutki sovelluksen uusia alueita automaation avulla. Kun liitoksen ulos automaatiostrategioita, varmista, että liiketoiminnan vaatimukset otetaan yhtä vakavasti kuin tekniset näkökohdat.
- tiedä, mitä ei kannata automatisoida. Tämä auttaa päättämään automaation laajuuden ideointiprosessin alkuvaiheessa. Seuraavat testit on parasta jättää manuaalisen kattavuuden varaan:
- käyttäjäkokemuksen testaus: työkalut eivät voi monistaa käyttäjän matkaa kokonaisuudessaan. Algoritmin on mahdotonta ennustaa, miten yksittäiset käyttäjät ovat vuorovaikutuksessa sovelluksen kanssa. Jotta todella arvioida laatua käyttäjäkokemuksen, kiinni ihmisen testaajat. Kokeile manuaalisia interaktiivisia testaustyökaluja, kuten BrowserStack Live.
- Esteettömyystestaus: Kun testataan, kuinka helposti sovellus on saatavilla, ei ole korvaavaa käyttöä ihmiselle. Työkalu ei voi mitata esteettömyyttä, koska ihmisillä on usein erilaisia mielipiteitä siitä, mikä lasketaan esteettömäksi. Ei ole mahdollista, että työkalu tunnistaa, jos ohjelmiston työnkulku tarjoaa helpon pääsyn todellisille ihmisille.
- Valitse oikea työkalutautomaation testaus on täysin riippuvainen työkaluista. Tässä on mitä harkita, kun valitset oikean työkalun:
- ohjelmiston luonne: testataanko sovellusta verkko-vai mobiilipohjaisesti?
jos haluat testata ensin mainittuja, käytä seleenin kaltaista työkalua testien automatisointiin. Jälkimmäiselle Appium on yksi parhaista automaation työkaluista. - Ohjelmoijakokemus: valitse puitteet, kielet ja työkalut, jotka vastaavat testaajan mukavuutta ja kokemusta. Suosituimpia automaatiotestauksessa käytettyjä kieliä ovat Java, JavaScript, Ruby, C# jne.
- avointa lähdekoodia tai ei: budjettirajoitteista riippuen voidaan käyttää avoimen lähdekoodin työkaluja kuten seleeniä tai Appiumia automaatiotarkoituksiin. On kuitenkin tärkeää muistaa, että kaikki avoimen lähdekoodin työkalut eivät ole huonompia kuin kaupallisesti saatavilla olevat kollegansa. Esimerkiksi Selenium Webdriver on avoimen lähdekoodin työkalu, jota automatisoidut testaajat ympäri maailmaa suosivat eniten.
- Valitse oikea testiruudukko
testiruudukko viittaa infrastruktuuriin, jolla kaikki automatisoidut testit suoritetaan. Se sisältää joukon laitteita, selaimet, ja käyttöjärjestelmiä (useita versioita), että ohjelmisto on testattava. On aina parasta automatisoida testit oikeilla laitteilla ja selaimilla. Näin varmistetaan, että ohjelmistoja testataan todellisissa käyttöolosuhteissa.
lisäksi ihanteellisen testiruudukon pitäisi mahdollistaa rinnakkaistestaus. Tämä tarkoittaa, että testaajien pitäisi pystyä suorittamaan useita testejä useilla laitteilla samanaikaisesti. Tämä lyhentää testiaikaa, nopeuttaa tuloksia ja tarjoaa tuloksia lyhyemmissä määräajoissa.
jotain muuta ratkaistavaa on, isännöitäänkö testiruudukkoa paikan päällä vai pilvessä. Muista, että on-premise infrastruktuuri on lähes aina kallista perustaa ja ylläpitää. Se vaatii uusien laitteiden, selainten ja käyttöjärjestelmien seuraamista, niiden päivittämistä ja ylläpitämistä vastaavasti. Tämä on haaste, koska useita versioita jokaisesta julkaistaan joka kuukausi.
vastaavasti pilvipohjaisen verkon testaus on helpompaa, sillä päivityksestä ja ylläpidosta huolehtisi verkkoa tarjoava organisaatio. Esimerkiksi BrowserStack tarjoaa cloud Selenium grid, joka on liitetty 2000 + todellisia laitteita ja selaimia testausta varten. Käyttäjien on yksinkertaisesti rekisteröidyttävä ja aloitettava testaus vankalla Seleeniverkolla, jota päivitetään jatkuvasti parhaiden mahdollisten tulosten saamiseksi.
Browserstackin real device cloud tarjoaa yli 2000 oikeaa selainta ja laitetta välittömään, tilattavaan testaukseen. Cloud tarjoaa myös integraatioita suosittuihin CI / CD-työkaluihin, kuten Jira, Jenkins, TeamCity, Travis CI ja paljon muuta. Lisäksi on olemassa sisäänrakennettuja virheenkorjaustyökaluja, joiden avulla testaajat tunnistavat ja ratkaisevat virheet välittömästi. BrowserStack helpottaa myös Cypress-testausta 30 + – selainversioilla välittömällä, vaivattomalla parallelizaatiolla.
kokeile Automaatiotestausta ilmaiseksi
esimerkki Testiautomaatiosta
kun testiohjelmaa testataan manuaalisesti, testaaja käyttää liitintä ja näppäimistöä vuorovaikutuksessa sen kanssa. Automaatioskriptit ja-työkalut monistavat tätä vuorovaikutusta vaihe vaiheelta.
tässä esimerkissä kokeillaan laskinta, voiko siihen lisätä kaksi numeroa ja näyttää tuloksen. Manuaalisesti sen voi tehdä seuraavasti:
Step 1: Launch Calculator
Step 2: Press 2
Step 3: Press +
Step 4: Press 3
Step 5: Press =
Step 6: the screen display 5
Step 7: Sulje Laskin
automaatiotyökalu voi suorittaa samat vaiheet seuraavalla skriptillä:
//the example is written in MS Coded UI using c# language.public void TestCalculator(){//launch the applicationvar app = ApplicationUnderTest.Launch("C:\Windows\System32\calc.exe");//do all the operationsMouse.Click(button2);Mouse.Click(buttonAdd);Mouse.Click(button3);Mouse.Click(buttonEqual); //evaluate the resultsAssert.AreEqual("5", txtResult.DisplayText,"Calculator is not showing 5");//close the applicationapp.Close();}
kun suoritetaan edellä skripti, täsmälleen sama tulos (5) näkyy. Sen sijaan, että sinun pitäisi käydä läpi manuaaliset vaiheet, kirjoita käsikirjoitus ja anna työkalun hoitaa loput.
Miten siirtyä manuaalisesta Automaatiotestauksesta
alkuun: Kysy kaksi kysymystä.
- mitä automatisoida?
- miten automatisoida?
Mitä Automatisoida?
- automatisoi testit, joita tarvitaan usein tapahtuvassa julkaisusyklissä. Siihen voi sisältyä savukokeita, regressiokokeita ja vastaavia. Periaatteessa automatisoida testejä, jotka nopeuttavat koko testisyklin. Muista, että pienempi manuaalinen toimenpide on nopeampi tulos.
- automatisoi tekniseen ja liiketoiminnalliseen prioriteettiin perustuvia testejä. Ajattele näin:auttaisiko testin automatisointi bisnestä? Auttaisiko tämän testin automatisointi yksinkertaistamaan teknisiä mutkikkuuksia? Jos vastaus on kyllä jompaankumpaan kysymykseen, automatisoi.
- automatisoi käytettävyyden perusteella. Jotkin testit, kuten cross browser-yhteensopivuustestit, toimivat yksinkertaisesti paremmin käsin suoritettuina. Työkaluriippuvuus voi myös rajoittaa tietyn testiryhmän tai organisaation automaatiopotentiaalia.
Lue lisää:10 Testiautomaation parhaita käytäntöjä seurata
miten automatisoida?
aluksi on hyvä muistaa, että kaikkia testejä ei voi automatisoida. Noudattamalla edellisessä osassa esitettyjä kolmea strategiaa on helpompi aloittaa automatisoitu testaus käytännöllisellä tavalla.
- Aloita pienestä. 100% automaatio ei ole tavoite, eikä myöskään mahdollista. Kirjoita pienempiä testijuttuja, koska niitä on helpompi ylläpitää ja käyttää uudelleen. Siirrä pieni määrä testejä automaatioalustalle, suorita testit, analysoi tulokset ja päättää, onko prosessi osoittautunut hyödylliseksi ohjelmistokehitysprosessille.
- jos toiminnasta saadaan merkittävää hyötyä, siirretään lisää testejä automaatioon. Aloita liikkuvat testit paitsi määrä, mutta myös lisätä tyyppi testejä automatisoidaan. Muista, että tämä on vielä kokeiluvaihe. On mahdollista, että tietyt testit osoittautuvat tehottomiksi automaatiossa, ja ne on siirrettävä takaisin manuaaliseen testaukseen.
- Map – testitapaukset kullakin menetelmällä tai funktiolla, jotta saadaan parempi testipeitto. Merkitse testikotelosi tunnistamisen helpottamiseksi, jotta tiimi voi nopeasti tietää, mitkä testit automatisoida. Tämä auttaa myös toteuttamaan parempaa raportointia.
- kun aloitat automaatiotestauksen aloita tutkimalla sovelluksen uusia alueita manuaalisesti. Sitten, luoda riskisuunnitelma, joka yksityiskohtaisesti, mitä on automatisoitava, perustuu liiketoiminnan ja tekniset painopisteet.
- käytä Analytiikkaa loppukäyttäjän mieltymysten määrittämiseen. Luo luettelo selaimista ja laitteista, joilla käyttäjät todennäköisimmin käyttävät ohjelmistoa. Tämä auttaa automaatiotestausta kattamaan oikeat rajapinnat ja optimoimaan ohjelmiston suorituskyvyn oikeilla käyttäjäväylillä.
kokeile automatisoitua testausta Real Device Cloudissa
Testiautomaation huolto
kerran Muotoillun automaation testaussarjoja on ylläpidettävä. Kun ohjelmisto kehittyy ja codebase laajenee, automaatiokomentoja on muokattava ja päivitettävä sisältämään uusia ominaisuuksia ja toimintoja. Pienetkin muutokset käyttöliittymässä voivat häiritä testejä ja aiheuttaa niiden epäonnistumisen. Automaatiotestaajat joutuvat testitapauksia suunnitellessaan ottamaan huomioon kunnossapitotyön ja kustannukset.
testiautomaation kunnossapidon lähestymistapa toimii kahdesta näkökulmasta:
- Testivirhe: kun virheenkorjaus epäonnistui testeissä, etsii mahdollisia huolto-ongelmia. Eikö koekäsikirjoitusta päivitetty riittävästi? Haittasiko ohjelmakoodin muutos koekirjoitusta? Tämä on helppo tapa tunnistaa, mitkä alueet vaativat kunnossapitotöitä.
- riippuvuuksien tai työkalujen muutos: Onko tiimi tai organisaatio muuttanut sovellusliittymiä, raportointityökaluja, tietokantoja jne.? Jos näin on, testejä on ehkä muutettava tai päivitettävä vastaamaan uusia työkalusarjoja. Tämän saavuttamiseksi rakennuttajat ja testaajat on luonnollisesti koulutettava uuteen infrastruktuuriin, jotta he voivat jatkaa kunnossapitoa tulevaisuudessa.
mitkä ovat tehokkaan testiautomaatiostrategian keskeiset osatekijät?
Automaatiotestaus on olennainen osa mitä tahansa testausekosysteemiä. Ilman automaatioon siirtymistä kokonaisvaltainen testaus käy vaikeaksi, samoin jatkuvasti lyhenevien määräaikojen täyttäminen. Tämän vuoksi on tärkeää aloittaa automaation testausprotokollat mahdollisimman varhaisessa vaiheessa tavalla, joka tasapainottaa ja täydentää manuaalista testausta.
kokeile edellä kuvattuja vaiheita ja kokeile tarpeeksi selvittääksesi, mitkä lähestymistavat antavat optimaaliset tulokset. Älä ole huolissasi epäonnistua muutaman kerran ennen löytää sweet spot, joka mahdollistaa tehokkaan automaation vaarantamatta ihmisen validointi.