TDD_should_be_fun()

 
10 september 2010

In een zoektocht naar een serious game waar je als ontwikkelaar ook iets van leert, heb ik een kleine game op de AppEngine gebouwd waarin je begeleid wordt in test-driven design (TDD). Op dit moment moet je een google account hebben om er gebruik van te kunnen maken: http://sogyotdd.appspot.com/ (let op: niet een google apps account!)

Er staat nu een eenvoudig voorbeeld  met een aantal tests voor een bloemenwinkel. In Python. Je begint met 1 test. Maak een implementatie (in het textarea of je favoriete editor) en stuur deze op ter test. Als alle testen slagen, dan krijg je vervolgens een nieuwe test erbij om te implementeren. Er zijn er nu 7.

Ga je gang, laat horen wat je ervan vindt en of je ergens tegenaan loopt. Bonuspunten krijg je voor:

– Mooie nieuwe testen om toe te voegen na test numero 7
– Een nieuwe game (een hele nieuwe set aan testen). Als je die aanlevert (stuur me even een  en het ziet er enigszins ok uit, dan zal ik hem online zetten, met jouw naam erbij. :)

Stuur me even een e-mail of tweet (@rvdarend) als een game hebt, dan regelen we wel dat die online komt. Extra testen kun je ook aan me sturen of hieronder plaatsen bij de reacties.

Veel python/puzzel/programmeer/test plezier!


Werken met ?
Kijk dan bij onze mogelijkheden voor zowel starters als ervaren engineers.


Categorieën: Development


Reacties (8)

  • Ok, na wat lunch-coding:

    – Je kunt nu de eerste pagina bekijken zonder login
    – Om te spelen: login en zet evenuteel een spelersnaam
    – Je gemaakte runs worden bewaard, je start weer waar je stopte
    – Binnenkort highscores

    http://sogyotdd.appspot.com

    Geplaatst op 17 september 2010 om 11:48 Permalink

  • En ja hoor.. Microsoft is er alweer met het idee vandoor: http://www.pexforfun.com/ :-)

    Dit werkt met name voor MS wel iets anders, zij gebruiken Pex voor het automatisch genereren van unit tests uit een implementatie. Zij hoeven er dus alleen implementatie in te gooien. Wel slim. Maar een door middel van tdd ontwikkelde api krijg je er natuurlijk niet mee..

    Geplaatst op 17 september 2010 om 8:42 Permalink

  • Kamil Afsar schreef:

    Goed gedaan, zo zouden tentamens op informatica moeten zijn. Kunnen leerlingen ook niet cheaten..

    Geplaatst op 13 september 2010 om 10:57 Permalink

    • Hoi Kamil,

      Hoe bedoel je precies? Dat de tentamens online afgenomen zouden moeten worden? Of in elektronische vorm? Of test-voor-test?

      Ik neem even aan je hierin vooral een alternatief ziet voor de examenvorm “maak een implementatie die dit-en-dit doet”, waarbij iemand gewoon in zijn geheel een implementatie van iemand anders kan overnemen, zonder te snappen wat er gebeurt? (overigens gewoon erg dom om te doen – ga dan niet studeren)

      Op zich zie ik wel wat in wat je zegt. Weet alleen niet of de gemiddelde docent het extra werk ziet zitten: in plaats van 1 set aan tests voor het eindresultaat, moet je nadenken over een ontwikkeling daarin. Maar er zijn ook wel oplossingen te bedenken om die hoeveelheid werk te minimaliseren. En het heeft daarnaast ook voordelen om het op deze manier te doen: betere set aan tests, betere API en een nuttige manier van werken om te leren.

      Doe je momenteel zelf een opleiding informatica?

      Groet,
      Rick

      Geplaatst op 13 september 2010 om 11:25 Permalink

  • Heb inmiddels ook wat gekeken in de highscores. De beste is nog niet voorbij de vijf testen gekomen. Was de zesde te moeilijk of teveel?

    Geplaatst op 12 september 2010 om 11:09 Permalink

    • Arno schreef:

      Het moeilijkste vind ik nog Python :-) ik weet wel wat ik wil programmeren, alleen niet hoe ik dat in python moet proppen.

      Wel leuk om te doen!

      Geplaatst op 12 september 2010 om 21:13 Permalink

      • :-)

        Op zich is Python niet zo moeilijk, maar het is soms wel even wennen.. dat spaties en tabs iets betekenen, de ‘self’ die je overal meegeeft. In zekere zin is dit wel heel duidelijk denk ik. Het is wel wat er gebeurt in ‘werkelijkheid’. Ook leuk daarin is de overeenkomst met extension methods, niet?

        Heb nog allerlei plannen om het leuker te maken, overigens!

        Geplaatst op 12 september 2010 om 22:18 Permalink

  • Met dank aan Michel Maas zijn er inmiddels al twee bugs gevonden en opgelost. Bedankt!

    Geplaatst op 10 september 2010 om 14:22 Permalink