Manuális tesztelés
A manuális tesztelés a szoftverek manuális tesztelésének folyamata a hibák feltárására. A tesztelőnek a végfelhasználó szerepét kell játszania, és az alkalmazás legtöbb funkcióját kell használnia a helyes viselkedés biztosítása érdekében. A tesztelés teljességének garantálása érdekében a tesztelő gyakran követ egy írásos teszttervet, amely végigvezeti a fontos teszteseteken.
Áttekintés
[szerkesztés]A folyamat egyik legfontosabb lépése a szoftver helyes viselkedésének tesztelése a végfelhasználók számára történő kiadást megelőzően.
Kis léptékű mérnöki erőfeszítéseknél (beleértve a prototípusokat) elegendő lehet a feltáró tesztelés. Ennél az informális megközelítésnél a tesztelő nem követ szigorú tesztelési eljárást, hanem inkább az alkalmazás felhasználói felületét vizsgálja meg a lehető legtöbb funkciót felhasználva, és a korábbi tesztek során szerzett információkat felhasználva intuitív módon további teszteket vezet le. A feltáró manuális tesztelés sikere nagymértékben függ a tesztelő szakértelmétől, mivel a tudás hiánya a tesztelés hiányosságaihoz vezet. Az informális megközelítés egyik legfontosabb előnye, hogy intuitív betekintést nyerhetünk abba, milyen érzés használni az alkalmazást.
A manuális szoftvertesztelésre támaszkodó nagyméretű mérnöki projektek szigorúbb módszertant követnek, hogy maximalizálják a fellelhető hibák számát. A szisztematikus megközelítés előre meghatározott tesztesetekre összpontosít, és általában a következő lépéseket foglalja magában:[1]
- Kiválaszt egy magas szintű tesztelési tervet, amelyben kiválasztják az általános módszertant, meghatározzák és beszerzik az erőforrásokat, például az embereket, a számítógépeket és a szoftverlicenceket.
- Részletes tesztesetek írása, a tesztelő által végrehajtandó világos és tömör lépések azonosítása, a várt eredményekkel együtt.
- A tesztesetek kiosztása a tesztelőknek, akik manuálisan követik a lépéseket és rögzítik az eredményeket.
- A tesztelők megállapításait részletező tesztelési jelentés készítése. A jelentést a menedzserek arra használják, hogy eldöntsék, kiadható-e a szoftver, és ha nem, akkor a mérnökök arra, hogy azonosítsák és kijavítsák a problémákat.
A szigorú, teszteseteken alapuló megközelítés gyakran hagyományos a vízesésmodellt[2] követő nagy szoftverfejlesztési projektek esetében. Legalább egy nemrégiben készült tanulmány azonban nem mutatott drámai különbséget a hibák felderítésének hatékonyságában a feltáró tesztelés és a teszteset-alapú tesztelés között.[3]
A tesztelés történhet fekete-, fehér- vagy szürkedobozos teszteléssel. A fehérdobozos tesztelés során a tesztelő a forráskódon keresztül az utasítások végrehajtásával foglalkozik. A feketedobozos tesztelés során a szoftver futtatása a hibák ellenőrzése céljából történik, és kevésbé foglalkozik azzal, hogy a bemenet feldolgozása hogyan történik. A fekete dobozos tesztelők nem férnek hozzá a forráskódhoz. A szürke dobozos tesztelés a szoftver futtatásával foglalkozik, miközben ismeri a forráskódot és az algoritmusokat.
Statikus és dinamikus tesztelési megközelítés is alkalmazható. A dinamikus tesztelés a szoftver futtatását foglalja magában. A statikus tesztelés magában foglalja a követelmények, a kód szintaxisának ellenőrzését és minden más olyan tevékenységet, amely nem foglalja magában a program kódjának tényleges futtatását.
A tesztelés tovább osztható funkcionális és nemfunkcionális tesztelésre. A funkcionális tesztelés során a tesztelő ellenőrzi a számításokat, az oldalon lévő bármely linket vagy bármely más mezőt, amely adott bemenet esetén kimenetet várhat. A nem funkcionális tesztelés többek között a tesztelt rendszer teljesítményének, kompatibilitásának és alkalmasságának, biztonságának és használhatóságának vizsgálatát foglalja magában.
Fázisok
[szerkesztés]Több szakasz létezik. Ezek a következők:
Unit tesztelés (Egységtesztelés)
A tesztelésnek ezt a kezdeti szakaszát általában a kódot író fejlesztő végzi, néha pedig egy kolléga a fehér dobozos tesztelési technikával.
Integrációs tesztelés
Ezt a szakaszt kétféleképpen végzik, teljes csomagként vagy a korábbi csomag kiegészítéseként. Legtöbbször fekete dobozos tesztelési technikát alkalmaznak. Néha azonban a fekete és fehér dobozos tesztelés kombinációját is alkalmazzák ebben a szakaszban.
Rendszertesztelés
Ebben a szakaszban a szoftvert minden lehetséges dimenzióból tesztelik az összes tervezett célra és platformra. Ebben a szakaszban általában fekete dobozos tesztelési technikát alkalmaznak.
Felhasználói elfogadási tesztelés
Ezt a tesztelési szakaszt a kész termék ügyfél általi jóváhagyása érdekében végzik. Az ebben a szakaszban elért "megfelelés" azt is biztosítja, hogy az ügyfél elfogadta a szoftvert, és az készen áll a használatra.
Kiadási vagy üzembe helyezési tesztelés
A helyszíni csapat az ügyfél helyszínére megy, hogy telepítse a rendszert az ügyfél által konfigurált környezetbe, és a következő pontokat ellenőrzi:
- Fut-e a SetUp.exe vagy sem
- Vannak-e egyszerű képernyők a telepítés során
- Mennyi helyet foglal el a rendszer a HDD-n
- Teljesen eltávolították-e a rendszert, amikor a rendszerből történő eltávolítás mellett döntöttek
A kézi tesztelés előnyei
[szerkesztés]- Alacsony költségű működés, mivel nem használnak szoftvereszközöket
- A legtöbb hibát kézi teszteléssel meg lehet találni
- Az emberek jobban figyelnek és ítélnek, mint az automatizált eszközök
Összehasonlítás az automatizált teszteléssel
[szerkesztés]A teszt automatizálás képes lehet csökkenteni vagy megszüntetni a tényleges tesztelés költségeit. A számítógép gyorsabban képes követni a rutinszerű lépéssorozatot, mint egy ember, és képes a teszteket éjszakára lefuttatni, hogy reggelre bemutassa az eredményeket. A tényleges teszteléssel megtakarított munkaerőt azonban a tesztprogram felügyeletével kell tölteni. A tesztelendő alkalmazás típusától és a választott automatizálási eszközöktől függően ez több munkát igényelhet, mint a manuális megközelítés. Ezenkívül egyes tesztelési eszközök nagyon nagy mennyiségű adatot mutatnak be, ami potenciálisan időigényes feladatot jelenthet az eredmények értelmezésében.
Az olyan dolgokat, mint az eszközillesztők és a szoftverkönyvtárak, tesztprogramok segítségével kell tesztelni. Ezenkívül a nagyszámú felhasználó tesztelését (teljesítménytesztelés és terheléses tesztelés) jellemzően szoftverben szimulálják, nem pedig a gyakorlatban végzik el.
Ezzel szemben a gyakran változó elrendezésű grafikus felhasználói felületeket nagyon nehéz automatikusan tesztelni. Léteznek tesztelési keretrendszerek, amelyek a felhasználói felületek regressziós tesztelésére használhatók. Ezek a billentyűleütések és egérmozdulatok sorozatainak rögzítésére, majd ezek lejátszására és annak megfigyelésére épülnek, hogy a felhasználói felület minden alkalommal ugyanúgy reagál-e. Sajnos előfordulhat, hogy ezek a felvételek nem működnek megfelelően, ha egy gombot áthelyeznek vagy átcímkéznek egy későbbi kiadásban. Az automatikus regressziós tesztet is becsaphatja, ha a program kimenete jelentősen változik.
Fordítás
[szerkesztés]Ez a szócikk részben vagy egészben a Manual testing című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.
Források
[szerkesztés]- ↑ ANSI/IEEE 829-1983 IEEE Standard for Software Test Documentation
- ↑ Craig, Rick David. Systematic Software Testing (2002). ISBN 1-58053-508-9
- ↑ Juha Itkonen (2007). „Defect Detection Efficiency: Test Case Based vs. Exploratory Testing”. First International Symposium on Empirical Software Engineering and Measurement, 61–70. o. [2016. október 13-i dátummal az eredetiből archiválva]. (Hozzáférés: 2022. január 11.)