JUnit vs. Fitnesse

JUnit is for unit testing, Fitnesse for acceptance and functional testing. But in projects we have detected that sometimes JUnit and Fitnesse tests overlap. Sometimes Fitnesse tests are smaller and easier to comprehend than JUnit tests – even for single classes.

I did some very simple experiments to get a better feeling when to use JUnit and when to use Fitnesse tests. The sample code can be downloaded and the results of the experiments are documented in a small article.

Acceptance Testing with Fitnesse

Fitnesse is an open-source acceptance testing framework based on FIT and a Wiki web. It is one of the best tools I have seen in the last years. It works with Java, C# and some other programming languages. Tests are defined with HTML tables (creating HTML tables with the Fitnesse wiki is quite easy) and connected to the application under test with so called fixtures. The fixtures have to be programmed by the developers – the effort is small. After having the tables with the test data and the fixtures the tests can be run from Fitnesse directly. The fixtures are simply classes that call other classes of the application under test. If core functional classes or UI classes are called (perhaps with a library like Jemmy) is the decision of the developers. Similar to JUnit tests can be combined to suites.

Fitnesse is suitable to let customers or business experts/analysts define the tests – test first for acceptance tests is enabled.

http://www.fitnesse.org/


Eric Evans: "Domain Driven Design"

Really good books about how to design the core domain model of an application are very rare. Eric Evans has written one.

Domain modeling is handled from the very small (entities, value objects, associations) to the very large (components, layers). Evans argues that creating a ubiquitous language shared by domain experts and developers is essential for the success of domain modelling. While the book refers to agile methods it is applicable for agile and non-agile methods.

The book is written in a pattern style and can therefore be read from start to end or be used as a handbook to answer specific questions at hand.

I strongly recommend „Domain Driven Design“ to every OO designer and programmer.

There is a website related to the book which provides additional information and discussions of the topic.

Test Java Unit Tests with Jester (Open-Source)

Some months ago I heard of Jester a tool for testing Java unit tests. How do you test a test? The Jester approach is very simple but powerful: Jester modifies the tested source code and runs the tests after the modification. If the test fails, the test is OK. If the test passes, the test is incomplete.

The modifications to the code are based on very simple algorithms like incrementing integer constants by one, reverse conditions in if statements etc.

If contributed some minor extensions to Jester myself.

And Jester shares one attractive property with many other simple, but powerful tools: it is Open Source software.

Jester at Source-Forge


Dependencies of XP Practices

Kent Beck shows the influences of the XP practices in his book and there are a lot of influences. The shown tangle isn’t very useful when it comes to introducing the XP practices into a project. Then the essential depedencies are impotant: Which XP practice does require other XP practices to work.

I have put together the essential dependencies here.

WebLog active

Now even I try to use a WebLog (in fact Blogger). I integrated the parts of my old site via the link section on the left of the page. The old parts are still in the old layout. Therefore they don’t look pretty, but at least they are there. I promise to work on the layout in the future.

Thats me:

Veröffentlichungen

Siehe auch meine frühere Publikationsliste sowie meine Vorträge.

  • Stefan Roock: „eXtreme Programming„, in dotnetpro 02/2008 , Seite 28-33, Februar 2008
  • Stefan Roock, Henning Wolf, „Feature Driven Development (FDD)“, 4-teilige Artikelserie im Java-Magazin, 2007-2008
  • Stefan Roock, Henning Wolf: „Berufsethos, Qualität, Rollenverständnis“, in Java-Magazin, Juli 2006
  • Johannes Link, Stefan Roock: „Je abstrakter, desto besser, oder?“, in Java-Magazin, S. 65-69, Juni 2006
  • Eberhard Wolff, Henning Wolf, Stefan Roock: „Ist die Java-Plattform zu komplex geworden?“, in Java-Magazin, Mai 2006
  • Achin Bangert, Dierk König, Eberhard Wolff, Henning Wolf, Johannes Link, Martin Lippert, Stefan Roock: „Technology First“, in Java-Magazin, April 2006
  • Martin Lippert, Stefan Roock, Henning Wolf: „Ist die Technologie das geringere Problem?“, in Java-Magazin, Oktober 2005
  • Martin Lippert, Stefan Roock: „Large Refactorings“. Englische Übersetzung von „Refactorings in großen Softwareprojekten“, Wiley, 2006
  • Robert Beeger, Arno Haase, Stefan Roock, Sebastian Sanitz: „Hibernate“, dpunkt-Verlag, 2006.
  • Henning Wolf, Stefan Roock, Martin Lippert: „eXtreme Programming – Eine Einführung mit Empfehlungen und Erfahrungen aus der Praxis“, 2. überarbeitete und erweiterte Auflage, dpunkt-Verlag, 2005
  • Stefan Roock, Martin Lippert: „Refactorings in großen Softwareprojekten“, dpunkt-Verlag, 2004
  • Roock, S., Wolf, H.:, Agile Project Controlling, XP 2004, Juni 2004, Garmisch-Patenkirchen, 2004
  • Becker-Pechau, P., Roock, S., Sauer, J.:, Open Source für die Softwareentwicklung, In: HMD Praxis der Wirtschaftsinformatik, 238, August 2004, dpunkt.verlag, Heidelberg, S. 19-25, 2004
  • Roock, S., Lippert, M.:, Refactorings in großen Softwareprojekten, (Hrsg.): dpunkt.verlag, Heidelberg, 2004
  • Lippert, M., Becker-Pechau, P., Breitling, H., Koch, J., Kornstädt, A., Roock, S., Schmolitzky, A., Wolf, H., Züllighoven, H.:, Developing Complex Projects Using XP with Extensions, In: IEEE Computer Magazine, June 2003, Vol. 36, No. 6, 2003
  • Roock, S.:, RE bei agilen Methoden, 2003
  • Martin Lippert, Stefan Roock, Henning Wolf, „eXtreme Programming in Action“. Englische Übersetzung des XP-Buchs „eXtreme Programming in Action“, Wiley, 2003.
  • „Software entwickeln mit eXtreme Programming – Erfahrungen aus der Praxis“, Martin Lippert, Stefan Roock, Henning Wolf, 2002 erschienen im dpunkt-Verlag
  • Mitarbeit am Buch „Object-Oriented Software Construction“, Heinz Züllighoven
  • Mitarbeit am Buch „Das objektorientierte Konstruktionshandbuch“, Heinz Züllighoven
  • Lippert, M., Roock, S., Wolf, H., Züllighoven, H.:, XP in Complex Project Settings: Some Extensions, In: Extreme Programming Perspectives, Addison-Wesley XP Series, 2002
  • Lippert, M., Roock, S., Tunkel, R., Wolf, H.:, Stabilizing the XP Process Using Specialized Tools, In: Extreme Programming Perspectives, Addison-Wesley XP Series, 2002
  • Lippert, M., Roock, S., Wolf, H.:, Extreme Programming in Action – Practical Experiences from Real-World Projects, In: Wiley & Sons, UK, 2002
  • Roock, Stefan, Frameworks and Testing, In: Proceedings of Extreme Programming Conference 2002, Villasimius, Cagliari, Italy, 2002
  • Roock, Stefan; Havenstein, Andreas, Refactoring Tags for automatic refactoring of framework, In: Proceedings of Extreme Programming Conference 2002, Villasimius, Cagliari, Italy, 2002
  • Lippert, M., Roock, S., Wolf, H., Züllighoven, H.:, XP en proyectos complejos: algunas extensiones., In: Novatica, ATI, Spain, Nr. 156, March – April, 2002
  • Lippert, M., Roock, S., Wolf, H., Züllighoven, H.:, XP in Complex Project Settings: Some Extensions, In: Informatik/Informatique. Schweizerischer Verband der Informatikorganisationen. Nr. 2, April, 2002
  • Lippert, M., Roock, S., Wolf, H.:, Software entwickeln mit eXtreme programming: Erfahrungen aus der Praxis, In: dpunkt Verlag, Heidelberg, 2002
  • Lippert, Martin; Roock, Stefan; Tunkel, Robert; Wolf, Henning, Stabilizing the XP Process Using Specialized Tools, Proceedings of Extreme Programming Conference 2001, Villasimius, Cagliari, Italy, 2001
  • Lippert, Martin; Roock, Stefan; Wolf, Henning; Züllighoven, Heinz, XP in Complex Project Settings: Some Extensions, Proceedings of Extreme Programming Conference 2001, Villasimius, Cagliari, Italy, 2001
  • Gryczan, G.; Kornstädt, A.; Roock, S.; Wolf, H.; Züllighoven, H., Das JWAM-Framework und Komponenten. Eine konzeptionelle Bestandsaufnahme, in: Tagungsband des 3. Workshops zu komponentenorientierter betrieblicher Anwendungsentwicklung (Frankfurt: April 2001), S. 15-21, 2001
  • Lippert, Martin; Roock, Stefan; Züllighoven, Heinz, From Documents to Applications via Frameworks: The Tools and Materials Approach, in OOPSLA 2000 Companion, Minneapolis, ACM press, 2000
  • Roock, S., eXtreme Frameworking – How to aim applications at evolving frameworks, Proceedings of the XP2000 conference. Cagliari, Sardinia, Italy, 2000
  • Lippert, Martin; Roock, Stefan; Wolf, Henning; Züllighoven, Heinz, JWAM and XP – Using XP for framework development, Proceedings of the XP2000 conference. Cagliari, Sardinia, Italy, 2000
  • Gryczan, G., Roock, S., Wolf, H., Züllighoven, H., Frameworkbasierte Anwendungsentwicklung (6. und letzter Teil): Frameworkentwicklung und -einsatz organisieren, OBJEKTspektrum 2/2000, März/April 2000, S. 88-93, 2000
  • Gryczan, G., Havenstein, A., Roock, S., Wetzel, I., Züllighoven, H., Frameworkbasierte Anwendungsentwicklung (Teil 5): Unterstützung von Kooperation mit persistenten fachlichen Behältern, In: OBJEKTspektrum 1/ 2000, Januar/Februar , 2000
  • Gryczan, G.; Roock, S.; Wolf, H.; Züllighoven, H., Management kundenorientierter Softwareentwicklungsprojekte mit Objektorientierung, In: Informatik Software Project Management, Zeitschrift der schweizerischen Informatikorganisation, Nr. 5, Oktober 1999, S. 22-29, 1999
  • Gryczan, G., Roock, S., Wolf, H., Züllighoven, H., Frameworks von der Stange reichen nicht aus – Auswahl eines Rahmenwerks für die Software-Entwicklung, In: Computerwoche Nr. 5, 17.9.99, S. 6-8., 1999
  • Bleek, W.-G., Görtz, T., Lilienthal, C., Lippert, M., Roock, S., Strunk, W., Weiss, U., Wolf, H., Interaktionsformen zur flexiblen Anbindung von Fenstersystemen., Universität Hamburg. Fachbereich Informatik. Fachbereichsmitteilung FBI-HH-M-285/99. April., 1999
  • Bleek, W.-G., Lippert, M., Roock, S., Züllighoven, H., Strunk, W., Frameworkbasierte Anwendungsentwicklung (Teil 3): Die Anbindung von Benutzungsoberflächen und Entwick- lungsumgebungen an Frameworks, OBJEKTspektrum 3/99, Mai/Juni, S. 90-95, 1999
  • Bleek, W.-G., Lilienthal, C., Lippert, M., Roock, S., Strunk, W., Wolf, H., Züllighoven, H., Frameworkbasierte Anwendungsentwicklung (Teil 2): Die Konstruktion interaktiver Anwendungen, OBJEKTspektrum 2/99, März/April, S. 78-83, 1999
  • Bleek, W.-G., Gryczan, G., Lilienthal, C., Lippert, M., Roock, S., Wolf, H., Züllighoven, H., Von anwendungsorientierter Softwareentwicklung zu anwendungsorientierten Lehrveranstaltungen – der Werkzeug & Material-Ansatz in der Lehre, Software Engineering im Unterricht der Hochschulen (SEUH) 99, Berichte 52, B. Dreher/Ch. Schulz/D. Weber-Wulff (Hrsg.), Workshop des German Chapter of the ACM und der Gesellschaft für Information (GI) am 25. und 26. Februar 1999 in Wiesbaden, pp. 9-20, 1999
  • Gryczan, G., Lilienthal, C., Lippert, M., Roock, S., Wolf, H., Züllighoven, H., Framework-basierte Anwendungsentwicklung (Teil 1), OBJEKTspektrum Nr. 1, Jan./Feb., S. 90-98, 1999
  • Roock, S., Wolf, H., Züllighoven, H., Frameworking, In: Niels Jakob Buch, Jan Damsgaard, Lars Bo Eriksen, Jakob H. Iversen, Peter Axel Nielsen (Eds.): IRIS 21 „Information Systems Research in Collaboration with Industry“, Proceedings of the 21st Information Systems Research Seminar in Scandinavia, 8-11 August 1998 at Saeby Soebad, Denmark, pp. 743-758, 1998
  • Fricke, N., Lilienthal, C., Lippert, M., Roock, S., Wolf, H., Operating and Window Systems will never strike back or Independence day for Java developers, In: R. Nigel Horspool (Ed.): Systems Implementation 2000, Chapman & Hall, London, New York 1998, Proceedings of SI2000 (IFIP Working Group 2.4), Berlin 23-26 February 1998, pp. 86-99., 1998
  • Roock, S., Wetzel, I., Wolf, H., Züllighoven, H., Location as an Analysis and Design Metaphor in Work Settings with Complex Cooperations, In: Kristin Braa & Eric Monteiro (eds.): Proceedings of IRIS 20 „Social Informatics“, Oslo, June 1997. S. 431-448, 1997

Vorträge

siehe auch meine Artikel und Bücher

  • Bernd Schiffer, Stefan Roock: Agile Entwicklung mit Grails, XP-User-Group-Hamburg und Java-User-Group-Hamburg, Dezember 2007
  • Stefan Roock: Einfachheit in Softwareprojekten, XP-Days Germany 2007, Karlsruhe, November 2007
  • Stefan Roock (Organisation): Agile Lightning Talks, XP-Days Germany 2007, Karlsruhe, November 2007
  • Stefan Roock, Bernd Schiffer, Henning Wolf: Agile Lego Hour, W-JAX 2007, München, November 2007
  • Stefan Roock, Henning Wolf: Festpreisvertrag und agil nützt nicht viel?, Agility Day auf der W-JAX 2007, München, November 2007, Folien
  • Stefan Roock (Organisation): Agile Lightning Talks, Agility Day auf W-JAX 2007, München, November 2007
  • Stefan Roock: Anforderungen, Usability und Agilität, Universität Konstanz, 2007, Folien
  • Stefan Roock, Henning Wolf: Scrum und Lean-Management in IT-Projekten, Arbeitskreis Projektmanagement, Nordakademie, 2007
  • Jürgen Ahting, Stefan Roock: Warum sind die Kunden in Softwareprojekten so schwierig?, JAX 2007, Wiesbaden, 26.04.2007
  • Robert Beeger, Matthias Lübken, Stefan Roock, Sebastian Sanitz: XP-Live-Demo, JAX 2007, Wiesbaden, April 2007
  • Stefan Roock, Henning Wolf: IT-Kaizen: Kontinuierliche Verbesserung in der Softwareentwicklung, XP-Days Germany 2006, Hamburg, 24.11.2006, Folien
  • Bernd Schiffer, Stefan Roock: Beispiel Grails – Brauchen wir neue Technologien für agile Entwicklung?, XP-Days Germany 2006, Hamburg, 24.11.2006, Folien
  • Arno Haase, Stefan Roock, Sebastian Sanitz: Hibernate 3 (ganztägiger Power-Workshop). JAX 2006, Wiesbaden, 08.05.2006
  • Stefan Roock, Henning Wolf: Aufwandsschätzung in agilen Projekten. Lehmanns Buchhandlung, Hamburg, Januar 2006.
  • Robert Beeger, Arno Haase, Stefan Roock: Hibernate 3. (ganztägiger Power-Workshop). W-JAX 2005, München, November 2005.
  • Bernd Schiffer, Stefan Roock: eXtreme Programming (Tutorial). ix-Konferenz, Köln, November 2005.
  • Jürgen Ahting, Stefan Roock: Der Kunde in agilen Projekten. ix-Konferenz, Köln, November 2005
  • Stefan Roock: Aufwandsschätzung in großen agilen Projekten. ix-Konferenz, Köln, November 2005.
  • Stefan Roock: Refactorings in großen Softwareprojekten, XP-Days 2004, Karlsruhe
  • Martin Lippert, Stefan Roock: Refactorings in großen Softwareprojekten, Java Forum Stuttgart 2004, 01.07.2004, Stuttgart.
  • Stefan Roock, Martin Lippert, Frank Westphal: Testing in the Extreme Programming World. (Full-Day Tutorial). ICS Test, Köln, http://www.icstest.com, 01.04.2003
  • Stefan Roock, Martin Lippert: Large Refactorings (Workshop). OT 2003, Cambridge, UK, http://www.ot2003.org, 2003
  • Stefan Roock: Requirements Engineering bei agilen Methoden. GI-Workshop „Requirements Engineering“, Ulm, http://www-lufgi3.informatik.rwth-aachen.de/GI/GI-FG2.1.6.html. 28.09.2002
  • Holger Breitling, Axel Schmolitzky, Stefan Roock: Extreme
    Programming (Half-Day Tutorial). Software Management Tagung, Hamburg, 06.11.2002
  • Holger Breitling, Petra Becker-Pechau, Stefan Roock: Agile Requirements Engineering (Full-Day Tutorial). RE 2002, Essen. 10.09.2002
  • Martin Lippert, Stefan Roock: Using and Adapting Extreme Programming (Full-Day Tutorial). ECOOP 2002, Malaga, Spanien, 11.06.2002
  • Martin Lippert, Stefan Roock: Extreme Programming in komplexen Projektsituatuionen (Full-Day Tutorial). OOP 2002, München. Januar 2002.
  • Stefan Roock: eXtreme Programming integrativ? GI-Workshop „Vorgehensmodelle“. 2001
  • Martin Lippert, Stefan Roock: Extreme Programming in Complex Project Settings (Half-Day Tutorial). ECOOP 2001, Budapest, Ungarn, Juni 2001
  • Stefan Roock: Anforderungsermittlung mit eXtreme Programming. GI-Workshop
    „Requirements Engineering“, 2001.
  • Stefan Roock, Henning Wolf: Framework-Entwicklung (Full-Day Tutorial). OOP
    2001, München, Januar 2001.
  • Stefan Roock: Object Oriented Design (3-Day Workshop). University
    of Roenneby, Schweden, März 2000.