9 Najboljši avtomatizirani okviri za testiranje za PHP
Ste že kdaj porabili veliko časa za odpravljanje napak v PHP kodi? No, za večino programerjev to verjetno ni najbolj zanimiv izziv, vendar pa obstaja rešitev, ki nam lahko pomaga skrajšati to dolgočasno nalogo.. Avtomatizirano testiranje lahko bistveno izboljša potek razvoja PHP razvoja omogočanje vnaprejšnjih testov za razvoj razvojnega procesa.
Na tem mestu bomo poskušali razumeti zakaj je avtomatizirano testiranje tako kul, kako deluje in kaj so najboljših okvirov za testiranje lahko začnete z.
Zakaj je testiranje pomembno
Razvijalci za nove programe PHP ne napišejo testov za svojo kodo. Večina nas je začela svojo kariero s preizkušanjem novih funkcij in funkcij, ki smo jih pravkar napisali v oknu brskalnika, in ko je šlo kaj narobe, smo bili nejasni o tem, kaj storiti.
Pisanje testov za našo kodo lahko pripelje do dragocenega časa za odpravljanje napak in ur glavobola. Ko nepreverjena koda pride v proizvodnjo, pregledi, ki jih bomo dobili, verjetno ne bodo tako prijazni. Torej, kaj lahko storimo?
Verjetno je najboljša ideja vzpostaviti produktivni delovni potek testiranja v katerem moramo napisati lastno preizkusno kodo, ki preveri, ali naša koda aplikacije deluje pravilno.
Trik je v tem kodo preizkušanja je treba zapisati pred kodo aplikacije. Tako lahko od začetka zagotovimo, da koda, ki jo napišemo, deluje pravilno. Preskusna koda bo šla v ločene datoteke. Če bomo kasneje naleteli na napake v naši aplikaciji PHP, nam ni treba storiti ničesar drugega, samo izvedite teste, za katere upamo, da bodo dajte nam ustrezne nasvete o težavah.
Poleg varčevanja s časom in pravilne priprave naše aplikacije za proizvodnjo, ima testiranje tudi veliko drugih prednosti, kot so:
- več vzdrževalne kode
- olajšano preoblikovanje
- manj varnostnih vprašanj
- manj napihnjena koda kode (prilagajanje kode aplikacije na vnaprej napisano preizkusno kodo bo povzročilo izpustitev odvečnih delov)
- boljše delovanje
Kaj je avtomatizirano testiranje?
Seveda lahko svoje teste napišemo ročno, vendar je lahko čez nekaj časa dolgočasen in dolgotrajen z mnogimi ponavljajočimi se nalogami. Ročno testiranje lahko zamenjamo z avtomatiziranim testiranjem, v katerem uporabljamo posebne programske rešitve, ki bodo naredile naporno delo za nas, in lahko preživimo več časa z ustvarjanjem logike preskusne kode..
PHP je na srečo zelo priljubljen programski jezik, zato je na voljo veliko avtomatiziranih okvirov za testiranje.
Razvoj, ki temelji na preizkusih (TDD) in razvoj, ki temelji na vedenju (BDD)
Dva glavna pristopa, ki jih uporabljata avtomatizirana ogrodja za testiranje, sta razvoj testov (TDD) in razvoj obnašanja (BDD). V obeh primerih razvojni proces poteka s testiranjem, kar pomeni, da so testi napisani pred kodo aplikacije.
Glavna razlika med preskušanjem in testiranjem, ki temelji na obnašanju, je v sintaksi preskusne kode: TDD uporablja pravilno PHP kodo v testnih datotekah, medtem BDD uporablja berljive stavke ki opisujejo obnašanje vsake funkcije in jih lahko razumejo tudi ne-tehnični deležniki.
Test za TDD izgleda takole v urejevalniku kod, to je samo običajna objektno usmerjena koda PHP:
Test BDD je podoben temu, ne-programerji pa ga lahko tudi smiselno:
10 PHP Automated Testing Frameworks
S tem v mislih si poglejmo 10 zmogljivih avtomatiziranih okvirov za testiranje za PHP, ki jih lahko uporabite.
1. PHPUnit
PHPUnit je najbolj znano ogrodje za testiranje za pisanje testov enot za aplikacije PHP. Enotni testi zajemajo majhne dele kode, ki se imenujejo enote, in jih preskusite enega za drugim. S pomočjo PHPUnit-a lahko izvajamo testno usmerjen razvoj.
Lahko se uporablja preko ukazna vrstica, in nam daje a priročen razred TestCase da se lahko podaljšamo v skladu s svojimi potrebami. PHPUnit omogoča tudi razvijalcem uporabo vnaprej napisane metode uveljavljanja trditev, da se aplikacija obnaša na določen način.
2. Sprejemanje
Sprejemanje ne omogoča le pisanja testov enot, ampak tudi funkcionalnih in sprejemnih testov. Ti dve zadnji preizkušata aplikacijo PHP kot celoto z vsemi povezavami, ne pa kot enotami. Spoznavanje nam omogoča, da omogočimo in konfiguriramo različne module glede na naše razvojne potrebe.
To je integrirano z mnogimi razvojnimi okviri PHP, kot je npr Symfony2, Laravel4, Yii, Phalcon in okvir Zend. To pomeni, da lahko uporabimo okvir za testiranje avtomatizacije PHP in razvojni okvir PHP skupaj, da vzpostavimo superefikativen razvojni potek dela.
3. Behat
Behat je priljubljen PHP testni okvir, ki temelji na obnašanju. Preizkusi, ki jih lahko napišemo z videzom Behat kot zgodbe. Behat uporablja podtip StoryBDD razvoja, ki ga poganja vedenje (drugi podtip je SpecBDD).
Okvir je navdihnil projekt Cucumber, ki je testni okvir za programski jezik Ruby.
4. PHPSpec
PHPSpec sledi tudi pristopu testiranja, ki temelji na obnašanju, vendar drugi podtip imenovan SpecBDD. Z PHPSpec moramo najprej napišite specifikacije, ki opisujejo, kako se bo obnašala koda aplikacije. Navdih je imel tudi Rubyov testni okvir, imenovan RSpec.
5. Storyplayer
Storyplayer je poln testni okvir, ki omogoča pisanje testov od konca do konca za celotno platformo. Storyplayer ima podporo za ustvarjanje in uničevanje testnih okolij na zahtevo. Sledi pristopu testiranja TDD in nam omogoča pisanje funkcionalnih testov, ki lahko preverijo aplikacijo kot celoto.
6. Peridot
Peridot je lahek, razširljiv okvir za testiranje za PHP. Ima funkcijo dogodkovno vodena arhitektura ki testerjem omogoča enostavno prilagodite okvir prek vtičnikov in poročevalcev.
Peridot uporablja Opiši sintaksa za vzpostavitev jasnega in berljivega jezika testiranja, ki jasno opisuje, kako naj se obnaša naša koda aplikacije.
7. Atoum
Atoum je intuitiven in sodoben PHP testni okvir, ki nam omogoča, da izvajamo testne enote. Poenostavlja razvoj testov in ker je mladi okvir, uporablja nekatere novejše zmožnosti, ki so bile uvedene v PHP 5.3.ne bo uporabljen s starejšimi različicami PHP), da nam zagotovite hiter in preprost postopek testiranja.
Atoum zagotavlja a visoka raven varnosti med izvajanjem testa, ker izolira vsako preskusno metodo v svojem PHP procesu.
8. Kahlan
Kahlan je ogrodje za testiranje BDD, ki omogoča pisanje testov enot z uporabo Opiši skladnjo. Obsega načelo oblikovanja KISS (Keep It Simple, Stupid). Kahlan zahteva vsaj PHP 5.5.
Ima majhno kodno bazo, ki naj bi bila približno 10-krat manjša od PHPUnit, in ima veliko funkcij, ki nam omogočajo razširljiv in prilagodljiv potek testiranja..
9. Selen
Selen je prefinjen testni okvir, ki avtomatizira brskalnike. To pomeni, da je mogoče napisati User Acceptance Tests preglejte celotno aplikacijo kot celoto.
Selenium je robustno orodje, ki ima svoj lasten WebDriver API, ki lahko brskalnik poganja domače kot čeprav bi ga uporabnik uporabil lokalno ali na oddaljenem računalniku. Selen je odlično orodje za testiranje bolj zrelih spletnih aplikacij.
Končne misli
Avtomatizirani okviri za testiranje nam omogočajo, da napišemo PHP-kodo višje kakovosti in zaradi priljubljenosti jezika imamo veliko možnosti, zato se lahko odločimo za tisto, ki najbolje ustreza našim razvojnim potrebam..
Obstaja pa pomembna stvar, ki jo moramo vedno upoštevati. Avtomatizirano testiranje je lahko močno, vendar lahko nikoli ne nadomestite beta testiranja - teste, ki jih opravijo pravi ljudje, ki bodo bodoči uporabniki aplikacije.