Asi nejmensi zlo je prechazet na nove metodoky pomalu. Pokud skocite do
XP rovyma nohama, nevim jak dopadnete u kolegu. Je to spousta novych
technik, ktere je nutno se naucit, jinak to nebude fungovat.
Ja zacal od TDD (testy rizeny vyvoj) s trochou refaktorizaci. Myslim, ze
casem az se mi to vice zautomatizuje budu psat vice testu i vice
refaktorovat.
Testy alespon pri vyvoji MVC koponent s web rozrhranim vyvoj radikalne
zrychli. Nemusite totiz porad restartovat Tomcate (nebo ktery jiny
server mate), resp. testovanou aplikaci. Protoze testy probihaji (s
trochou dobreho navrhu) primo jenom v JUnit. K testovani puzivam hojne
Mock Objekty a Test Scenario jak je popsan zde
http://www.sweb.cz/pichlik/archive/2005_10_23_archive.html.
Sam jsem ale mel strasny problem pochopit jak vlastne testovat trochu
slozitejsi problem, napojeny treba na DB. Osvedcil se mi model (kdyz
teda delam aplikaci primo s JDBC, ne treba Hibernate, tam by byla
metodika jina)
DAOReader (rozhrani) pro DAOReaderImpl a DAOReaderMock - Rozhrani
implementuji dve tridy, ktera jedna je navazana na databazi a druha
slouzi jako Mock objekt, pro predavani dat po cas testu.
Testuji pak aplikacni logiku pres DAOReaderMock a kdyz mam aplikacni
logiku otestovanou otestuji jeste DAOReaderImpl jestli vrati skutecne z
DB to co si preji. Obdobne DAOWriter pro zapis dat do DB.
Jak rikam vyvijim rychleji a to jiz z kratkodobeho hlediska, protoze
nemusim cekat na start interface, abych naklikal, nebo jinak otestoval
co chci.
S pozdravem Lukas Benda
P.S.: Pri testovani GUI se uz asi klikaci a testovaci metode nevyhnu
(teda pokud se neucim Cactus - coz asi udelam).
Zdravim,
chtel bych se zeptat hlavne lidi, co se drzi nejake agilni metodiky
vyvoje software. Mam v umyslu presvedcit sve kolegy o prechodu na
nekterou z techto metodik vcetne contin. integr. a s jedinou veci si
lamu hlavu. Psani testu. Chtel bych vedet jestli vyvojove tymy ktere
nejprve napisou testy a pak az koduji maji pocit, ze psanim testu
narostl cas straveny vyvojem. Je mi jasne, ze tenhle cas navic (jestli
je nejaky) se vrati pri pozdejsim vyvoji a integrovani dalsich komponent
(nemluve o tom, ze si clovek aspon uvedomi co chce napsat), ale co jsem
zjistil kdyz navrhnu psani testu atd. tak nejcastejsi poznamka je
navyseni casu pro vyvoj. A bohuzel na to management slysi.
Taky klidne muzete pridat svoje zkusenosti s agilnimi metodikami :)
(nejlepe v Jave, abych naplnil zamereni teto konference ;))
Preji hezky den
Daniel Holesinsky (DH)