Miért jó az egységtesztelés?

Úgy tapasztaltam, hogy míg az egységtesztelés munkafolyamata a nagyobb cégeknél elterjedt, a kis- és középvállalkozások egyelőre kevésbé használják.

Ezért döntöttem úgy, hogy az egységtesztelésről és a PHP Unit Testingről írok bejegyzést. Ezek számunkra is új területek, és posztommal szeretnék kedvet csinálni hozzájuk – önmagunknak és az olvasóknak. Akit gyakorlati példák is érdekelnek, a cikkem alján található forrásokból tovább tájékozódhat.

De mik is az egységtesztelés előnyei? Egyfajta szentháromságban megfogalmazva:

  • csökkenti a tesztelésre fordított időt
  • növeli a tesztelés hatékonyságát
  • automatizálja a tesztelési feladatokat



Írtsd ki a félrevezető eredményeket!

Az egységtesztelés gyakorlata szerint kódjainkat egységekre kell bontani, és ezeket külön-kölön vizsgálni – mivel az egy időben történő tesztelésük össze-visszasághoz, félrevezető eredményekhez vezethet. A „különálló” egységeket előre meghatározott kritériumokkal, folyamatosan (a kód írása előtt, közben és után) kell ellenőrizni. Ilyen tesztelésre számos eszköz létezik, az egyik legnépszerűbb a PHPUnit. A PHPUnit egy keretrendszer, mely nemcsak megkönnyíti a tesztelés folyamatát, de jelentést is készít a tesztek kimeneteleiről. Ennek bemutatása és részletes ismertetése azonban túlnyúlik jelen bejegyzésemen.


Barátkozz meg az egységteszteléssel és használd!

Lássuk akkor a részletes motiváló listát, hogy miért is érdemes tesztelni kódjainkat folyamatosan, a fejlesztés előtt, közben és után:

  • Csökkenti a hibák számát: a problémák felkutatása a fejlesztés időszakában kevesebb időt emészt fel, mivel a forráskód még frissen él a programozó tudatában.
  • Redukálja a fejlesztés idejét: könnyen belátható, hogy ha minél előbb találjuk és javítjuk meg a hibát, az sokkal gyorsabb, mintha a befejezés után kellene keresni, elemezni, majd javítani.
  • Könnyebbé teszi a kód megváltoztatását és refaktorálását: a tesztek segítségével egyszerűen megállapíthatjuk, hogy az újonnan keletkezett hiba kódunk mely részét érinti. Ez alapján pedig gyorsabban megtalálható és javítható.
  • Lehetővé teszi a végtelen ellenőrzést: az automatizált tesztek annyiszor futtathatók, ahányszor akarjuk. Egy teszt, a megírása után, konzolból vagy böngészőből akármikor futtatható.
  • Méri a haladást: miután megírtuk a tesztet a kódunkra és annak minden kimenetelére, a teszt pedig hiba nélkül le is futott, akkor valóban feltételezhetjük: a kód tényleg készen áll.
  • Lényegében: rákényszerít, hogy szembenézz a problémával.


Zárásképpen: az egységtesztelés egyik legnagyobb előnye, hogy dokumentálni is lehet vele. Hiszen mit is csinál a teszt? Leírja a használati esetet vagy a példát – ami a programozónak sokszor ezer szóval is felér. Sok egységtesztelő keretrendszer kínál plusz „összefoglaló dokumentációs eszközt”, amely eleve kilistázza a tesztelés eredményeit. Végeredményben tehát egy összesítő specifikációt kapunk, amely könnyen értelmezhető bárki – nem csak fejlesztők – számára.


Források:
http://weblabor.hu/cikkek/php-osztalyok-egysegtesztelese
http://devzone.zend.com/1115/an-introduction-to-the-art-of-unit-testing-in-php/
 

0 hozzászólás
Összes mutatása

További olvasásra ajánljuk