Ekvivalenssiosioiminen ohjelmistotestauksessa on mustan laatikon testaustekniikka, jonka avulla voit rakentaa tehokkaita testitapauksia tinkimättä testin kattavuudesta.
Tässä artikkelissa tarkastelemme, mitä ekvivalenssiluokkien ositus on, miksi se on hyödyllinen, ja tutkimme joitakin prosesseja ja lähestymistapoja, joita voit käyttää tämän tekniikan hyötyjen hyödyntämiseen.
Mikä on ekvivalenssiluokan jakaminen
ohjelmistotestauksessa?
Kaikilla ohjelmistoilla on tietyt syöttöehdot. Ohjelmistotestauksen yhteydessä nämä syöttöehdot kuvaavat arvoja tai tietoja, joita testaajan on käytettävä ohjelmistonsa laadun ja toimivuuden tarkistamiseen. Nämä syötteet voivat olla niinkin yksinkertaisia kuin hiiren napsautus, aina tekstiin ja numeroihin asti.
Ohjelmistotestauksessa käytettävässä ekvivalenttijaottelussa tutkitaan erilaisia syötteitä, joita tarvitaan ohjelmiston käyttämiseen, ja ryhmitellään ne ekvivalenssiluokkiin eli syötteiden ryhmiin, joilla on vastaava vaikutus ohjelmiston käyttäytymiseen.
Jos tiedät, miten kukin tuloryhmä käyttäytyy, sinun ei tarvitse testata jokaista ryhmän edustajaa. Vastaavuusluokkien jakaminen on erinomainen tapa auttaa testaajia vähentämään turhien testien määrää. Kun ohjelmistokehitys on erittäin kilpailuhenkistä ja aikataulut yhä tiukemmat, ajan ja vaivannäön säästäminen ohjelmistotestauksen elinkaaren aikana (STLC) on ratkaisevan tärkeää.
Lopuksi on syytä huomata, että ekvivalenssitestaus on mustan laatikon testaustekniikka. Lyhyesti sanottuna se tarkoittaa, että testaajien ei tarvitse tietää ohjelman sisäisestä koodista tai sisäisestä toiminnasta. Testit perustuvat syötteisiin, tuotoksiin ja ulkoiseen käyttäytymiseen. Näin ollen testit keskittyvät pitkälti käyttäjän käyttäytymiseen ohjelman käytön aikana.
1. Ohjelmistotestauksen ekvivalenssiosiointi pähkinänkuoressa
Ekvivalenssijaottelu jakaa ohjelmistotestauksen syöttötiedot kahteen leiriin: kelvollisiin ja epäkelvollisiin syötteisiin. Kussakin osiossa olevien arvojen on saatava ohjelmisto käyttäytymään samalla tavalla. Esimerkiksi:
- Jos osiossa A olevan yhden arvon ehto on tosi, myös muiden osiossa A olevien arvojen on oltava tosi.
- Vastaavasti, jos yhden osion A arvon ehdot ovat vääriä, myös muiden osion A arvojen on oltava vääriä.
Testauksessa jokainen osio on testattava vähintään kerran. Loogisesti tämä tarkoittaa, että jos yksi osiossa A oleva tulo epäonnistuu, myös kaikki muut tulot epäonnistuvat. Tämän prosessin pitäisi säästää aikaa, koska sen sijaan, että testaajat testaavat jokaista osiossa A olevaa syötettä, he voivat testata vain yhtä ja ekstrapoloida tuloksen sen yhtäläisyyksien perusteella.
2. Miksi ekvivalenssiluokkien testaus on tärkeää ohjelmistotestauksessa?
Ennen kuin käsittelemme vastaavuusluokkatestauksen suoria hyötyjä ohjelmistotestauksessa, meidän on määriteltävä, miksi lähestymistapa on tärkeä.
Kaikki testaajat ymmärtävät, että ohjelmistotestaus vaatii kompromisseja. Aika ja budjetit ovat rajalliset, joten testaajien on hyödynnettävä resurssejaan parhaalla mahdollisella tavalla. Ohjelmistotestauksen ekvivalenssijaottelu auttaa tiimejä löytämään tasapainon tehokkuuden ja luotettavuuden välillä testauksessa vähentämällä syötteiden määrää.
Ekvivalenssiosioinnin edut
ohjelmistotestauksessa
Testaustiimit suosivat vastaavaa osiota ohjelmistotestauksessa monista eri syistä. Seuraavassa on joitakin kaikkein kiinnostavimpia.
1. Tehokkuus
Ekvivalenssiosioiden testauksen suuri etu on sen tehokkuus. Kun testaajat käyttävät ekvivalenssiosiointia, he voivat vähentää tarvittavien testitapausten määrää tinkimättä testin kattavuudesta. Valitsemalla syöttötapauksen kustakin vastaavuusluokasta testaajat voivat olla varmoja siitä, että he ymmärtävät, miten heidän ohjelmistonsa toimii erilaisilla syötteillä.
2. Yksinkertaisuus
Toinen suuri etu ohjelmistotestauksen ekvivalenssiosioinnissa on yksinkertaisuus. Monipuolisten syötteiden jakaminen sekä kelvollisiin että virheellisiin tietoihin tarkoittaa, että testien suunnittelu on paljon yksinkertaisempaa. Jokaisen syötteen testaaminen erikseen vaatii paljon dokumentointia ja koordinointia. Tämän vähentäminen yhteen edustavaan esimerkkiin tehostaa testausprosessia.
Parannettu kattavuus
Käyttämällä vastaavuusluokkia testauksessa voit myös käyttää testausaikaa tehokkaammin. Testitulosten vähentäminen luokkiin tarkoittaa, että voit testata jokaisen luokan perusteellisemmin. Tämä kattava lähestymistapa olisi suoraan sanottuna mahdoton, jos jokainen tulo testattaisiin erikseen. Ekvivalenssiosioinnin avulla tiimit voivat perehtyä perusteellisesti ja testata kelvollisia ja epäkelvoja tietoja, ääritapauksia, raja-arvoja ja paljon muuta.
3. Uudelleenkäytettävyys
Alkuvaiheen aika, jonka investoit kunkin vastaavuusluokan määrittämiseen ohjelmistotestauksessa, maksaa itsensä takaisin, jos käytät näitä luokkia uudelleen tulevissa syöttötesteissä. Vaikka kaikki osiot eivät ole merkityksellisiä tulevien testien kannalta, ne, jotka ovat, säästävät paljon aikaa joko tulevissa projekteissa tai jopa regressiotestaustilanteissa.
Ekvivalenssiosioinnin haitat
ohjelmistotestauksessa
Vaikka ekvivalenssiosioinnilla on joitakin merkittäviä etuja, se ei ole ihanteellinen ratkaisu kaikkiin skenaarioihin. Tutkitaanpa joitakin sen rajoituksia.
1. Syöttöjärjestys
Tietyissä tilanteissa syöttöjärjestys on kriittinen osa sovelluksen toimivuuden testausta. Sitä ei voi vähentää käyttämällä ekvivalenssiosiointia. Testaajien on oltava tietoisia näistä tilanteista ja käytettävä vaihtoehtoisia tekniikoita hyvän kattavuuden varmistamiseksi.
2. Monimutkaiset riippuvuudet syötteistä
Monimutkaiset ohjelmistot, joissa on monimutkaisia syöttöriippuvuuksia, ovat toinen alue, jossa ekvivalenssiosioinnin rajoitukset tulevat esiin. Esimerkiksi ohjelmisto, joka tuottaa laskelmia eri syötteiden perusteella. Tässä skenaariossa testaajien on käytettävä erilaisia tekniikoita, jotta voidaan vähentää kombinatorista räjähdysmäistä kasvua ja lisätä vikojen eristämisen todennäköisyyttä.
Vaihtoehtoiset lähestymistavat täydentämään
vastaavuustestauksen rajoitukset
Vaikka ekvivalenssiosioiden testaus soveltuu moniin testiskenaarioihin, erittäin monimutkaiset ohjelmistot, joissa on monimutkaisia riippuvuuksia syöttöarvojen välillä, voivat vaatia muita täydentäviä lähestymistapoja.
Monimutkaisten ohjelmistojen testitapausten kirjoittamisessa näiden lähestymistapojen yhdistelmä on hyvä idea.
1. Pareittainen testaus
Pareittainen testaus on ohjelmistotestausmenetelmä, jossa testataan jokaisen syöttöparin kaikki mahdolliset yhdistelmät. Tällä lähestymistavalla varmistetaan, että jokainen parametripari testataan yhdessä vähintään kerran.
2. Päätöstaulukkotestaus
Päätöstaulukko auttaa testaajia kartoittamaan metodisesti erilaisia syöttöyhdistelmiä. Se on hyvä tapa varmistaa järjestelmällinen kattavuus, kun on olemassa monimutkaisia riippuvuuksia.
3. Tilasiirtymien testaus
Tässä testaustyypissä mitataan, miten ohjelmisto siirtyy eri tilojen välillä eri syötteiden yhdistelmien vaikutuksesta.
4. Mallipohjainen testaus
Tämä lähestymistapa edellyttää mallin laatimista ohjelmiston sisäisen logiikan pohjalta ja automaatiotyökalun käyttämistä testitapausten luomiseen mallin pohjalta. Tämä tekniikka on taitava käsittelemään monimutkaisuutta ja varmistamaan riittävän kattavuuden.
Ekvivalenssiluokkien jakamisen testausesimerkkejä
Paras tapa ymmärtää ekvivalenssiosiointia on tarkastella, miten ja missä voit käyttää ekvivalenssiluokkaa ohjelmistotestauksessa. Seuraavassa on muutama esimerkki, joiden avulla voit havainnollistaa käsitettä paremmin.
1. Ekvivalenssiluokkien jakamisen testausesimerkki #1
Verkkotilauslomake on hyvä ekvivalenssiluokan esimerkki ohjelmistotestauksessa.
Oletetaan, että olet rakentamassa sovellusta verkossa toimivalle kiinteän kaluston jälleenmyyjälle. A4-paperisäkkejä varten on olemassa tyypillinen tilauslomake. Seuraavassa kerrotaan, miten voit testata tätä muotoa vastaavuusluokkien avulla.
Ekvivalenssiluokat:
A4-paperin määrät ovat tietyllä alueella, esimerkiksi 1-100. Kolme luokkaa ovat:
- 1-100
- Numerot alle 1
- Numerot yli 100.
Testitapaukset:
On suoritettava kolme testitapausta, joiden odotettavissa olevat tulokset ovat seuraavat
- Mikä tahansa numero väliltä 1-100 = tilaus käsitelty
- Numerot alle 1 = virheilmoitus
- Yli 100 = virheilmoitus
2. Ekvivalenssiosioinnin testausesimerkki #2
Ohjelmistotestauksen ekvivalenssiluokka voi käsitellä muutakin kuin numeroita. Tässä esimerkissä tarkastelemme, miten voit käyttää samaa periaatetta tiedostojen latausportaalin varmentamiseen. Oletetaan, että sinun on testattava sivustoa, joka vaatii käyttäjiä lataamaan henkilöllisyysasiakirjoja, mutta voit hyväksyä vain tietyssä muodossa olevia asiakirjoja.
Ekvivalenssiluokat:
- Tuettuja asiakirjoja ovat PDF ja JPEG.
- Tukemattomia asiakirjoja ovat kaikki muut asiakirjaformaatit
- Ei asiakirjaa
Testitapaukset:
- Testaa lataamalla PDF- tai JPEG-tiedosto = onnistunut lataus.
- Testaa lataamalla tukematon tiedostomuoto = virheilmoitus
- Testi ilman tiedoston latausta = virheilmoitus
Miten ekvivalenssiositus toteutetaan?
ohjelmistotestauksen lähestymistapa
Jos haluat käyttää vastaavuusluokkia testauksessa, sinun on omaksuttava strateginen lähestymistapa. Tässä on hyödyllinen vaiheittainen opas ekvivalenssiosioinnin toteuttamisesta ohjelmistotestauksessa.
Vaihe #1: Määritä syöttömuuttujat
Kukin ohjelmisto reagoi erilaisiin syötemuuttujiin. Monimutkaisissa ohjelmistoissa nämä muuttujat voivat olla valtavia. Käy siis läpi ohjelmistovaatimukset ja -spesifikaatiot ja määritä kaikki muuttujat, jotka vaikuttavat ohjelmiston käyttäytymiseen.
Joitakin ilmeisimpiä syötteitä ovat käyttäjän syöttölomakkeet. Sinun on kuitenkin harkittava laajempaa valikoimaa syötteitä listallesi. Voit myös ottaa huomioon ympäristömuuttujat, API-kutsut, sisäiset laskelmat ja niin edelleen.
Seuraavaksi sinun on ymmärrettävä muuttuvien tietojen eri tyypit. Voit luokitella nämä muuttujat kokonaisluvuiksi, boolen muuttujiksi, merkkijonoiksi jne. ja määritellä asianmukaiset osiot.
Lopuksi sinun on tutkittava syöttörajoituksia. Tällaisia asioita ovat esimerkiksi sallitut merkit, määritellyt muodot ja minimi- ja maksimiarvot.
Vaihe #2. Kelvollisten ja epäkelvollisten osioiden määrittäminen
Tarkastele jokaista syötemuuttujaa ja aloita niiden jakaminen kelvollisten ja epäkelvollisten tulosten mukaan. Nämä ovat vastaavuusluokkasi testauksessa.
1. Kelvolliset osiot
Kelvolliset osiot voidaan jakaa kahteen luokkaan.
Positiiviset ekvivalenssiluokat:
Arvot, joita odotat ohjelmiston käsittelevän onnistuneesti. Esimerkiksi ohjelmistoissa, jotka tallentavat prosentuaalisia arvosanoja, kaikki arvot välillä 0-100 ovat kelvollisia.
Negatiiviset ekvivalenssiluokat:
Tämä luokka on tarkoitettu arvoille, jotka ovat odotetun syötteen rajojen ulkopuolella, mutta joita ohjelmiston pitäisi käsitellä virheilmoituksella. Esimerkiksi prosenttiluokkaa varten syötetään 110, jolloin ohjelmisto palauttaa virheilmoituksen “Kaikkien arvojen on oltava 0-100”.
2. Virheelliset osiot
Nämä vastaavuusluokat sisältävät syötteitä, jotka aiheuttavat virheitä tai odottamatonta käyttäytymistä. Yllä olevassa esimerkissämme tämä voisi tarkoittaa esimerkiksi yrityksiä syöttää arvosanan A+ tai B tai vastaavia syöttötietoja prosenttiarvosanaan. Vaikka nämä syötteet voivat olla teknisesti oikeita, ne eivät vastaa numeerisia odotuksia.
#3. Tehokkaiden testitapausten kirjoittaminen
Seuraavaksi sinun on suunniteltava testitapaukset, jotka kattavat jokaisen vastaavuusosion vähintään kerran. Kuten aiemmin artikkelissa mainittiin, tällä varmistetaan asianmukainen testien kattavuus.
Ensiksi sinun on valittava kunkin vastaavuusosion sisällä edustavat arvot, jotka voivat kattaa sekä kelvolliset että virheelliset tiedot.
Vinkkejä vankkojen testitapausten kirjoittamiseen
- Mieti raja-arvoja: Varmista, että testaat osioiden rajat. Minimi, maksimi, inklusiivinen, eksklusiivinen jne., koska nämä alueet ovat vahvoja kandidaatteja virheille. Jos esimerkiksi syöttöodotuksesi ovat välillä 0-100, testaa negatiiviset arvot sekä luvut kuten 101.
- Harkitse positiivisia ja negatiivisia testiskenaarioita sekä kelvollisten että epäkelvollisten testitapausten osalta.
- Yhdistelmäkokeet ovat hyvä ajatus. Käytä muutamia erilaisia lähestymistapoja, kuten vaihtoehtoisissa lähestymistavoissa on esitetty, täydentämään edellä esitetyn vastaavuustestausosion rajoituksia.
- Dokumentoi perustelut sille, miksi syöttöarvot on jaettu tiettyihin osioihin, ja hahmottele selkeästi kunkin testin odotettu käyttäytyminen.
- Käytä mahdollisuuksien mukaan visuaalisia työkaluja, jotta testitapaukset olisivat selkeämpiä ja objektiivisempia, käyttämällä kaavioita tai taulukoita osioiden kartoittamiseen.
#4. Aikatauluta ja suorita testitapaukset
Aseta tehtävät tärkeysjärjestykseen seuraavien tekijöiden perusteella:
- Millä alueilla on todennäköisimmin vikoja
- Mitkä skenaariot aiheuttavat todennäköisimmin vakavia skenaarioita, kuten kaatumisia tai jäätymisiä.
Suorita sitten testit ja kirjaa tulokset ja mahdolliset virheet. Monimutkaisissa ohjelmissa, joissa on paljon syötteitä, voit käyttää RPA-työkaluja jäljittelemään käyttäjän toimia.
#5. Analysoi tulokset
Yhdistä kerätyt testitiedot ja analysoi tulokset. Joitakin menetelmiä, joita sinun on käytettävä, ovat:
- Tarkastele jokaista testitapausta ja vertaa todellisia tuloksia odotettuihin tuloksiin.
- Etsi mahdolliset poikkeamat ja tutki ja raportoi mahdolliset viat ja puutteet.
#6 Lisää vinkkejä
Vaikka nämä vinkit eivät sovellu kaikkiin skenaarioihin, niistä on hyötyä monimutkaisessa ohjelmistotestauksessa.
- Päätöstaulukot ovat erinomainen tapa havainnollistaa ekvivalenssiosiot ja erilaiset syöttöyhdistelmät, joita saatat haluta käyttää.
- Voit yhdistää vastaavuusluokkia, jos ne käyttäytyvät lähes identtisesti, mikä optimoi testausprosessia entisestään.
- Paranna vikojen havaitsemista raja-arvotestauksen avulla
- Automatisoi mahdollisuuksien mukaan ekvivalenssiosioinnin testitapaukset.
Ekvivalenssijako ja raja-arvoanalyysi
Ekvivalenssiosioinnin lähtökohtana on oletus, että jokainen testi osiossa tuottaa saman tuloksen. Vaikka tämä on totta monissa tilanteissa, se ei aina toimi. Esimerkiksi osioon vahingossa lisätyt syötteet voivat jäädä tarkistamatta, mikä johtaa kattavuuden vähenemiseen ja mahdolliseen ohjelmiston epävakauteen myöhemmin.
Ratkaisu tähän ongelmaan on raja-arvotestaus. Sen avulla ohjelmistotestausryhmät voivat keskittyä alueisiin, jotka todennäköisimmin sisältävät riskejä, ja testata ohjelmiston niiden perusteella. Lyhyesti sanottuna siinä ehdotetaan, että riskit esiintyvät todennäköisimmin syöttöosioiden reunoilla tai rajoilla. Näin ollen testaajat voivat kirjoittaa testitapauksia syötteiden ylä- ja alarajoille muiden vastaavuusluokan testitapausten lisäksi.
Ekvivalenssin jakaminen ja automatisointi ZAPTESTin avulla
Ohjelmistotestien automatisointityökalut, kuten ZAPTEST, voivat auttaa tiimejä automatisoimaan vastaavuusosioinnin sekä testien luomisen että suorittamisen aikana.
Tutustutaanpa siihen, miten ZAPTEST voi auttaa sinua hyödyntämään tämän hyödyllisen mustan laatikon testaustavan edut.
1. Työkalun valinta
Oikean työkalun valitseminen työhön on tärkeää. Useimmat testiautomaatiotyökalut ovat erikoistuneet joko web-, mobiili- tai työpöytätestaukseen. ZAPTEST pystyy testaamaan eri alustoja ja sovelluksia, joten se on hyvä valinta.
2. Testitapausten kirjoittaminen ja suorittaminen
ZAPTEST 1Scriptin avulla voit skannata käyttöliittymän testiautomaation rakentamiseksi. Lisäksi voit skannata myös sovelluksen malleja, jos olet kehityksen alkuvaiheessa. Käyttämällä Scan GUI -toimintoa ZAPTEST skannaa kaikki testikohteet ja lisää ne kohteiden luetteloon.
Tästä voit lisätä objekteja kaavioon ja rakentaa testivaiheet.
ZAPTESTin avulla voit automatisoida tapausten kirjoittamisen yksinkertaisella vedä ja pudota -käyttöliittymällä. Et tarvitse koodausosaamista testitapausten rakentamiseen ZAPTESTin avulla. Tästä voit siis valita asiaankuuluvan toiminnon pudotusvalikosta ja rakentaa testitapauksen käyttöliittymässäsi tarvittavien syöttöarvojen perusteella. Sen jälkeen voit rakentaa testitapauksia kullekin vastaavuudelle ja suorittaa testitapaukset. Voit jopa käyttää testitapauksia uudelleen ja muokata niitä Step-editorissa, mikä säästää paljon aikaa.
3. Raportointi ja testitapausten hallinta
ZAPTESTin avulla voit suorittaa testitapauksia rinnakkain, mikä säästää huomattavasti aikaa. Tämä voi auttaa sinua suorittamaan suuren määrän erilaisia vastaavuusosioita kerralla tai suorittamaan tiettyjä testiryhmiä.
Tulokset on helppo kerätä yksityiskohtaisten epäonnistuneiden ja läpäistyjen raporttien, kuvakaappausten, suorituslokien ja kuhunkin testitapaukseen liittyvien suorituskykymittareiden ansiosta.
4. Testitapausten ylläpito
Voit myös yksinkertaisesti seurata ja ylläpitää testitapauksia laadukkaiden versionhallintaominaisuuksien ansiosta. Lisäksi ZAPTESTin käyttäjät voivat kloonata ja käyttää testejä uudelleen saavuttaakseen uuden tehokkuuden tason.
ZAPTEST tarjoaa paljon muitakin toimintoja kuin testitapausten automatisoinnin. ZAPTEST tarjoaa RPA-työkalujen avulla 2-in-1-toiminnallisuuden, joka kuroo umpeen DevOpsin ja BizOpsin välisen kuilun hyperautomaation leimaamassa tulevaisuudessa, jossa kaikki automatisoitavissa oleva automatisoidaan.
Lopulliset ajatukset
Ekvivalenssiosiointi on tyylikäs ratkaisu tilanteisiin, joissa testaajien on löydettävä tasapaino tehokkuuden ja tarkkuuden välillä. Kun jotkin ohjelmistot sallivat lähes loputtoman määrän syötteitä, vastaavuusluokkien jakaminen auttaa tiimejä jakamaan testausdatan hallittaviin, pieniin palasiin, jotka voidaan testata perusteellisesti.