Tesztels Laravel 5 alatt Papp Krisztin A tesztels

  • Slides: 33
Download presentation
Tesztelés Laravel 5 alatt Papp Krisztián

Tesztelés Laravel 5 alatt Papp Krisztián

A tesztelés folyamata • • • „A tesztelés az a folyamat, amikor a rendszert

A tesztelés folyamata • • • „A tesztelés az a folyamat, amikor a rendszert vagy annak egyes elemeit értékeljük azzal a szándékkal, hogy meggyőződjünk, kielégíti-e a specifikációban leírt igényeket, vagy sem. ” E folyamat során fény derül, hogy vannak-e benne hiányzó követelmények, rések, hibák. A tesztelés legfőbb célja, hogy hibát találjon.

Verifikálás (design) – Validálás (specifikáció)

Verifikálás (design) – Validálás (specifikáció)

Ki végzi a tesztelést? • • Software Tester Software Developer Project Lead/Manager End User

Ki végzi a tesztelést? • • Software Tester Software Developer Project Lead/Manager End User (Customer) MINDENKI

Mikor kezdjünk tesztelni? Minél korábban DE! Változó specifikációk -> Scenario „Majd az utolsó X

Mikor kezdjünk tesztelni? Minél korábban DE! Változó specifikációk -> Scenario „Majd az utolsó X hónapban!”

Tesztek csoportosítása Típus • Manuális tesztelés • Automatizált tesztelés Szint • Unit testing •

Tesztek csoportosítása Típus • Manuális tesztelés • Automatizált tesztelés Szint • Unit testing • Integration testing • System testing • Regression testing • Acceptance testing • Alpha testing • Beta testing • … Módszer • Black-box • White-box • Gray-box

Elemek kapcsolata

Elemek kapcsolata

Test Frameworks • • • PHPUnit Selenium PHPSpec Behat Codeception …

Test Frameworks • • • PHPUnit Selenium PHPSpec Behat Codeception …

Arre…assert

Arre…assert

Unit testing (white-box) • A rendszer legkisebb egyedülálló elemeit vizsgáljuk. • A cél az,

Unit testing (white-box) • A rendszer legkisebb egyedülálló elemeit vizsgáljuk. • A cél az, hogy meggyőződjünk, minden elem úgy viselkedik, ahogy megtervezték.

Miért jó ez nekünk? • • Bátrabban nyúlunk a kódhoz. Újrahasznosíthatóság Debuggolhatóság Gyorsabb fejlesztés

Miért jó ez nekünk? • • Bátrabban nyúlunk a kódhoz. Újrahasznosíthatóság Debuggolhatóság Gyorsabb fejlesztés

Test Doubles

Test Doubles

Test Doubles - Dummy

Test Doubles - Dummy

Test Doubles - Stub

Test Doubles - Stub

Test Doubles - Mock

Test Doubles - Mock

Test Doubles - Faketory

Test Doubles - Faketory

/tests/ /unit/ /integration/

/tests/ /unit/ /integration/

Config/database. php

Config/database. php

Tests/Test. Case. php

Tests/Test. Case. php

Mi a helyzet a Facade-okkal?

Mi a helyzet a Facade-okkal?

Statikus metódusok. . ajajj

Statikus metódusok. . ajajj

Na és az Eloquenttel?

Na és az Eloquenttel?

Statikus metódusok! Ha nem lenne még elég…

Statikus metódusok! Ha nem lenne még elég…

Megoldás: Repository / DAO! (meg egy kis Laravel black magic)

Megoldás: Repository / DAO! (meg egy kis Laravel black magic)

Hogy tegyük az életünket egyszerűbbé? • • • A konstruktor legyen light. 1 teszt

Hogy tegyük az életünket egyszerűbbé? • • • A konstruktor legyen light. 1 teszt = 1 példányosítás. Dependency Injection! Singletonokat kerüljük. Statikus metódusokat szintén (objektumorientált a kódunk, nemde? ) Service -> Mock Tesztjeink legyenek egymástól függetlenek, mindegy mi is a sorrend a futtatásukkor.

Integration tests

Integration tests

Codeception

Codeception

Laravel Test. Case

Laravel Test. Case

TDD

TDD

„Bolond az, aki mindig ugyanazt csinálja, de más eredményt remél tőle”

„Bolond az, aki mindig ugyanazt csinálja, de más eredményt remél tőle”

Köszönöm a figyelmet!

Köszönöm a figyelmet!