Test Driven Development (TDD)

Tesztelés kód bosszantó, de egy nagy előny, ha dolgozik egy projekten. Ma fogjuk használni a TDD, hogy írjon és vizsgálati kód hatékonyabb.

Mi TDD?

A kezdetektől fogva a számítógép korában, programozók és hiba küzdött az elsőségért. Ez elkerülhetetlen jelenség. Minden programozó áldozata lett a hiba. A kód nem biztonságos. Ezért vizsgálatokat végezni.

Test Driven Development (teszt-vezérelt fejlesztés) - a programozási technika, amelyben a unit tesztek a program vagy annak fragmentum van írva, hogy a program (teszt-első fejlesztés), és mint ilyen, szabályozzák a fejlődését.

Hogyan működik ez?

Test Driven Development vagy TDD egy rövid iteratív fejlesztési ciklus:

  1. Írása előtt minden kódot, akkor először meg kell írni, automatizált teszt a kódot. Az írás során vizsgálat szükséges az összes lehetséges bemeneti adatok hibák és kimenetet a böngésző
  2. Akkor lehet kezdeni vesződnie. Meg kell változtatni, amíg a kód nem fut automatizált tesztek
  3. Miután a kód a tesztel, akkor kezdődik, hogy tisztítsák meg kód (újraírás)

Test Driven Development (TDD)

Finom, de jobb, mint a hagyományos tesztelést?

Nem végez vizsgálati program több okból is:

  • úgy érzi, hogy ez időpocsékolás, mert voltak kisebb-kód módosításai
  • még nem volt elég ideje kipróbálni, mivel a projekt menedzser szeretné megkapni a terméket a lehető leghamarabb
  • Ön halogatni holnapig

Semmi sem történik egy hosszú idő, és mozgassa a terméket a termelés. De néha után a termék átkerül a termelés, minden elromlik.


TDD megszünteti a hibáinkat. Amikor egy program került kidolgozásra a használata teszt vezérelt fejlesztés, ez lehetővé teszi, hogy az e próbákat gyorsabban és hatékonyabban. Csak annyit kell tennie -, hogy a teszteket. Ha a kódot átadja az összes tesztet, így lehet használni, akkor hibázott a változásokat. Hogy melyik része a teszt sikertelen, akkor könnyebb a hibák elkerülése érdekében.

Hogyan vizsgálatok elvégzésére?

Sok keretek tesztelés PHP szkripteket. Az egyik legelterjedtebb PHPUnit.

PHPUnit kiváló keretet vizsgálat, amely könnyen integrálható a projektek vagy egyéb projektek segítségével a népszerű PHP keretrendszerek.

A példánkban nem lesz szükség a különböző funkciókat kínálnak PHPUnit. Ezért fogjuk használni egy egyszerű teszt nevű rendszert SimpleTest.

Tekintsük a fejlesztés és a tesztelés a vendégkönyvet, amelyben minden felhasználó adhat, és tekintse meg az üzeneteket. Tegyük fel, hogy az elrendezés már megtörtént, és mi csak csinál egy osztály, amely a logika a vendégkönyvet, amely magában foglalja az olvasás és az írás az adatbázisból. olvasási módszer ebben az osztályban - ez az, amit mi fogunk kifejlesztése és tesztelése.

1. lépés beállítás SimpleTest

Töltse le a SimpleTest itt és csomagolja egy tetszőleges mappába. Mindent meg kell kinéznie:

Test Driven Development (TDD)

Index.php csatlakozni fog guestbook.php, és hívja a módszer rögzíti a kimenet. Az osztályok mappa lesz guestbook.php, és a vizsgálati mappa kibomlik SimpleTest.

2. lépés: Tervezd meg a fellépések

A második lépés a legfontosabb, mert ez már kezd, hogy létrehozzuk a teszt. Ehhez meg kell tervezni, mi a feladata, hogy megtegye, amit a bemeneti adatok fogadására, amely visszaadja a forgatókönyvet. Ez a lépés hasonló a játék a sakk - van, hogy mindent tudni az ellenfél (a program), beleértve az összes hiányosságok (hiba), és erőt (mi történik, ha a program sikeresen működik).

Állítsunk be a rendszer a munkát a vendégkönyvet:

3. lépés: Írj egy teszt

Most már tudjuk írni az első teszt. Először hozzon létre egy fájlt nevű guestbook_test.php a teszt mappát.

Most pedig lássuk végre mi a követelmény a 2. lépéstől.

Mint látható itt, ellenőrizze a kimenet a vendégkönyvbe felvételekkel nélkül. Megnézzük, hogy megfelelnek-e a két kritérium függvény beállítja azt a 2. lépésben Minden a mi teszt funkciók kezdődik a „teszt”. Tettük ezt azért, mert SimpleTest futtatásakor ebbe az osztályba fog keresni egy függvény kezdve a „teszt” és futtatni őket.

A tesztünkben, ahogy pár osztály ellenőrzési módszerek: assertTrue, assertIsA és assertEquals. assertTrue funkció ellenőrzi, hogy az érték igaz. assertIsA ellenőrzi a változó típusát. Végül assertEquals funkció ellenőrzi, hogy a változó értéke egy bizonyos értéket.

Vannak más vizsgálati módszerekkel is SimpleTest:

Meghiúsul, ha az $ x == false

4. lépés: Veszteség

Miután beírtuk a kódot, akkor a teszt futtatásához. Az első indításkor vizsgálat nem jár sikerrel. Ha nem, akkor a teszt nem ellenőrzi semmit.

A teszt elindításához, meg kell nyitni egy böngésző guestbook_test.php. Látni fogja:

Mivel még nem hozott létre az osztály vendégkönyvbe, nem sikerült. Ennek kijavításához, hozzon létre egy fájlt guestbook.php osztályok mappában. Az osztály tartalmaz módszerek, amelyekkel a tervezett, de ezek nem tartalmaznak. Ne felejtsük el, írunk teszteket, mielőtt írsz a termék kódját.
Mivel még nem hozott létre az osztály vendégkönyvbe, nem sikerült. Ennek kijavításához, hozzon létre egy fájlt guestbook.php osztályok mappában. Az osztály tartalmaz módszerek, amelyekkel a tervezett, de ezek nem tartalmaznak. Ne felejtsük el, írunk teszteket, mielőtt írsz a termék kódját.

Amikor futtatja a tesztet legközelebb, látni fogja:

Amikor futtatja a tesztet legközelebb, látni fogja:

Ahogy meglátjuk mi teszt kód még mindig nem felel meg, a korrekciós hogy zaymomsya a következő lépésben.

5. lépés: Az írás a termék kódja

Most, hogy van egy teszt, kezdhetjük vesződnie. Nyílt guestbook.php fájlt, és indítsa írás:

A guestbook.php osztályban van néhány hibát, hogy mi szándékosan készült, és most ellenőrizni fogja a kódot átmegy a teszten, vagy sem:

Ellenőrző azt mutatja, hogy a teszt hibát jelez. Segítségével a diagnosztikai üzenetek könnyen azonosítani vizsgálati hely, hogy hibát okoz:

Ez azt mondja, hogy a visszaadott tömb nem rendelkezik a megfelelő gombot. Ennek alapján tudjuk, hogy mi része a kód nem működik megfelelően:

Most, amikor futtatja a tesztet, látni fogjuk:

6. lépés Újraírás és javítása kód

Mivel a kód, amit tesztelt könnyű volt, a vizsgálat és kijavítani a hibákat nem tartott sokáig. De ha ez egy terjedelmes alkalmazás, akkor kellett volna költeni sokszor változtatni a kódot, szüntesse meg, és így javítja kódot támogatását a jövőben. A probléma abban áll, hogy további változások miatt további hibák. Miután elvégezte a változtatásokat, meg kell futtatni újra a tesztet.

7. lépés: Ismételje

Végül, amikor a lényeges új funkciók, akkor meg kell írni az új teszteket. Ez nagyon egyszerű! Ismételje meg a lépéseket a 2. lépéstől (mint a SimpleTest fájl már be van állítva), és indítsa el a ciklus elölről.

következtetés

Megvizsgáltuk a használata SimpleTest a termék kifejlesztéséhez. Mi a nem lefedett összes funkcióját SimpleTest. További információk találhatók a dokumentáció (Eng.), Or Wikipedia szócikk (Eng.).

Tesztelés - szerves része a fejlesztési ciklus, de ez általában az első dolog, vágott rövid határidők fejlődését. Remélhetőleg, a cikk elolvasása után, értékelni fogja a teszt-vezérelt fejlesztés.

Kapcsolódó cikkek