Full-stivă dezvoltator (Symfony, unghiular)
In general, un wiki poate fi pentru a începe cu, și apoi se îngropa în literatura de specialitate. Aici pe scurt descrierea, scopul, care este acela de a oferi cuvinte cheie de căutare mai mare.
Modulare, ele sunt aceleași teste unitare sunt concepute pentru a testa module individuale / clase. Esența lor este că am testat comportamentul doar o singură clasă de la un moment dat. În cazul în care o clasă se referă la cazurile de alte clase - le avem Moka. Aceasta este palmat off pe ei feykovy de clasă care are aceeași interfață, dar nu și în punerea în aplicare a metodelor și a verifica dacă metoda este apelată cu ce argumente numărul de ori numit, etc. Doar metodele mocha pot reveni ștuțurile (ciot), unele zahardkozhennye în nici un caz date. Asta este, dacă vom scrie o clasa pentru a lucra cu baza de date, serverul de soclu, etc. ar trebui să se conecteze la baza de date, prize, etc. învelirea în clasele pe care le-ar putea înlocui apoi la Moki este bun. Dacă aveți un test de unitate este efectiv de lucru cu sistemul de fișiere sau ceva în acest spirit, este deja miroase de teste de integrare. Mai multe detalii pot fi găsite în documentația pentru PHPUnit. Deoarece există o astfel de metodologie de dezvoltare ca TDD, te sfătuiesc să verificați „Extreme Programming“ de Kent Beck în acest sens.
Testarea de integrare - testarea mai multor module într-un pachet. Asta este, am testat componenta noastră sau o piesă de sine stătătoare în lumea reală. În cazul în care această componentă este de a lucra cu fișiere - i permită accesul la dosarele. În cazul în care baza de date - care da o conexiune reală la baza de date. Dar poate ceva și zamokat. Acestea fiind spuse, depinde de sarcina. Spune cu care se confruntă apishkam partea în valoare de Moka și Stabiae. Scopul principal al acestor teste, pentru a se asigura că modulele funcționează bine împreună. Acest lucru este deosebit de important atunci când oamenii sunt diferite, scriu module.
Testarea functionala - este testarea întregii aplicații în asamblare. Dacă acest API REST, atunci curbați prin metode reale sunt trimise smucitura mai puțin cererile reale și răspunsurile sunt validate. În cazul în care pagina web, Testete UI sileniumom / phantom.js / zombi.js sau dacă nu avem încă și js de testare, doar buclat + un browser virtual în același php. În general, pentru testele funcționale bune nu permit nici un mokov etc. dar, apoi, din nou, dacă vrei cu adevărat ceva ce se poate (din nou apel la servicii furnizate de terțe părți, controlul pe care nu avem).
Dar realitatea este că testele UI acoperă proiectul nu este prea convenabil. În primul rând UI se pot schimba, și să le sprijine în funcție de necesități. În al doilea rând este plictisitor. În al treilea test poate cădea doar. Acum vom lua și a căzut. Și apoi începe, astfel că testele au scăzut din nou. care a căzut acolo? Și, nu înfricoșător, poți elibera. De asemenea, pe proiecte mari teste UI si petrec mult, mult timp, unele dintre ele doar o urmărire de noapte. Sense de la testele cu această abordare nu este prea mult, pentru că dezvoltatorul ar trebui să fie conștienți de faptul că ceva este rupt cât mai curând posibil. Și așa el vine, el vede că testele din nou, roșu, roșu repararea acestor teste și lansări. de așteptare. Se extinde jumătate de oră, de exemplu, și în altă parte a căzut. Pe scurt știi.
Testarea de acceptare - în esență aceleași teste funcționale, dar este servit în contextul unei funcții-prăjituri. Dacă ați lucrat vreodată cu departamentul QA, este posibil să se audă despre lucruri, cum ar fi criteriile de acceptare. Asta este, este foaia de verificare pentru a verifica dacă aparatul de probă pentru a vă asigura că totul este bine. Pe baza acestei foi de verificare se poate scrie teste funcționale. La fel cum există instrumente, cum ar fi Castravete / Behat, care vă permit să scrie specificații în formă de STEP. În acest caz, specificațiile pentru aceste instrumente pot scrie AC și doar implementite pentru ei de stepă. Adică a redus strat între „criteriile de acceptare“ și gata pentru a testa rula. Mai mult, STEP poate reyuzat, masa combinată a STEP sa terminat, trebuie doar să ofere același sistem STEP podgotvallivayuschie (încărcare / generarea de program, etc.). În lepota scurt și convenabil. Dar integrarea este mai lent, dar nu atât de tare ca funcțional, datorită acestui ei sunt mai ușor de întreținut. Qa scrie spec, ne dăm seama de teste, în acest spec, vom scrie codul de testat, Teste verzi - funcționalitate gata.
Ei bine, există tot felul de termeni teste, cum ar piramida, etc. teste unitare presupune mult mai bine, integrarea un pic mai mic și un pic funcțional. Apoi, testele sunt mai rapide și să acopere toate și toate testele funcționale sunt, de obicei nejustificată.
Ei bine, din nou, există un astfel de lucru ca bun simț. Unele lucruri pe care le pot spune, în general, scorul și nu acoperă testele, unele costuri pentru a acoperi. Unii nu complet, unele cu cea mai mare suprafață posibilă. Say TestIt UI (se pare ca, în cazul în care o celulă), în general, este inutilă. Este nevoie de o grămadă de resurse. Deși poate avea proiecte în cazul în care se justifică.
Pe scurt Citiți despre TDD și ATDD (poate și BDD afectate, dar nu este doar un programator depinde, manageri, client sau produs ouner ar trebui să fie, de asemenea, implicate, de fapt, această abordare funcționează bine, ca parte a produselor vizate de pe freelancing și externalizeze rare, pentru a găsi). Integrarea continious și livrare continious.
@StrangeAttractor tesami acoperire de 100% înseamnă că codul în conformitate cu cazuri de testare se efectuează în fiecare linie de cod care îndeplinește fiecare ramură în cazul în care s-și așa mai departe. pentru a realiza acest lucru nu este deosebit de dificil pentru majoritatea sistemelor, doar poate că e prea mult. Sunt lucruri pe care, în principiu, nu pot fi acoperite prin teste pe 100%.
În ceea ce privește cazul dumneavoastră, cel mai probabil, o problemă cu arhitectura. În cazul în care o componentă este dificil să acopere testele, atunci ceva a mers prost. Sau acoperă integrtsionnymi.
@StrangeAttractor dacă ar fi destul de frumos doar pentru a vedea exemplul aproximative, și este un „intermediar“ este destul de vag. Puteți aplica? În orice caz, toate părțile la MBCA și Stabiae.