A tesztelés a szoftverfejlesztés elengedhetetlen része. Ezért minden szoftvert alaposan tesztelni szükséges.
Gyakran a tesztelés TDD módszerrel történik.
A tesztelésekkel kapcsolatban általánosan ismert követelmények alapján
kialakult alapelvek köré csoportosulnak ezek a következőek:
1. Mindig tervezettnek és megismételhetőnek kell lennie.
2. Aki fejlesztett az teszteljen.
3. Az egyes komponensek tesztelésétől kell haladni a teljes rendszer tesztelése felé. Érdemes a
komponenseket külön letesztelni összeállítás előtt.
4. A komponensek még értelmezhető kisebb egységeinek tesztelését érdemes meghagyni fejlesztői
tesztként, mert csak a fejlesztők ismerik a kódot.
5. A funkcionális működés ellenőrzésén túl szükség van a fejlesztett termék integrációs tesztjére a
működési környezetbe helyezéskor.
6. A funkcionalitás megfelelőségének ellenőrzésén felül a terhelhetőség és a stabil
működés ellenőrzése is fontos.
A komponensek belső működésének ellenőrzése a strukturális tesztek fogalomkörébe tartozik. Mivel a fejlesztett alkalmazás belső struktúráját vizsgáljuk, ezért white-box teszteknek is nevezik őket. A komponens-szintű tesztelés lényege, hogy a szoftver metódusait, azok működését tesztesetekben meghatározott tesztértékekkel ellenőrizzük. A JUnit az egyik legelterjedtebb keretrendszer, amit az egyes komponensek tesztelésére használnak. A JUnit-ban hierarchikusan rendezett tesztesetekből állíthatunk össze tesztkészleteket (test suite), amelyekben a teszteseteket együtt futtathatjuk. A tesztek ellenőrzésére szolgálnak az ún. Assert-metódusok, amelyekkel a teszt eredményét hasonlítjuk össze az elvárt eredménnyel.
A funkcionális tesztekre akkor kerülhet sor, ha az összeállított alkalmazás egyes komponensei unit és modulszinten (modul alatt itt pl. egymásra ható unitokat értünk) megfelelően működnek. A funkcionális tesztelés már jobban elkülöníthető a fejlesztőktől. Általános esetben egy különálló tesztcsapat feladata, hogy a tesztelésre kapott rendszer üzleti funkcionalitását figyelembe véve, de magát a megvalósítási módot fekete dobozként kezelve megvizsgálja az egyes funkciók működését. Ismerve a lehetséges bemeneteket, le kell ellenőrizni a lehetséges kimeneteket. A funkcionális tesztek egy-egy tesztesetre építve egy-egy felhasználói funkció, üzleti folyamat lépéseit ellenőrzik.