You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

Ciele cvičenia

Cvičenie je zamerané na modernú techniku vývoja aplikácii postavenú na báze testovania správania sa funkcii. Tento prístup k vývoju sa nazýva vývoj riadený testami (test driven development), kedy sa voči známemu rozhraniu najprv napíšu testy a až tak sa vytvára samotná implementácia. Po osvojení si učiva, študent dokáže navrhnúť vlastné testy, ktorými je následne schopný testovať vlastné funkcie, ktoré práve vyvíja. Zároveň tento testami riadený vývoj dokáže implementovať v nástroji make a dokáže k nemu vytvoriť adekvátny konfiguračný súbor Makefile.

  • Vývoj riadený testami
  • Implementácia testov s využitím knižnice assert.h
  • Implementácia testov s nástrojom make

Odporúčaná literatúra a dôležité odkazy

[1] KPI-FEI-TUKE: 

[3] KPI-FEI-TUKE: 

[4] Kováč, O.: ZAP - Cvičenie č. 4

[5]


Vývoj riadený testami

Ide o modernú techniku vývoja aplikácii postavenú na báze testovania správania sa funkcii. Tento prístup k vývoju sa nazýva vývoj riadený testami (test driven development -TDD), kedy sa voči známemu rozhraniu najprv napíšu testy a až tak sa vytvára samotná implementácia. Z uvedeného vyplýva, že riešenie zadaného problému nezačína písaním kódu ako sú študenti zvyčajne (nesprávne) zvyknutí, ale začína sa stanovením požadovaných funkcionalít, vstupov a očakávaných výstupov. Pre napĺňanie týchto požiadaviek sa najprv napíše test (testy) a až následne sa napíše kód samotného programu. 

Vývoj programov vo filozofii TDD pozostáva z piatich krokov:

1. Vytvorenie testu

Prvým krokom v TDD je napísanie testu, ktorý bude overovať funkcionalitu vyvíjaného programu. V podstate v tomto kroku sa stanovia požiadavky na funkcionalitu programu. Do istej miery je to veľmi podobné zásadám, ktoré sme sa učili na ZAPku [4]. Je potrebné stanoviť aké budú vstupy a aké budú výstupy vyvíjaných funkcií a programov. Pre zjednodušenie a lepšie porozumenie problematike, budeme ďalej uvažovať iba o funkcionalitách (moduloch - pozri [5]) a nie komplexných programoch.

2. Spustenie testu (prvý krát nesmie prejsť)

Potom ako je napísaný test pre daný modul programu je potrebné napísať kód pre samotný modul. "Prvý krát by tento mal pri testovaní zlyhať". Tomuto kroku treba rozumieť tak, že je potrebné si pripraviť kostru daného modulu, ktorá vráti nejakú preddefinovanú hodnotu alebo nevráti nič a testom tak neprejde. Nesmie sa však stať, že problém nastane pri kompilácii! 

3. Napísanie vlastného kódu a jeho testovanie 

V tomto kroku sa prechádza k vývoju a programovaniu daného modulu a jeho funkcionalít. Tento vyvíjaný kód sa neustále kompiluje a testuje. Ak je test neúspešný je potrebné daný kód upraviť a spustiť ďalší test. Ak vyvinutý modul prejde testom prechádza sa do ďalšieho kroku.

4. Refaktorizácia - postupné vylepšovanie

Kód prechádza testami a robí to čo sa od neho očakáva. V tomto okamihu je možné začať premýšľať nad tým ako by sa daná funkcionalita dala vylepšiť, rozšíriť a podobne. Stanovia sa teda nové ciele, ktoré treba implementovať do testov. Prechádza sa k poslednému kroku - "uprataniu" 

5. Upratovanie a návrat k bodu 1

Pred návratom k bodu 1 je potrebné vymazať objektové a spustiteľné súbory, ktoré boli v priebehu vývoja skompilované. 







  • No labels