Oct 06 2009

Putting Selenium in the right place

Published by gojko under news

Although Selenium is an essential trace element, it is toxic if taken in excess. That is what Wikipedia has to say on the chemical element Selenium, but pretty much sums up my feelings about the web testing tool of the same name as well. I like very much how easy it is to implement web tests with Selenium, but I’ve seen so many teams shoot themselves in the foot by misusing it and wasting a ton of time on writing and executing tests that simply got thrown away on the end. The Page Object pattern, popularised by Simon Stewart with WebDriver, seems to be the universally accepted best practice to manage UI tests efficiently and the preferred way to implement Selenium tests. However, at the recent CITCON Europe conference in Paris, Antony Marcano spoke against this and offered an alternative. Continue Reading »

3 responses so far

Sep 28 2009

Saving the game in enterprise software

Published by gojko under articles

The most important take-away idea from CITCON Europe this year for me was probably building ‘save game’ functionality as an integral feature in software systems.

Antony Marcano talked about this, not as part of the official programme but over beers which is another example of how informal chatting at conferences is often more valuable than the schedule. He mentioned how it is common for games to automatically save the complete state at checkpoints. This allows us to easily go back to the last saved position and continue playing if our character gets killed for whatever reason. So if something really bad happens after 10 hours of playing, you don’t have to do it all over again.

Functionality similar to that could help immensely with exploratory testing in software. When we find an issue, we could easily go back to the last checkpoint and reproduce it and also use that same saved game later to check if the problem was fixed. This could also be used if a customer encounters a problem in production to make bug reports a lot more complete and reliable.

Implementing this feature is by no means a trivial task and might be nearly impossible to retrofit into existing systems. The reason why gaming companies can do it is that they consider saving as an integral feature of their systems from start. I have yet to try this but my gut feel is that if a system is built with this in mind, the actual overhead of doing it is minimal. Modern games have states as complicated as lots of enterprise systems, with tons of actors, their states and event information at any time. Yet they manage to load it up in a few seconds and continue from the saved state. By designing for that up front, ensuring that all actors can be persisted and loaded and that all state is easily extractable, we should be able to do the same in enterprise software as well.

5 responses so far

Sep 24 2009

Top 10 reasons why teams fail with Acceptance Testing

Published by gojko under articles,presentations

I facilitated an openspace session on acceptance testing and collaboration between business people, developers and testers at CITCON Europe last week. We started with a list of five common reasons why I’ve seen teams fail with acceptance testing but added five more during the discussion, so here’s an expanded top 10 list:

Continue Reading »

9 responses so far

Sep 21 2009

Mocks are not about isolation, but about responsibilities

Published by gojko under articles

Last week at CITCON Europe Steve Freeman organised a session on mock objects focusing on the original ideas and what mock objects should be used for. Freeman started by disagreeing with the established view of mock objects as isolators for unit testing, advising developers to use mocks for object design and specifying responsibilities. Continue Reading »

8 responses so far

Sep 19 2009

CITCON Europe 09

Published by gojko under news

I just came back from CITCON Europe 09. It was a great experience and I thoroughly enjoyed it. I liked very much the fact that it was relatively small and very informal, with around 120 participants and openspace planning. This allowed me to put faces on a lot of blog authors and twitter users I follow and catch up with some great folks from the community.

It was very encouraging to see the rising interest in agile acceptance testing, and we ended up almost running a full track on the topic with 4 presentations on lots of different aspects. I learned about Thoughtworks Twist from Andy Yates and narrative testing ideas from Antony Marcano and Andy Palmer. A key take-away from the conference for me was probably Marcano’s idea of “saving the game”, building systems so that you can easily store a snapshot of the current state and go back to that later. I can see how this can significantly aid in all kinds of testing, including acceptance and exploratory, so I have to look for ways to implement that in my future projects. Exchanging experiences of how people do acceptance testing was also very valuable and, judging by the comments at the closing session, it looks as if quite a few people went away with some new ideas around it.

A special treat for me was being able to pick Steve Freeman’s brains on mock objects, learn what the original idea behind that was and what he thought were his biggest mistakes in using mock objects.

I also got to speak with JetBrains developers on optimising build dependencies in TeamCity, and from that I went away with the idea to convert dependencies from build triggers to snapshots to avoid diamond build issues and optimise the cycle. I’m a bit unconvinced about that solving my problem but I’ll sure give it a try.

In retrospect, it was time well spent. The only negative remark is that classrooms didn’t really work for me as a way to organise openspace discussion. Lucky that we usurped the big room with chairs set in a circle for two acceptance testing sessions. Thanks very much to everyone who participated in organising the conference and I hope to see you next time.

I took lots of notes at the conference and will be cleaning that up and posting articles here next week, so subscribe to my RSS feed to get notified about that.

No responses yet