9 Geriausios automatizuotos PHP testavimo sistemos
Ar kada nors praleido ilgas valandas derindami PHP kodą? Na, daugeliui programuotojų tai tikriausiai nėra patraukliausias iššūkis, tačiau yra sprendimas, kuris gali padėti mums sutrumpinti šią varginančią užduotį. Automatizuotas testavimas gali žymiai pagerinti PHP plėtros darbo eigą leidžiant iš anksto rašytinius testus, kad būtų skatinamas kūrimo procesas.
Šiame pranešime bandysime suprasti kodėl automatizuotas testavimas yra toks kietas, kaip tai veikia ir kas yra geriausios bandymų sistemos galite pradėti.
Kodėl testavimas yra svarbus
Pradedančiųjų PHP kūrėjai paprastai neperrašo savo kodo testų. Dauguma iš mūsų pradėjo karjerą bandydami naujas funkcijas ir funkcijas, kurias mes ką tik parašėme naršyklės lange, ir kai kažkas negerai, mes buvome beprasmiški, ką daryti.
Mūsų kodo testų rašymas gali išgelbėti brangų galvos skausmo šalinimo laiką ir valandas. Kai neišbandytas kodas patenka į gamybą, tikriausiai mes negalime būti tokie gražūs. Taigi, ką mes galime padaryti?
Tikriausiai geriausia idėja sukurti produktyvią bandymų darbo eigą kuriame turime rašyti savo testavimo kodą, kuris patikrina, ar mūsų paraiškos kodas veikia tinkamai.
Tai triukas bandymo kodas turi būti parašytas prieš paraiškos kodą. Tokiu būdu nuo pat pradžių galime užtikrinti, kad mūsų parašytas kodas tinkamai veiktų. Bandymų kodas bus atskiras. Jei vėliau įveiksime bet kokias klaidas mūsų PHP programoje, mums nereikia nieko daryti, tiesiog atlikite testus, kurie, tikiuosi, bus suteikti mums tinkamus patarimus apie problemas.
Be taupymo laiko ir tinkamo mūsų programos rengimo gamybai, bandymai turi daug kitų privalumų, pavyzdžiui:
- daugiau tvarkomo kodo
- supaprastintas refaktoravimas
- mažiau saugumo problemų
- mažesnis ištinęs kodo pagrindas (pritaikius paraiškos kodą prie iš anksto parengto testo kodo, mes nepaliksime nereikalingų dalių)
- geresnių rezultatų
Kas yra automatinis testavimas?
Žinoma, mes galime rašyti savo testus rankiniu būdu, bet po kurio laiko jis gali būti varginantis ir daug laiko užimantis daugeliui pasikartojančių užduočių. Rankinis testavimas gali būti pakeistas automatizuotu testavimu, kuriame mes naudojame konkrečias programines įrangas, kurios padarys mums nuobodų darbą, ir mes galime daugiau laiko praleisti kurdami testavimo kodo logiką..
PHP, laimei, yra gana populiari programavimo kalba, todėl yra daug automatizuotų testavimo sistemų.
Bandomasis vystymasis (TDD) ir elgsenos skatinamasis vystymasis (BDD)
Du pagrindiniai metodai, kuriuos naudoja automatizuotos testavimo sistemos, yra „Test-Driven Development“ (TDD) ir „Behavior-Driven Development“ (BDD). Abiejose srityse kūrimo procesą skatina testavimas, tai reiškia, kad testai yra parašyti prieš paraiškos kodą.
Pagrindinis skirtumas tarp bandymų ir elgsenos bandymų yra testavimo kodo sintaksėje: TDD testavimo failuose naudoja tinkamą PHP kodą, kol BDD naudoja žmogaus skaitytus sakinius kurie apibūdina kiekvienos savybės elgesį ir kuriuos gali suprasti ir netechniniai suinteresuotieji subjektai.
TDD testas kodų redaktoriuje atrodo taip, tai tik reguliarus į objektą orientuotas PHP kodas:
BDD testas yra panašus, be to, programuotojai gali suprasti:
10 PHP automatizuotų testavimo sistemų
Turint tai omenyje, pažvelkime į 10 galingų automatizuotų testavimo sistemų PHP, kurias galite naudoti.
1. PHPUnit
PHPUnit yra geriausiai žinoma testavimo sistema, skirta vieneto testams PHP programose. Įrenginių testai atlieka mažas kodo dalis, vadinamas vienetais, ir išbandykite jas po vieną. Naudodamiesi PHPUnit, mes galime atlikti bandymus orientuotą plėtrą.
Jis gali būti naudojamas per komandinė eilutė, ir ji suteikia mums a patogus TestCase klasė kad galime išplėsti pagal mūsų poreikius. PHPUnit taip pat leidžia programuotojams naudoti iš anksto rašytiniai tvirtinimo metodai, kuriais patvirtinama, kad programa elgiasi tam tikru būdu.
2. Bendro priėmimas
Bendras priėmimas ne tik leidžia rašyti vieneto testus, bet ir funkcijų bei priėmimo testus. Šie du pastarieji testuoja PHP programą kaip visumą su visomis funkcijomis, susietomis, o ne kaip vienetais. „Codeception“ leidžia mums įgalinti ir konfigūruoti įvairius modulius pagal mūsų vystymosi poreikius.
Tai integruota su daugeliu PHP plėtros sistemų, pvz Symfony2, Laravel4, Yii, Phalcon ir Zend Framework. Tai reiškia, kad kartu galime naudoti PHP automatizavimo testavimo sistemą ir PHP kūrimo sistemą, kad sukurtume superefficencinę plėtros darbo eigą.
3. Behat
„Behat“ yra populiarus elgesio skatinamas PHP testavimo pagrindas. Bandymai, kuriuos galime rašyti su „Behat“, atrodo gana kaip istorijos. „Behat“ naudoja „StoryBDD“ elgesio skatinamo vystymosi potipį (kitas potipis yra SpecBDD).
Sistemą įkvėpė „Agurkų“ projektas, kuris yra Ruby programavimo kalbos testavimo sistema.
4. PHPSpec
PHPSpec taip pat vadovaujasi elgesiu pagrįstu bandymų metodu, bet jo antruoju tipu, vadinamu SpecBDD. Su PHPSpec mums reikia pirmiausia užrašykite specifikacijas, kuriose aprašoma, kaip elgsis paraiškos kodas. Jį įkvėpė ir Ruby testavimo sistema, vadinama RSpec.
5. „Storyplayer“
„Storyplayer“ yra bandomoji sistema, leidžianti rašyti viso platformos bandymus. „Storyplayer“ palaiko bandomosios aplinkos kūrimas ir naikinimas. Jis atitinka TDD testavimo metodą ir leidžia mums rašyti funkcinius testus, kurie gali patikrinti programą kaip visumą.
6. Peridotas
„Peridot“ yra lengva, išplėstinė PHP testavimo sistema. Jame yra įvykių orientuota architektūra tai leidžia lengvai atlikti testuotojus pritaikyti sistemą naudodami įskiepius ir žurnalistus.
Peridotas naudoja Apibūdink tai sintaksė, kad būtų sukurta aiški ir suprantama testavimo kalba, aiškiai apibūdinanti, kaip elgtis mūsų paraiškos kodas.
7. Atoum
Atoum yra intuityvi ir moderni PHP testavimo sistema, kuri leidžia mums atlikti vieneto testus. Tai supaprastina bandymų kūrimą, ir kadangi tai yra jauna sistema, ji naudojasi kai kuriomis naujesnėmis galimybėmis, kurios buvo įdiegtos PHP 5.3negalima naudoti su senesnėmis PHP versijomis) suteikti mums greitą ir lengvai suprantamą testavimo procesą.
Atoum užtikrina a aukštas saugumo lygis bandymo vykdymo metu, ji atskiria kiekvieną bandymo metodą savo PHP procese.
8. Kahlanas
„Kahlan“ yra pilnai veikianti BDD testavimo sistema, leidžianti rašyti vieneto testus naudojant Apibūdink tai sintaksė. Jis apima KISS (Keep It Simple, Stupid) projektavimo principą. Kahlanas reikalauja mažiausiai PHP 5.5.
Ji turi mažą kodo bazę, tai yra maždaug 10 kartų mažesnė už PHPUnit, ir turi daug funkcijų, kurios suteikia mums išplėstinę ir pritaikomą testavimo darbo eigą.
9. Selenas
Selenas yra sudėtinga testavimo sistema, kuri automatizuoja naršykles. Tai reiškia, kad galima rašyti vartotojo priėmimą išnagrinėti visą programą kaip visumą.
Selenas yra tvirtas įrankis, turintis savo „WebDriver“ API, galinčią vairuoti naršyklę natūraliai nors tikrasis naudotojas jį naudos vietoje arba nuotoliniu būdu. Selenas yra puiki priemonė išbandyti brandesnes interneto programas.
Galutinės mintys
Automatizuotos testavimo sistemos suteikia mums galimybę rašyti aukštesnės kokybės PHP kodą, o dėl kalbos populiarumo turime daug pasirinkimų, todėl galime pasirinkti, kuris atitinka mūsų vystymosi poreikius.
Tačiau yra svarbu, kad mes visada turime nepamiršti. Automatizuotas testavimas gali būti galingas, bet gali niekada nepakeiskite beta testų - tikrus žmones, kurie bus būsimi programos naudotojai.