Problémy
.
- Různé platformy.
- Vydání opravy rok staré verze.
- Obsahovala starší verze nějakou chybu?
- Je vydaná verze stejná jako testovaná?
- Commit před ochodem domů.
- Ztracené papírky.
- Oprava chyby způsobí jinou.
- Roztříšťenost koncentrace.
- U microsoftu kdysi měli připravenou verzi. Když ji vydali najednou nefungovala. Hledali kde je chyba a zjistili, že celý problém byl v optimalizátoru, který proházel .obj/.o soubory v binárce.
Co potřebujete?
.
- buildovací systém (Ant, Make, Maven, ...)
- verzovací systém (CVS, SVN, BitKeeper, ...)
- bug tracking systém (Bugzilla, RT, ...)
- kontinuální kompilace
- automatizované testování (JUnit, CPPUnit)
- systémy sdílení znalostí (Wiki, nástěnka, Google, ...)
- statické analyzátory kódu (Checkstyle, ...)
- profilovací nástroje
- generování a správa dokumentace
- velký hrnek na čaj, kafe; pizzu
- sluchátka
Verzovací systém
.
- doporučuji používat i při jednom člověku (Roman a jeho příhoda s diplomkou a opičkou)
- Píšete program. Ten je potřeba někde ukládat. U jednoho člověka stačí disk. U více lidí už je to obtížné (zamykání souboru).
- Kamarád psal diplomku. Jednou se vrátil večer z hospody, sedl k ní a ten večer mu to šlo opravu skvěle. Další týden strávil tím, že vše vracel zpět.
- jedna nejmenovaná plzeňská softwarová firma vydávala novou verzi svého programu. Ztratili zdrojáky a tak vzali betu a upravili v ní hexaeditorem číslo verze. Tu pak vydali.
- diffy před commitem
- update + test před commitem
- komentář commitu
Verze produktu
.
- doporučuji používat i při jednom člověku (Roman a jeho příhoda s diplomkou a opičkou)
- Archiv starších verzí
- Nástroj pro paralelní vývoj
Přístup přes web
.
- lze jej nahradit podporou v eclipse
- Narazíte na kód, který se zdá nelogický (chybný)
- nejste si jistí, zda jej můžete smazat/opravit
- musíme zkontrolovat, proč byla změna provedena
- Musíme tedy zjistit
- proč byla změna provedena
- které další změny s ní souvisí
- jak zopakovat chybu, kterou změna opravuje
- Propojení BugTracking systému s verzovacím. Přidání čísla bugu ke komentáři u změny
Propojení s bugtrackingem
.
Bugtracking
.
- formální evidence známých chyb software
Spolehlivá paměť
.
- Používáme Bugzillu
- do Bugzilly už dáváme i požadavky na koupi cukru a kávy
- má výborný dotazovací systém
- má závislosti mezi chybami
- dnes je zřejmě nejpoužívanější
Chybné postupy při hlášení chyb
.
Znalostní systém
.
- musí být snadno dostupné a musí být snadné je vytvářet
- vývojaři rádi uloží informace, když to bude jednoduché
Kompilace
.
- Zkoušeli jste někdy zprovoznit vývojové prostředí pro nějaký opensource?
Testování
.
- Automatizované testy jsou pouštěny automatizovaně - při commitu, nočně
Kontinuální integrace
.
- pravidelně spouštěná kompilace a testy. Výsledky jsou přístupné
(včetně starších verzí)
- „hlídá“, že jde aktuální verze kompilovat a funguje
- velmi důležité při podpoře více platforem, překladačů, ...
program funguje na jedné platformě, ale nemusí na dalších
- obvykle vytváří i „instalačky“, které pak testují živí testeři
- používáno spíše u středních a větších projektů (více jak 5 lidí)
- bez ní není možné větší projekty dokončit
Kontinuální integrace
.
- ukázka výsupu programu dashboard
Kontinuální integrace
.
- ukázka výsupu programu dashboard
Pokrytí testy
.
- nepřeceňujte pokrytí testy
Vydávání verze
.
- jak upgradovat aplikaci - máme dva tomcaty
- upgrade skripty
Nástroje se doplňují
.
- trac.org
- Microsoft Foundation Server
- sourceforge.net
- Nezmínil jsem:
- Debuger + Profilery
- Mailing listy
- fixopia (talkback)