Upgrade to Pro — share decks privately, control downloads, hide ads and more …

IVS FIT VUT - Popiš, testuj, programuj

IVS FIT VUT - Popiš, testuj, programuj

Přednáška o tom, proč je důležité nejdříve přemýšlet, komunikovat a zkoušet, než vůbec začneme testovat. A proč je důležité testovat, než vůbec začneme programovat. Zlehka probereme TDD, BDD, RDD, a to včetně dobře míněných rad, podložených reálnými šrámy z fronty. Nakonec si prakticky na jednoduchém projektu ukážeme, jak lze RDD snadno použít i v domácím nebo školním prostředí.

Avatar for Honza Javorek

Honza Javorek

May 02, 2017
Tweet

More Decks by Honza Javorek

Other Decks in Technology

Transcript

  1. Otevřu soubor, bouchám kód, zkouším spouštět a koukám, co program

    dělá Když se zdá, že to jede/nejede… Dostanu zadání… čtu zadání
  2. Nejasné zadání = rozdílná očekávání = nedomyšlené hraniční situace =

    ztracené body, ztracené iluze = hranolky s tatarkou nebo kečupem?
  3. Otevřu soubor, bouchám kód, zkouším spouštět a koukám, co program

    dělá Když se zdá, že to jede/nejede… Nikdy nedostanu jasné zadání
  4. Nejasné zadání = rozdílná očekávání = nedomyšlené hraniční situace =

    smutní nebo rozzlobení lidé = rentgeny, chirurgické zákroky
  5. Žádné testy = nikdo už nikdy nezjistí, jak se to

    má chovat = při úpravách kusu kódu se rozbije zbytek = opravená chyba se objeví znovu
  6. 6 jako první napíšu test 7 spustím ho, je červený

    8 snažím se do něj trefit implementací 9 spustím ho, je zelený
  7. Feature: Beer glass Background: Given you expect the glass to

    contain "0.5" l of beer Scenario: Empty glass When the glass contains "0" l of beer Then the glass owner will shout "ještě jedno!" And the glass will be scheduled to be filled Scenario: Full glass When the glass contains "0.5" l of beer Then the glass owner will NOT shout "ještě jedno!" And the glass will be left intact Gherkin / Cucumber
  8. 6 zadavatel napíše textové scénáře 7 nad scénáři se pobavíme,

    doladíme 8 test píšu pro jednotlivé řádky 9 pustím přes Cucumber
  9. RDD

  10. # Requests The `requests` library allows you to perform HTTP

    requests from your Python code. ## Example ```python >>> r = requests.get('https://google.com') >>> r.status_code 200 ``` ## License MIT README.md
  11. README se nesmí úpravami rozejít s tím, jak funguje kód

    Je to jádro toho, co slibujeme uživateli, co od programu očekává
  12. Mám základní testy i dokumentaci předem a není to ani

    opruz! Díky tomu, že návrh testuji, můžu navrhovat před tím, než programuji