A tesztelés célja, hogy biztosítsa a rendszer helyes működését, azonosítsa az esetleges hibákat, és elősegítse a minőség javítását. A tesztelési szintek segítenek abban, hogy a rendszert rétegekre bontva, lépésről lépésre ellenőrizzük. Az alábbiakban áttekintjükk a tesztelés legfontosabb szintjeit. Unit teszt: Egyes függvények, metódusok tesztelése. Célja, hogy egy kisebb egység (metódus vagy osztály) működését verifikálja. Modul vagy komponenes teszt Több, összefüggő unit tesztet foglal magában. Különböző osztályok vagy metódusok integrálása. Integrációs teszt: Két vagy több modult, rendszert tesztel, hogy biztosítja e azok együttműködését. Rendszerteszt Az egész rendszer működését vizsgálja, teljes funkcionalitással. Átviteli teszt: A végfelhasználó által elfogadott teszt, amely az üzleti igényeket validálja. Unit teszt Célja Egy adott kód egység tesztelése Az egység izolált vizsgálata, hogy az önállóan helyesen működik e Jellemzői Fejlesztő által írt tesztek Általában autómatikusan futtatott tesztek Segítenek a hibák gyors azonosításában, és csökkentik a későbbi tesztelési költségeket. Eszközök C# esetén népszerű keretrendszer az NUnit, xUnit, vagy MSTest Modul vagy komponenes teszt Célja Egy modul vagy komponens tesztelése (amely több egységet foglal magában) Az egységek közötti kapcsolat és a modul helyes működésének ellenőrzése Jellemzői Több egységből álló részegységeket vizsgálat Izolált, a többi modultól független tesztelésre törekszik KLülönösen fontos az objektumorientált rendszerekben Integrációs teszt Célja Több komponens vagy modul együttműködésének tezstelése. Biztosítja, hogy a különböző részek helyesen kommunikálnak egymással Jellemzői: Nem izolált, hanem több komponens együttes vizsgálatát jelenti. Külső rendszerek vagy adatbázisok is bevonhatók. Eszközök: Mocking keretrendszerek használata, mint a Moq, vagy NSubstitute. Rendszerteszt Célja A teljes rendszer együttes vizsgálata a felhasználói követelményekk alapján Annak ellenőrzésére hogy a rendszer az elvárt funkciókat teljesíti. Jellemzői A tesztkörnyezet hasonlít az éles környezethez. Funkcionális és nem funkcionális teszteket egyaránt tartalmaz (teljesítmény,biztonság) Eszközök: Selenium (automata tesztekhez webes környezet) JMeter (teljesítményteszteléshez) Átviteli teszt Célja Annak biztosítása hogy a rendzser megfelel az üzleti követelményeknek és a felhasználói elvárásoknak. A fejlesztls befejezésének hivatalos felvétele. Jellemzői Üzleti szakértők vagy végfelhasználók végezhetik Az éles környezetben történő működés próübája Típusai: felhasználói átviteli teszt (User Acceptance Testing UAT) végfelhasználók végzik Szerződéses teszt: üzleti szerződéses feltételek ellenőrzése Regressziós teszt: Biztosítja hogy a frissítések ne okozzanak hibát a rendszerben Tesztelési szintek kapcsolata A tesztelési szintek hierarchiája biztosítja, hogy a rendszer fejlesztése során fokozatosan kerüljenek feltárására és javítására a hibák Unit tesztek az alapok gyorsak izoláltak kicsik Modul tesztek kiterjedtebbek több függvényt vizsgálnak eggyszerre integrációs tesztek rendszertesztelés átviteli tesztek