tdd-slides.vercel.app
Open in
urlscan Pro
76.76.21.93
Public Scan
Submitted URL: https://tdd.mmatyi.hu/
Effective URL: https://tdd-slides.vercel.app/
Submission: On April 04 via api from US — Scanned from US
Effective URL: https://tdd-slides.vercel.app/
Submission: On April 04 via api from US — Scanned from US
Form analysis
0 forms found in the DOMText Content
TESZTVEZÉRELT FEJLESZTÉS MATOLCSY MÁTYÁS (KNDQJI) MI A TDD? * tökéletes ellentéte a "hagyományos" fejlesztésnek * szoftverfejlesztési módszer * a fejlesztési ciklusokat tesztek vezérlik * a követelményeket tesztesetekkel írjuk le * kódot a tesztek alapján írjuk Enter fullscreenGo to previous slideGo to next slideShow slide overviewSwitch to dark mode theme Show drawing toolbar Show info Adjust settings 1 / 14 Draw with stylusDraw a lineDraw an arrowDraw an ellipseDraw a rectangleErase Adjust stroke width Set brush color Set brush color Set brush color Set brush color Set brush color Set brush color Set brush color UndoRedoDelete Pin drawing TESZTVEZÉRELT FEJLESZTÉS MATOLCSY MÁTYÁS (KNDQJI) 1 MI A TDD? * tökéletes ellentéte a "hagyományos" fejlesztésnek * szoftverfejlesztési módszer * a fejlesztési ciklusokat tesztek vezérlik * a követelményeket tesztesetekkel írjuk le * kódot a tesztek alapján írjuk 2 TESZTVEZÉRELT FEJLESZTÉS (TDD) LÉPÉSEI 1. TESZT HOZZÁADÁSA * Minden új funkció vagy módosítás teszt írásával kezdődik. * A tesztek pontosan meghatározzák az elvárt működést. * Akár már meglévő tesztek módosítása is ide tartozik. 2. MINDEN KORÁBBI TESZT FUTTATÁSA * Az új teszt hibára fut * a várt működést még nem implementáltuk. * A korábbi tesztek sikeresen lefutnak * Növeli a fejlesztő magabiztosságát az új tesztekkel kapcsolatban. 3 TESZTVEZÉRELT FEJLESZTÉS (TDD) LÉPÉSEI 3. KÓD ÍRÁS * Az új kód célja, hogy a tesztet sikeresen teljesítse. * Nem tökéletes vagy optimalizált, csak a tesztet valósítja meg. * előfordulhat, hogy a kód nem lesz szép vagy hatékony. * a kód egyetlen célja: csak a tesztet teljesíti 4. MINDEN TESZT ÚJBÓLI FUTTATÁSA * Ha minden teszt sikeresen fut le, akkor az új kód megfelel a követelményeknek. * Hibás teszt esetén a kódot módosítani kell annak érdekében, hogy megfeleljen az elvárásoknak. 4 TESZTVEZÉRELT FEJLESZTÉS (TDD) LÉPÉSEI 5. KÓDSZÉPÍTÉS * A kód rendszeres tisztítása és optimalizálása. * A kód átrendezése és refaktorálása a karbantarthatóság és olvashatóság érdekében. 6. ISMÉTLÉS * Új teszt írása és a folyamat újbóli elkezdése. * A folyamat addig ismétlődik, amíg a szoftver nem teljesíti az összes követelményt. * A lépések mérete mindig kicsi, így a hibák könnyen kijavíthatóak. * Folyamatos integráció 5 6 SZÍNEK ÉS JELENTÉSÜK * Piros: a teszt hibára futott * minden teszt hibára fut a fejlesztés elején * Zöld: a teszt sikeresen lefutott * Sárga/Kék: refaktorálás * a kód átrendezése és optimalizálása * a teszteknek továbbra is sikeresen kell lefutniuk 7 FEJLESZTÉSI STÍLUS * "KISS" * Keep It Simple, Stupid * egyszerűség * a kód legyen könnyen olvasható és érthető * "YAGNI" * You Aren’t Gonna Need It * ne fejlesszünk olyan dolgokat, amiket jelenleg nem használunk * csak a szükséges dolgokat fejlesszük 8 MINÉL KISEBB EGYSÉGEK * Csökkenti a hibakeresésre szánt időt * Amikor a teszthiba észlelhetővé válik, a kisebb egységek elősegítik a hiba vagy hibák felderítését. * Öndokumentáló tesztek * A kis tesztesetek gyorsabban olvashatóak és könnyebben megérthetőek 9 TESZTVEZÉRELT FEJLESZTÉS ELŐNYEI * Több teszt íródik * Kevesebb hibakeresés * Ügyfelek helyébe tudunk képzelni * Korai és gyakori visszajelzés * Moduláris kód * bővíthető, könnyen karbantartható * a kis egységek könnyen cserélhetőek * Csak annyi kódot írunk, amennyi szükséges * Az összes lehetséges kimenetelt teszteljük 10 TESZTVEZÉRELT FEJLESZTÉS KORLÁTAI * Nem megfelelő olyan helyzetekben, amikor teljes működési tesztek szükségesek a siker vagy kudarc meghatározásához. * A TDD arra ösztönzi a fejlesztőket, hogy maximalizálják a tesztelhető könyvtári kódot, ami nem mindig a legjobb megoldás. * A tesztek és a kód közötti vak területek miatt fennáll a tévedés lehetősége, ami megtévesztheti a helyességről alkotott képet. * A nagy számú sikeres egységteszt téves biztonságérzetet okozhat * A rosszul megírt tesztek további problémákat okozhatnak. * A TDD ciklusok során elért lefedettségi szint és tesztelési részletesség nehezen újraalkotható vagy megváltoztatható később. 11 VISELKEDÉSVEZÉRELT FEJLESZTÉS (BDD) * Az BDD egyesíti a TDD és az ATDD gyakorlatait. * ATTD: Acceptance Test-Driven Development * üzleti igényeket tesztekkel írjuk le * Fókuszál a viselkedést leíró tesztek írására, nem pedig a végrehajtási egységet tesztelő tesztekre * a tesztek a felhasználói szempontokat követik * "emberibb" nyelvezet 12 PÉLDA import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; public class CalculatorTest { @Test public void testAdd() { Calculator calculator = new Calculator(); assertEquals(5, calculator.add(2, 3)); } @Test public void testMultiply() { Calculator calculator = new Calculator(); assertEquals(6, calculator.multiply(2, 3)); } } -------------------------------------------------------------------------------- public class Calculator { public int add(int a, int b) { return a + b; } } public class Calculator { public int multiply(int a, int b) { return a * b; } } 13 PRÓBÁLJUK KI! https://replit.com/@matyi/TDD 14