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

Form analysis 0 forms found in the DOM

Text 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