1. När ska man mocka?

    Där jag jobbar nu mockar jag ungefär en gång i veckan. Nästa vecka kör vi vårens fjärde möte i JDojo@Gbg och temat för denna gång är just mockning. Vi kommer använda Mockito som jag tycker är mer lättanvänt verktyg än t ex EasyMock. En fråga som alltid dyker upp efter att man petat lite på ämnet brukar vara ”Vad är skillnaden mellan en stub och en mock?” I Mocks Aren’t Stubs har Fowler summerat det ganska bra tycker jag:

    • Dummy objects are passed around but never actually used. Usually they are just used to fill parameter lists.
    • Fake objects actually have working implementations, but usually take some shortcut which makes them not suitable for production (an in memory database is a good example).
    • Stubs provide canned answers to calls made during the test, usually not responding at all to anything outside what’s programmed in for the test. Stubs may also record information about calls, such as an email gateway stub that remembers the messages it ’sent’, or maybe only how many messages it ’sent’.
    • Mocks are [...] objects pre-programmed with expectations which form a specification of the calls they are expected to receive.

    Mockist Approach vs Stubborn Approach

    Detta är ett känsligt ämne – att påstå något om något som någon identifierar sitt arbete med. Jag brukar hävda att med stubborn approach (dvs när man bygger stubs eller fakes för sina collaborators/samarbetsklasser) så tenderar man att tappa fokus när man flyttar sin testverksamhet mellan olika klasser. Att använda en Mockist Approach (dvs när man mockar samarbetsklasserna runt sin ”enhet under test”) skulle på så sätt kunna hjälpa till att bibehålla fokus på den klass man utvecklar.

    Detta påstående brukar väcka lagom mycket anstöt för att få igång en givande konstruktiv diskussion där erfarenheter delas mellan debatörrer. Vad betyder det t ex när ett test med ett mockat beteende fallerar, jämfört med att använda en stub som kanske kan vara den verkliga (enda) implementationen?

  2. Walking Skeleton

    Under paneldebatten på SDC2010 fick jag lära mig ett nytt uttryck som jag tycker är så illustrativt och användbart att det förtjänar ett eget blogginlägg, nämligen Walking Skeleton. Till min glädje upptäckte jag att boken jag håller på att läsa, Growing Object-Oriented Software, Guided by Tests använder och beskriver detta begrepp ingående.

    Walking Skeleton syftar på att man bör skapa en fungerande infrastruktur innan man kan komma igång med den testdrivna cykeln. Ett Walking Skeleton är en implementation av den tunnaste möjliga skivan av riktig funktionalitet som vi kan bygga automatiskt, driftsätta automatiskt och testa ”end to end”.
    (Läs mer…)

  3. Ny version av TextTest med utökad Java stöd

    TextTest är en verktyg för att stödja arbetssättet ”Text-based Testing”, som är en alternativ till klassiskt enhetstestning med t.ex. JUnit. Det nyligen kom en ny version av denna verktyg, 3.17, som har bättre stöd för Java än tidigare versioner. (Läs mer…)

  4. Programmering är enbart Design

    Har du eller någon du känner någonsin försökt jämställa mjukvarubranschen med byggbranschen? Visst är det väl så att vi, precis som dem, bygger saker och då borde arbetssätt och metodik vara densamma? Eller?

    Jag tänker här lämna över ordet till Joakim Holm som har skrivit ett underbart blogginlägg som öppnar ögonen på en:

    Programming Is All Design

    http://jockeholm.wordpress.com/2010/01/29/programming-is-all-design/Programm
  5. Cfp: Agile Testing Days

    Det skapas mer och mer tjänster och material kring agila utvecklingsmetodiker och tekniker. Jag sprang på (eller blev översprungen av) Agile Record. som planerar att ge ut en PDF-tidning fyra gånger per år. Den första ligger ute nu (kostar din e-postadress) och ser tidningsaktig ut (inte hunnit läsa ännu dock).

    Därifrån såg jag hur som helst att Agile Testing Days nu har öppnat sin call for papers. Så om du fick nobben från SDC eller om den inte ger nog med agil eftersmak i munnen kanske en konferens i Berlin lockar.

    Ett nytt ”Agile Community” har också startats, behövs det? Kanske det, liksom Scrum on Rails.

  6. Undersökning om agil utveckling

    VersionOne ligger bakom en undersökning som de kallar State of Agile Development (2008). Jag vet inte hur de gjort sitt urval för vilka som får delta, men jag tyckte att det var intressant att se vad VersionOne anser vara agila delar/komponenter/kännetecken. Se t ex denna lista:
    (Läs mer…)

  7. IvyBeans

    Ivy logo

    För de som vill börja använda Ivy för att hantera beroenden i sina NetBeansprojekt så hittade jag häromdagen en trevlig plugin vid namn IvyBeans som förenklar processen.

    IvyBeans

  8. Continuous Integration-konferens startar i Paris

    Alldeles nu startar årets upplaga av Continuous Integration and Testing Conference Europe. Deras mailinglista har jag tipsat om tidigare och den har prenumeranter som är riktigt kompetenta får jag säga (annat är det med t e x JUnit-listan som bara handlar om ”what shoud I test – this is my class:”).

    För oss som inte har möjlighet att delta finns alltid twitter, även om det givetvis inte ger samma chans till delaktighet och erfarenhetsutbyte vid Open Space-sessionerna. Konferensen är för övrigt ”gratis” – dvs ingen avgift och ingen (Läs mer…)

  9. Resurser, inte funktioner

    Jag vet att den här insikten förmodligen beror på att jag förläst mig alldeles för mycket om REST, men jag kan inte göra mig av med känslan av vi, systemutvecklarna, lägger ner för mycket krut på fel problem.

    (Läs mer…)

  10. TDD inte utbredd i Java världen

    Det verkar som Java communityn inte har anamat Test Driven Development i så stor utsträckning. Kent Beck har nu lagt ner utveckling av JUnit Max på grund av den småa storleken på den potentiella marknaden. Han säger i sin blog:

    ”the data suggests that there are at most a few thousand Java programmers actively practicing TDD. That’s not a large enough market to sustain a business, especially as the market turned out to be price sensitive. Even if every Max subscriber successfully convinced 100 of their friends to sign up, there wouldn’t have been enough revenue.”

    Någon nämde i en kommentär till en föregående post om att det det kan finnas 6 miljoner Java programmerare, och det är enligt Tiobe världens populäraste programmeringspråk. Det gör mig så ledsen att höra att bara en liten liten bråkdel av oss använder TDD aktivt.

    Jag kan inte förändra hela världen, men jag kanske kan gör TDD lite vanligare bland Java utvecklare här i Göteborg. Kom och lär själv på JDojo@Gbg.

  11. TDD workshop at XP2009

    Martin and I were at XP2009 last week, and he has written a few posts about it already. I had a great time, there were lots of memorable moments. I particularly enjoyed a couple open space sessions sitting by the pool discussing geeky stuff while families splashed about and sunbathed nearby. I was actually a bit nervous about my session – how many people were going to come to it when it meant being indoors and sitting in a windowless room for 3 hours? Not to mention the fact I was competing with this fantastic tutorial with Joshua Kerievsky which Martin at least had decided was preferable… (Läs mer…)

  12. XP 2009, Torsdag

    Nu har jag gått igenom lite mer av mina anteckningar från XP 2009. Här kommer lite om torsdagen.
    —-

    Torsdagens keynote hölls av Ivar Jacobson, som väl de flesta känner till. Jag måste tyvärr säga att jag blev riktigt besviken på denna keynote. Ivar är ett stort namn i vår bransch och jag (och jag tror de flesta andra konferensdeltagarna) hade förväntat mig att han skulle komma med något nytt och insiktsfullt. Eller iallafall något väsentligt bättre än den omformulerade gamla skåpmat han verkligen levererade. (Läs mer…)

  13. XP 2009, Onsdag

    Detta inlägg skrevs den 27:e, men pga nästintill obefintlig uppkoppling på det italienska konferenshotellet har jag inte lyckats få iväg den förrän nu. Rätt otroligt med en konferens med 150 mjukvarumänniskor och knappt någon internetkoppling.
    ….

    Nu har jag mött upp kollegan Emily på XP2009 på Sardinien. Det är min första, men konferensens tredje dag idag. Måndag och tisdag fokuserade på workshops och den första av tre keynotes var i förmiddags. Keynoten hölls av ‘Queen of Lean’ Mary Poppendieck och hade titeln “The Cultural Assumptions behind Agile Software Development”, men handlade om betydligt mer än så. Jag har lyssnat på Mary förut och tycker att hon är en bra talare och har mycket intressant att säga. Hon och hennes man Tom har bl.a. varit mycket i Japan och studerat Toytas arbetsätt. Visst sas det en del som jag hade hört förut, men det följande tyckte jag var extra intressant:
    (Läs mer…)

  14. Snabbrapport från XP2009 på Sardinien

    Jag och Emily representerar JavaSolutions på XP2009 på Sardinien. Det är min första XP-konferens, men Emily är ju veteran i sammanhanget.

    Jag har lovat att blogga om konferensen, men det är ett späckat schema och det svårt att hitta tid att sätta sig ner och skriva. Dessutom är internetkopplingen under all kritik. Men håll ut, det kommer!

    Just nu nöjer jag mig med att säga att det är väldigt intressant och givande att träffa många Agile-experter av olika slag. Att konferensanläggningen ligger vid en glassig sandstrand skadar inte heller…

  15. Scandevconf har börjat sjunka in

    Nu har det gått en vecka sedan årets stora händelse i IT-Göteborg, vår egen konferens SDC2009 och intrycken börjar sjunka in. Det man fortfarande går och tänker på efter en vecka är antagligen det som gjorde mest intryck. Här kommer några saker som fortfarande lever kvar in mina tankebanor.
    (Läs mer…)

Nästa sida