A szoftvertesztelés vagy a szoftvertesztelés alkalmazástesztelésként is ismert.
A szoftvertesztelés elsősorban egy nagy folyamat, amely több, egymással összefüggő folyamatból áll. A szoftvertesztelés fő célja a szoftver integritásának és teljességének mérése az alapvető követelmények szempontjából. A szoftvertesztelés magában foglalja a szoftverek vizsgálatát és tesztelését különböző tesztelési folyamatokon keresztül. E folyamatok céljai a következők lehetnek:
A szoftver teljességének ellenőrzése a funkcionális/üzleti követelményeknek megfelelően
A hibák/műszaki hibák azonosítása és a szoftver hibamentességének biztosítása
A használhatóság, a teljesítmény, a biztonság, a lokalizáció, a kompatibilitás és a telepítés értékelése
A tesztelt szoftvernek minden teszten át kell mennie ahhoz, hogy teljes legyen vagy alkalmas legyen a használatra. A különböző típusú szoftvertesztelési módszerek közé tartozik a fehér doboz tesztelése, a fekete doboz tesztelése és a szürke doboz tesztelése. Továbbá a szoftver egészében, komponensekben/egységekben vagy élő rendszeren belül tesztelhető.
A Black Box Testing egy szoftvertesztelési technika, amely a szoftver funkcionalitásának elemzésére összpontosít, tekintettel a rendszer belső működésére. A Black Box Testing módszert a vevői igények, specifikációk és magas szintű tervezési stratégiák elemzésére fejlesztették ki.
A Black Box Testing tesztelő kiválasztja az érvényes és érvénytelen kódvégrehajtási és bemeneti feltételeket, és ellenőrzi az érvényes kimeneti válaszokat.
A Black Box Testing funkcionális tesztelésként vagy zárt dobozos tesztelésként is ismert.
A keresőmotor egy egyszerű példa egy olyan alkalmazásra, amely a fekete doboz tesztelésének tárgyát képezi. A keresőmotor felhasználója szöveget ír be a webböngésző keresősávjába. A keresőmotor ezután megkeresi és lekéri a felhasználói adatok eredményeit (kimenet).
A Black Box tesztelés előnyei a következők:
A Black Box tesztelésnek van néhány hátránya is, például:
A fehérdobozos tesztelés során a kód előre kiválasztott bemeneti értékekkel fut az előre kiválasztott kimeneti értékek érvényesítésére. A fehérdobozos tesztelés gyakran magában foglalja a csonkkód (egy adott szolgáltatás helyettesítésére használt kóddarab. Egy csonk szimulálhatja a meglévő kód viselkedését, például egy távoli gépen végzett eljárást) és illesztőprogramok írását.
A fehér dobozos tesztelés előnyei a következők:
A hátrányok közé tartozik:
Az egységteszt a szoftverfejlesztési életciklus (SDLC) összetevője, amelyben egy átfogó tesztelési eljárást egyedileg alkalmaznak a szoftverprogram legkisebb részein a kívánt alkalmasság vagy viselkedés érdekében.
Az egységteszt egy minőségmérési és -értékelési eljárás, amelyet a legtöbb vállalati szoftverfejlesztési tevékenységben alkalmaznak. Általában az egységteszt azt értékeli, hogy a szoftverkód mennyire felel meg a szoftver/alkalmazás/program általános céljának, és hogy alkalmassága hogyan hat más kisebb egységekre. Az egységtesztek elvégezhetők manuálisan – egy vagy több fejlesztő által – vagy automatizált szoftvermegoldáson keresztül.
A tesztelés során minden egység el van szigetelve a fő programtól vagy interfésztől. Az egységteszteket jellemzően fejlesztés után és üzembe helyezés előtt hajtják végre, így megkönnyítve az integrációt és a probléma korai felismerését. Az egység mérete vagy hatóköre a programozási nyelvtől, a szoftveralkalmazástól és a tesztcéloktól függően változik.
A funkcionális tesztelés a szoftverfejlesztés során alkalmazott tesztelési folyamat, amelynek során a szoftvert tesztelik annak biztosítása érdekében, hogy minden követelménynek megfelelnek. Ez egy módszer a szoftver ellenőrzésére, hogy megbizonyosodjon arról, hogy rendelkezik-e a funkcionális követelményeiben meghatározott összes szükséges funkcióval.
A funkcionális tesztelést főként annak ellenőrzésére használják, hogy egy szoftver ugyanazt a kimenetet adja-e, mint amit a végfelhasználó vagy a vállalkozás megkövetel. A funkcionális tesztelés általában magában foglalja az egyes szoftverfunkciók értékelését és összehasonlítását az üzleti követelményekkel. A szoftvert úgy tesztelik, hogy valamilyen kapcsolódó inputot adnak neki, hogy a kimenet értékelhető legyen, és kiderüljön, mennyire felel meg az alapvető követelményeknek, hogyan kapcsolódik azokhoz, vagy eltér attól. Továbbá funkcionális tesztek is ellenőrzik a szoftver használhatóságát, például megbizonyosodnak arról, hogy a navigációs funkciók megfelelően működnek-e.
A regressziós tesztelés egyfajta szoftverteszt, amelyet annak meghatározására használnak, hogy az új problémák szoftvermódosítások eredménye-e.
A változtatás alkalmazása előtt a program tesztelésre kerül. A változtatás alkalmazása után a program újratesztelésre kerül a kiválasztott területeken annak megállapítására, hogy a változtatás nem hozott-e létre új hibákat vagy problémákat, vagy hogy a tényleges változtatás megfelelt-e a tervezett célnak.
A regressziós tesztelés elengedhetetlen a nagy szoftveralkalmazások számára, mivel gyakran nehéz megállapítani, hogy a probléma egy részének megváltoztatása nem okozott-e új problémát az alkalmazás egy másik részének. Például a banki hiteligénylési űrlap módosítása a havi tranzakciós jelentés meghiúsulását eredményezheti. A legtöbb esetben úgy tűnik, hogy a problémák nem kapcsolódnak egymáshoz, de valójában az alkalmazásfejlesztők frusztrációjának okai lehetnek.
A regressziós tesztelést igénylő egyéb helyzetek közé tartozik annak kimutatása, hogy bizonyos változtatások elérik-e a kitűzött célt, vagy olyan új veszélyek tesztelése, amelyek olyan problémákkal kapcsolatosak, amelyek egy problémamentes időszak után ismét felmerülnek.
A modern regressziós tesztelést elsősorban speciális kereskedelmi tesztelőeszközökön keresztül kezelik, amelyek pillanatfelvételeket készítenek a meglévő szoftverekről, amelyeket aztán egy adott változtatás alkalmazása után összehasonlítanak. Szinte lehetetlen, hogy az emberi tesztelők ugyanolyan hatékonyan hajtsák végre ugyanazokat a feladatokat, mint az automatizált szoftvertesztelők. Ez különösen igaz a nagy informatikai környezetekben, például bankokban, kórházakban, gyártócégeknél és nagykereskedőknél található nagy és összetett szoftveralkalmazásokra.
A stresszteszt a szoftver vagy hardver tesztelésére vonatkozik, annak megállapítására, hogy a teljesítménye kielégítő-e extrém és kedvezőtlen körülmények között, ami a nagy hálózati forgalom, a folyamatok terhelése, az alul-, túlhajtás és az erőforrás-felhasználás csúcsigénye következtében fordulhat elő.
A legtöbb rendszert normál működési feltételek mellett fejlesztették ki. Emiatt még egy határérték túllépése esetén is elhanyagolhatóak a hibák, ha a rendszert a fejlesztés során stressz-teszteljük.
A stressztesztet a következő összefüggésekben használják:
Az automatizált tesztelés (szoftverteszt automatizálás) a kódtesztelés olyan megközelítése, amely speciális szoftvereszközöket használ, amelyek automatikusan futtatják a teszteket, majd összehasonlítják a tényleges teszteredményeket a várt eredményekkel.
Az automatizált tesztelés fontos szerepet játszik a Continuous Delivery (CD), a Continuous Integration (CI), a DevOps és a DevSecOps területén. Az automatizált tesztelés fő előnyei a következők:
Szoftverfejlesztésben különösen hasznos az építési folyamat során automatizált tesztek végrehajtása annak biztosítására, hogy az alkalmazás mentes legyen az összeállítási hibáktól, és teljesítse a rendeltetésszerű funkcióját.
Ha időt szán a szoftvertesztelés automatizálására, a fejlesztők időt takarítanak meg azáltal, hogy csökkentik annak kockázatát, hogy egy kódmódosítás megszakítja a meglévő funkciókat.
A tesztelés nagyon fontos szakasza a fejlesztési folyamatnak. Gondoskodik arról, hogy minden hiba kijavítva legyen, és hogy a termék, a szoftver vagy a hardver a tervezettnek megfelelően vagy a lehető legközelebb álljon a célteljesítményhez. A kézi tesztelés helyett az automatizált tesztelés elengedhetetlen ahhoz, hogy következetesen költséghatékony szoftvereket szállíthassunk, amelyek minimális hibákkal, időben kielégítik a felhasználói igényeket.
A kézi tesztelést a fejlesztés során még mindig különböző időpontokban végzik el, de ezt többnyire maguk a fejlesztők vagy a hardvermérnökök végzik el, hogy gyorsan lássák, az általuk végrehajtott változtatások meghozták-e a kívánt hatást.
Ercole Palmeri
Szemplasztikai műtétet végeztek az Apple Vision Pro reklámmegjelenítővel a Catania Poliklinikán…
A finom motoros készségek színezéssel történő fejlesztése felkészíti a gyerekeket olyan összetettebb készségekre, mint az írás. Kiszínezni…
A haditengerészeti szektor igazi világgazdasági hatalom, amely egy 150 milliárdos piac felé navigált...
Múlt hétfőn a Financial Times bejelentette, hogy megállapodást köt az OpenAI-val. Az FT engedélyezi világszínvonalú újságírását…