9 Najbolji okviri automatskog testiranja za PHP
Jeste li ikada proveli mnogo sati u otklanjanju pogrešaka u PHP kodu? Pa, za većinu programera to vjerojatno nije najfascinantniji izazov, ali postoji rješenje koje nam može pomoći da skratimo taj zamoran zadatak.. Automatizirano testiranje može značajno poboljšati tijek rada razvoja PHP - a omogućujući unaprijed napisane testove za pokretanje razvojnog procesa.
U ovom ćemo postu pokušati razumjeti zašto je automatizirano testiranje tako cool, kako funkcionira i što je najbolji okviri testiranja možete početi s.
Zašto je testiranje važno
Početnici PHP programeri ne pišu testove za svoj kod. Većina nas je započela svoju karijeru testiranjem novih značajki i funkcija koje smo upravo napisali u prozoru preglednika, a kada je nešto pošlo po krivu, nismo znali što učiniti.
Pisanje testova za naš kod može poštedjeti dragocjeno vrijeme i sate za otklanjanje pogrešaka u glavobolji. Kada netestirani kod uđe u proizvodnju, recenzije koje ćemo dobiti vjerojatno neće biti tako lijepe. Što možemo učiniti?
Vjerojatno je najbolja ideja uspostaviti proizvodni tijek produktivnog testiranja u kojem trebamo napisati vlastiti testni kod koji provjerava radi li naš kôd aplikacije ispravno.
Trik je u tome kod testiranja mora biti napisan prije aplikacijskog koda. Na taj način možemo od samog početka osigurati da kod koji pišemo ispravno funkcionira. Kod za testiranje će ići u zasebne datoteke. Ako kasnije naiđemo na pogreške u našoj PHP aplikaciji, ne trebamo ništa drugo, samo pokrenite testove koji će se nadati dajte nam odgovarajuće savjete o problemima.
Osim uštede vremena i pravilne pripreme naše aplikacije za proizvodnju, testiranje ima i mnoge druge prednosti, kao što su:
- više održivog koda
- olakšano refactoring
- manje sigurnosnih problema
- baza manje kodnog koda (prilagođavanje aplikacijskog koda pre-pisanom testnom kodu učinit će da izostavimo suvišne dijelove)
- bolje performanse
Što je automatizirano testiranje?
Naravno, naše testove možemo pisati ručno, ali nakon nekog vremena može biti zamorno i dugotrajno s mnogim zadacima koji se ponavljaju. Ručno testiranje može se zamijeniti automatiziranim testiranjem u kojem koristimo specifične softvere koji će učiniti naporan posao za nas, a možemo potrošiti više vremena na stvaranje logike testnog koda.
PHP je srećom prilično popularan programski jezik, tako da postoji mnogo automatiziranih okvira za testiranje iz kojih možemo birati.
Razvoj zasnovan na testiranju (TDD) u odnosu na razvoj ponašanja temeljen na ponašanju (BDD)
Dva glavna pristupa koja koriste automatizirani okviri za testiranje su razvoj testiranja (TDD) i razvoj pokrenutog ponašanjem (BDD). U oba slučaja, proces razvoja se pokreće testiranjem, što znači da su testovi napisani prije koda aplikacije.
Glavna razlika između testiranja i testiranja usmjerenog na ponašanje je u sintaksi koda za testiranje: TDD koristi odgovarajući PHP kod u testnim datotekama, dok BDD koristi čitljive rečenice koji opisuju ponašanje svake značajke i mogu se razumjeti i od strane ne-tehničkih dionika.
TDD Test izgleda ovako u uređivaču koda, to je samo običan objektno orijentirani PHP kod:
BDD test je sličan ovome, ne-programeri to također mogu smisliti:
10 PHP automatizirani okviri za testiranje
Imajući to na umu, pogledajmo 10 moćnih automatiziranih okvira za testiranje za PHP koje možete koristiti.
1. PHPUnit
PHPUnit je najpoznatiji okvir testiranja za pisanje testova jedinica za PHP aplikacije. Testovi jedinica uzimaju male dijelove koda koji se nazivaju jedinice i testiraju ih jedan po jedan. Uz pomoć PHPUnit-a možemo provoditi razvoj temeljen na testovima.
Može se koristiti putem naredbenog retka, i daje nam a pri ruci TestCase klasa koje možemo proširiti u skladu s našim potrebama. PHPUnit također omogućuje programerima da koriste unaprijed napisane metode tvrdnje tvrde da se aplikacija ponaša na određeni način.
2. Kodiranje
Kodiranje ne samo da nam omogućuje da napišemo testove jedinica, nego i testove funkcionalnosti i prihvaćanja. Ova dva posljednja testiraju PHP aplikaciju u cjelini sa svim vezanim značajkama, a ne kao jedinice. Kodiranje nam omogućuje da omogućimo i konfiguriramo različite module prema našim razvojnim potrebama.
To je integrirano s mnogim PHP razvojnim okvirima kao što je Symfony2, Laravel4, Yii, Phalcon i Zend Framework. To znači da možemo upotrijebiti okvir za testiranje automatizacije PHP-a i okvir za razvoj PHP-a zajedno kako bismo uspostavili superefikantan tijek razvoja.
3. Behat
Behat je popularan PHP testiranje okvira. Testovi koje možemo napisati s Behat izgledom kao priče nego kod. Behat koristi podtip StoryBDD razvoja temeljenog na ponašanju (drugi podtip je SpecBDD).
Okvir je inspiriran Cucumber projektom koji je okvir za testiranje Ruby programskog jezika.
4. PHPSpec
PHPSpec također slijedi pristup testiranju temeljen na ponašanju, ali drugi podtip nazvan SpecBDD. S PHPSpec moramo prvo napišite specifikacije koje opisuju kako će se ponašati kod aplikacije. Također je inspiriran Ruby testnim okvirom koji se zove RSpec.
5. Storyplayer
Storyplayer je okvir za testiranje s punim stogom koji omogućuje pisati testove od kraja do kraja za cijelu platformu. Storyplayer ima podršku za stvaranje i uništavanje ispitnih okruženja na zahtjev. Slijedi pristup TDD testiranja i omogućuje nam pisanje funkcionalnih testova koji mogu provjeriti aplikaciju u cjelini.
6. Peridot
Peridot je lagan, proširiv okvir za testiranje za PHP. Ima značajku arhitektura upravljana događajima koji omogućuju testerima lako prilagodite okvir putem dodataka i reportera.
Peridot koristi Opiši sintaksa za uspostavu jasnog i čitljivog jezika testiranja koji jasno opisuje kako bi se naš programski kod trebao ponašati.
7. Atoum
Atoum je intuitivan i moderan PHP testni okvir koji nam omogućuje pokretanje testova jedinica. To pojednostavljuje razvoj testova, a budući da je to mladi okvir, koristi neke novije mogućnosti koje su uvedene u PHP 5.3 (možeNeće se koristiti sa starijim PHP verzijama) pružiti nam brz i jednostavan postupak testiranja.
Atoum osigurava a visoka razina sigurnosti tijekom izvršenja testa, jer izolira svaku testnu metodu u vlastitom PHP procesu.
8. Kahlan
Kahlan je potpuno opremljen BDD testni okvir koji omogućuje pisanje testova jedinica pomoću Opiši sintaksa. Ona obuhvaća KISS (Keep It Simple, Stupid) princip dizajna. Kahlan zahtijeva najmanje PHP 5.5.
Ima malu bazu koda, za koju se kaže da je oko 10 puta manja od PHPUnit-a, i ima mnoštvo značajki koje nam pružaju proširiv i prilagodljiv radni tijek testiranja..
9. Selen
Selen je sofisticirani okvir za testiranje koji automatizira preglednike. To znači da je moguće napisati User Acceptance Tests ispitati cijelu aplikaciju kao cjelinu.
Selen je robustan alat koji ima vlastiti WebDriver API koji može pokretati preglednik iako bi ga stvarni korisnik koristio ili lokalno ili na udaljenom računalu. Selen je izvrstan alat za testiranje zrelijih web aplikacija.
Završne misli
Automatizirani okviri za testiranje osnažuju nas da napišemo PHP kôd bolje kvalitete, a zbog popularnosti jezika imamo mnogo izbora, tako da se možemo odlučiti za onaj koji zadovoljava naše razvojne potrebe..
Postoji jedna važna stvar koju uvijek moramo imati na umu. Automatizirano testiranje može biti moćno, ali može nikada ne zamjenjujete beta testiranje - testovi koje rade pravi ljudi koji će biti budući korisnici aplikacije.