Az utóbbi évtizedekben a számítástechnika egyre inkább beépült az emberek hétköznapjaiba, és a felhasználóknak egyre nagyobb igénye lett a szoftverekkel szemben. Így a szoftverfejlesztési folyamatok hosszúak és bonyolultak lehetnek, ennek során pedig elkerülhetetlenül hibákat is vétenek. Ennek egyik oka lehet egy apró figyelmetlenség a fejlesztő részéről, de a nagy szoftverek komplexitása miatt könnyű hibázni. Ezen túl a specifikációban, vagy akár az igényekben is lehetnek hibák, amik sokkal súlyosabb következményekkel járhatnak. Egy jó szoftvertesztelési folyamat ezekre nyújt megoldást.
A szakdolgozatban a szoftvertesztelési alapfogalmaknak és elveknek a bemutatásával kezdem, amelyek elengedhetetlenek a hatékony teszteléshez. Egy fejlesztőnek ezenkívül tisztában kell lennie azokkal a szoftvertervezési irányelvekkel, amelyek egyáltalán lehetőséget adnak egységtesztek leírására, ezért bemutatom a SOLID alapelveket is. Ezek átláthatóbb, kezelhetőbb és tesztelhetőbb szoftvert eredményeznek.
A tesztelendő Windows Phone alkalmazás bemutatása után, a tesztelési folyamatot tervezem meg, vagyis meghatározom, hogy a szoftver különböző szintjein milyen módon célszerű tesztelni: egységtesztekkel az alacsonyabb szintű szoftverkomponensek tesztelését valósítom meg, figyelembe véve a komponensek közötti függőségeket; integrációs tesztekkel a komponensek helyes együttműködéséről bizonyosodom meg; rendszertesztekkel pedig az alkalmazás teljes funkcionalitását vizsgálom.
A tesztek implementációja előtt kitérek a platformon elérhető tesztelő eszközök működésére, mert a .NET és Visual Studio által nyújtott eszközök a Windows Phone 8 platformon csak korlátozottan érhetőek el. Az egyik legsúlyosabb hiányosság a kódfedettség mérésének lehetősége, ezért megvizsgálom ennek technikai okát és bemutatok egy megoldást rá. Ezután az alkalmazáshoz készített egység és integrációs teszteken keresztül mutatom be a tipikus tesztírás problémáit és megoldásait.
Végül a megtervezett tesztelési folyamat számos hibát akadályozott meg és derített fel, ráadásul pozitív hatással volt az alkalmazás kódminőségére. Az alkalmazáshoz összesen 112 egység és integrációs teszt készült el, amelyek a modell rétegen 99,1%-os, a szolgáltatás rétegen pedig 100%-os kódfedettséget biztosítottak. Mindezt könnyen átlátható és fenntartható tesztekkel sikerült elérnem.