Miért fontos a tesztelésre is időt szánni?
Olvasási idő: 4 PercMi a különbség a manuális és az automatizált tesztelések között?
A webfejlesztés folyamatának egyik nagyon fontos része a tesztelés. A tesztelés célja a hibák és a szolgáltatásokkal kapcsolatos problémák felderítése. Teszteléskor ellenőrzésre kerülnek a weboldal legfontosabb funkciói, kinézete és használhatósága. Ez a fejlesztési folyamat utolsó fázisában történik, mielőtt a weboldal élesítése megtörténne és az ügyfélnek átadásra kerülne.
A tesztelés csoportosítása
A tesztelést többféle módon is csoportosíthatjuk, például az alapján, hogy a tesztelésnek mi a fő fókusza.
Beszélhetünk egyrészt a „dummy” tesztről, másrészt az éles tesztelésről. A dummy tesztelés során az elkészült fejlesztésnél elsősorban azt ellenőrizzük, hogy az egyes funkciók megfelelően működnek-e. Ez a tesztelés tovább is bontható az alapján, hogy csak a rendszer belső funkcióit teszteljük vagy egy külső ERP rendszerrel történő összekötésből fakadó funkcionalitást is.
Az éles tesztelés ezzel szemben már inkább arra koncentrál, hogy a feltöltött végleges tartalommal megfelelően működik-e, megfelelően néz-e ki a website. Ilyenkor már leginkább a vizuális elcsúszásokat korrigáljuk, amik a feltöltött végleges adatokból eredhetnek.
Egy másik módja a tesztelés csoportosításának, a végrehajtás mikéntje. Ilyenkor beszélünk a manuális vagy más néven a kézi és automatizált tesztelésről. Ezeket a tesztelési módokat részletesebben is bemutatjuk, valamint megvizsgáljuk, milyen előnyei és hátrányai vannak.
A manuális (kézi) tesztelés
A manuális (kézi) tesztelés az a folyamat, amelyben a minőségbiztosítási elemző, azaz a QA szakember egyenként, egyedi módon végzi a teszteket. Az elemzők teszteseteket hajtanak végre, és összefoglaló hibajelentéseket készítenek speciális automatizálási eszközök nélkül.
A kézi tesztelés során az ember lépésről lépésre végzi el a teszteket, vagyis nagyon gyakorlatias. Ennek feltétele, hogy a tesztet végző egyén a teszteset létrehozásától a tényleges tesztvégrehajtásig nagymértékben részt vegyen.
Éppen ezért, a kézi tesztelés hátrányai között szerepel, hogy nagyon lassú és fárasztó folyamat, valamint csak bizonyos számú eszköz- és operációs rendszer-permutációt fedhet le.
A kézi tesztelés legnagyobb előnye az automatizálással vagy a folyamatos teszteléssel szemben az összpontosított figyelem. Amikor egy tesztelő manuálisan hoz létre és hajt végre teszteket, sokkal összetettebb és árnyaltabb tesztforgatókönyvet kezelhet.
A kifinomult tesztelések esetében néha csak a kézi tesztelés használható. A kézi tesztelésnél kisebb a hamis negatívok kockázata is. Abban az esetben, ha ritkán előforduló, magas kockázatú vagy változékony tesztekről van szó, akkor nem szabad automatizálni.
Íme néhány olyan eset, amikor a kézi tesztelést javasoljuk az automatizált tesztelés helyett:
- UX és feltáró tesztelés
- Összetett tesztforgatókönyvek, amelyek néha nem is automatizálhatók
- Teszt forgatókönyvek, amelyeket csak ritkán kell érvényesíteni
Az automatizált tesztelés
Az automatizált tesztelés az a folyamat, amelynél a tesztelő szakember eszközöket és szkripteket használ a tesztelés során, tehát a tesztet magát egy eszköz hajtja végre. Ez a fajta tesztelés segít a tesztelőnek abban, hogy több tesztesetet hajtson végre, ezáltal javítva a tesztek lefedettségét.
Az automatizált tesztelés során tehát, a tesztek automatikusan kerülnek végrehajtásra egy tesztautomatizálási keretrendszereken keresztül, más eszközökkel és szoftverekkel együtt.
Az automatizált teszt során a tesztelő olyan tesztszkripteket ír, amelyek automatizálják a folyamatot. Ezek a szkriptek olyan utasításkészletek, amelyet a célplatformokon kell végrehajtani ahhoz, hogy egy szolgáltatás vagy a várható eredmény érvényesíthető legyen. A szkriptek íródhatnak Java, JavaScript, Python vagy C# kódokban. A tesztszkriptek írása bonyolult lehet, ezért az automatizált tesztelés során speciális eszközök segítenek a tesztelőknek a kód- és tesztszkriptek fejlesztésében.
Az automatizált tesztelés legnagyobb előnye a kézi teszteléssel szemben, hogy lehetővé teszi, hogy rövidebb idő alatt, több tesztet végezzünk el. Egyszerre növeli a termelékenységet és bővíti a tesztelhető mennyiséget, ezáltal sokkal több permutációt fed le. Ez a fajta tesztelés csökkenti az ismétlődő manuális feladatok számát is a tesztelési szakaszban, valamint jobb hibafelismerést eredményez.
Azonban az automatizált tesztelés is megköveteli a manuális munkát a megvalósítási szakaszban, hiszen a tesztelőknek manuálisan kell létrehozniuk az alapszintű tesztelési szkripteket. Ezen felül kódolást és tesztkarbantartást is igényel. Ugyanakkor a tesztszkripteket újra fel lehet használni, így tovább növelve a hatékonyságot.
Az ismétlődő, nagyfrekvenciás tesztek tehát könnyen automatizálhatóak.
Automatizálási keretrendszerek
Végezetül, beszéljünk néhány népszerű automatizálási keretrendszerről is, amelyet a fejlesztők és QA szakemberek előszeretettel használnak webalkalmazások teszteléséhez.
Cypress
A Cypress egy tisztán JavaScript-alapú kezelőfelületű tesztelőeszköz, amelyet a modern webhez építettek. Célja, hogy kezelje azokat a kritikus pontokat, amelyekkel a QA vagy a fejlesztők szembesülnek egy alkalmazás tesztelése során. A Cypress egy olyan fejlesztőbarát eszköz, amely egyedi DOM-manipulációs technikát használ, és közvetlenül a böngészőben működik. Emellett egyedülálló interaktív tesztkörnyezetet is biztosít, amelyben végrehajtja az összes parancsot. Azáltal, hogy a böngészőben futnak le ezek a parancsok, a teszteredmények sokkal gyorsabb végrehajtását eredményezik.
A Cypress architekturális fejlesztései lehetővé teszik a tesztelők számára, hogy tesztvezérelt fejlesztést (TDD) hajtsanak végre teljes körű teszteléssel. A Cypress-t tehát, azzal a szándékkal fejlesztették ki, hogy a fejlesztés és a tesztelés párhuzamos folyamatok legyenek.
Selenium
A Selenium egy nyílt forráskódú, népszerű tesztautomatizálási eszköz és immár több mint egy évtizede vezető választás a tesztelők körében. Lehetővé teszi a QA szakemberek számára a tesztesetek automatizálását a kívánt böngészővel, a Selenium WebDriver könyvtár és egy nyelvspecifikus keretrendszer használatával. A Selenium használatához szükséges egy böngészőspecifikus illesztőprogram letöltése is, viszont a fejlesztők és a minőségellenőrzők rugalmasan választhatják meg a választott programozási nyelvet. A Seleniumot több programnyelvhez is kifejlesztették, például Ruby, Python, Java stb.
Összefoglaló
Még egyszer nagyon fontos hangsúlyozni, hogy egy projekt átadásánál elengedhetetlen a weboldal tesztelése. Erre számos megoldás áll a rendelkezésünkre. A legfontosabb dolog, hogy a megfelelő teszteseteket hajtsuk végre és helyesen alkalmazzuk a manuális és az automatizált tesztelési metódusokat. Nagyon fontos, hogy az automatizált tesztelés nem helyettesíti a kézi tesztelést, tehát kézi és automatizált tesztelésre is mindig szükség van. A kézi tesztelés bonyolult teszteseteket kezel, míg az automatizált tesztelés az egyszerűbb, többször ismétlődő teszteknél nyújt hatékony segítséget. Ha egy weboldalt a deploy folyamat segítségével élesítünk, akkor ebbe a folyamatba is nagyon jól beintegrálhatóak az automatizált tesztek szkriptjei, valamint a deploy során eltört szkriptek megakadályozzák, hogy hibás produktum kerüljön ki az éles környezetbe.
Ajánlatkérés