Looking forward to the 2017 conference season

Only a relatively short blog post this week, but it’s something that’s kept me busy for a while..

As we’re slowly moving towards 2017, and as I’m starting to reflect on the shift I’ve been making in how I fill my days and make a living for the last year, I think this is a good time to take a look at the conferences I would like to attend and contribute to in 2017. Delivering talks, or even better, workshops (I’ll get to that at the end of this post), has earned its place as one of the activities that nowadays are part of my work(day/week) on a fairly regular basis. So, what conferences to attend next year?

The ‘definitely’ category
There are a couple of conferences I’ll definitely attend or contribute to, either because they’ve proven their value or simply because I’m already listed to deliver a talk or workshop there:

  • AutomationGuild (January) – I’ll deliver a talk on testing RESTful APIs using REST Assured at the first edition of this online conference completely dedicated to test automation.
  • Romania Testing Conference (May) – I was supposed to deliver a full-day workshop on REST Assured at the first edition of a spin-off conference of RTC, but unfortunately the organization had to postpone the event. They were extremely kind, however, to extend their invitation to the 2017 edition of the original event, which is held in Cluj in May, so I’m Romania bound by then! Very much looking forward to that, as you can imagine, especially after the wonderful experience of my first talk abroad.
  • TestWorksConf (October) – The first two editions have been awesome and I’m already eager to see what the Xebia guys can come up with for the third edition. Maybe I’ll be a contributor again, but if not, I’ll definitely be there as a delegate.
  • Test Automation Day (June) – The other big conference in the Netherlands dedicated to test automation, this has been a ‘must’ for me for the last four or five years, and I’ll highly likely be there again next year. Hopefully as a speaker this time, something that’s still on my to-do list.

The ‘hopefully’ category
There is one European conference outside of The Netherlands that I’d like to attend or contribute to one day. And why shouldn’t that day be in 2017?

  • Software Testing Forum (June) – I must admit that the location of this conference is what first put it on my radar. I love Italy, its culture, its language and not to forget its food and wine, but the event itself has started to get my attention as well over the last couple of years. I’ve recently been in touch with the organizing committee to see if I can apply to deliver a workshop there, so here’s to hoping that turns out positively!

The ‘I wish’ category
Some day, some day, I’d like to attend (or even better, speak at) one of these conferences:

  • StarCanada (October) – I love Canada, plus I’ve always wanted to attend one of the big Star* conferences, even if only once. Travel and lodging aren’t exactly cheap, though, plus it would cost me at least a whole week of not being home, which isn’t exactly ideal with small children, so this will probably not happen for the next couple of years.
  • WeTest (twice a year) – Pretty much the same reason as the previous one: I love New Zealand. Plus from what I’ve read on the web and social media, the organization and quality of this conference is of a pretty high level. Unfortunately, so is the amount of hours I’d have to spend on the plane, so this will probably not happen in 2017 either..

What else?
So, my dear readers, is there a conference I might have forgotten? Some hidden gem you definitely think I should attend or even apply to contribute to? I’d love to hear your thoughts!

Oh, and coming back to my preference on hosting workshops over delivering talks: I love to give talks on topics I care about, but from my experience, I love hosting workshops even more. The smaller crowd and longer time frame allows me to make better contact with and pay more attention to the attendees, and to get some interesting discussions going. This to me provides more value than the larger (yet somewhat more fleeting) exposure I get when delivering a talk.. Plus I think participants get more out of a workshop too because of the hands-on learning experience, as opposed to attending a talk and picking up a couple of interesting and thought-provoking nuggets of wisdom. So if you know of an interesting conference that does workshops too, please let me know!

Open sourcing my workshop on WireMock

For those of you that want to jump to the good stuff directly, you can find the workshop slides, exercises and everything related here.

A couple of weeks ago I was given the opportunity to deliver another workshop before TestNet, the Dutch software testing community, as part of their fall conference. Half a year ago, I did a similar workshop for their spring conference. That workshop was on RESTful API testing using REST Assured, which I decided to make open source a little later on. I’ve received some positive feedback on that, so why not do it again?

This time, the conference was centered around test automation. The subject of my workshop this time was closely related to the main theme: stubbing test environment dependencies using WireMock.

The title slide for my workshop

Delivery
As with most workshops that day, mine was set in a classroom-style space. I had somewhere between 15 and 20 participants, which I think is pretty much the ideal group size for a hands-on workshop that involves writing code. Not so many that I can’t give proper attention to all questions asked, but not a group so small you start to doubt whether the upfront investment has been worth it. As those of you who have prepared and delivered workshops before, you know that preparing them takes a lot of time. Spending all those hours and then only having two people turn up, one of whom is a coworker and the other one seems a little lost, is a bit of a bummer. Fortunately, this wasn’t the case for me, at least not this time..

The levels of experience of the participants (semi-pro tip: know your audience) ranged from people having some prior experience with stub and mock development to people that had never in their life written a single line of code before. An interesting mix, to say the least!

Workshop contents
As said, the main subject of the workshop was WireMock. I started out by telling people a little about the difficulties with regards to keeping test environments up and running and properly configured in these times of parallel development, Continuous Delivery and Testing and distributed applications. I then introduced WireMock, which I’ve done here on this site before as well. Then came four cycles of me presenting a WireMock feature, followed by exercises where the participants could try this feature out for themselves. I chose to highlight the following WireMock features in the workshop:

  • Writing a first, basic stub
  • Request matching options
  • Fault simulation
  • Creating stateful mocks

For each set of exercises, I prepared REST Assured tests that the participants could run to see if their stub implementation was correct. Call it test driven stub development if you like. This approach worked remarkably well, it definitely saved me a lot of time answering questions in the ‘is this correct?’ vein. Test green = stub good, test red = stub needs improvement. It doesn’t get any clearer than that.

Here’s an example of an exercise and the test that determines the correctness of the solution:

public void setupStubExercise101() {

	/************************************************
	 * Create a stub that listens at path
	 * /exercise101
	 * and responds to all GET requests with HTTP status code 200
	 ************************************************/
}

@Test
public void testExercise101() {
        
    wme.setupStubExercise101();
	         
    given().
    when().
        get("http://localhost:9876/exercise101").
    then().
        assertThat().
        statusCode(200);
}

How it turned out
Fine, I think. Time flew by and I didn’t experience any major faults, missing or incorrect slides or things like that. The experience I’m slowly gathering by doing this more often is starting to pay off, I think. I received almost exclusively positive feedback on the workshop, so I’m a happy guy. Also, everybody seemed to have learned at least something new and enjoyed the process too, no matter whether they had prior stubbing or even programming experience or not, and that has been the most important result of the morning to me. I’m looking forward to the next opportunity for delivering this workshop.

Having said that…
All workshop contents, that’s:

  • The complete set of slides
  • All workshop exercises and their answers
  • Matching REST Assured tests to verify the stubs created

can be found on my GitHub page. As with the previous workshop I’ve published in this manner, feel free to download, adapt, extend and then deliver the workshop to your liking. I look forward to hearing your experiences.

And in case you’re interested in following a WireMock workshop, but do not want to deliver this yourself, don’t hesitate to contact me. I’ll be happy to discuss options. Also, this workshop can easily be combined with a workshop on REST Assured for a full day of API testing and stubbing goodness.

Review: TestWorksConf 2016

Last week I attended the second edition of TestWorksConf, a conference on test automation and lots of other things technical and related to testing. After the first edition last year my expectations were pretty high, since Xebia (the organisers) had set a standard with their first edition that would not be easy to match or exceed.

The first and most important change was that after the one day conference last year, they decided to add an extra academy day the day before the actual conference. I’ve seen this a lot at international conferences (the STAR* conferences from TechWell, for example, have at least one day full of workshops), but to my knowledge this hadn’t really been done before here in the Netherlands, at least not at conferences revolving around testing. Since I made a promise to myself last year to try and be a contributor instead of ‘just’ an attendee, I submitted several proposals in response to the Call for Papers. Initially, only my lightning talk proposal made the cut, but a couple of weeks later I got a call to see if I also wanted to host a workshop. Sure!

An aerial overview of the TestWorksConf 2016 main area

Day 1: Academy Day
As I said before, the first day of TestWorksConf 2016 was dedicated to half-day workshops on a wide range of topics related to testing and test automation. On the agenda were workshops on exploratory testing, mobile test automation, test-driven development and lots of other stuff, including my own workshop on RESTful API testing using REST Assured. Those of you who’ve been reading my blog for some time might have read that I’ve delivered this workshop before, but I took some time to freshen things up, add some new content and exercises and most importantly add WireMock mocks that return the answers for the tests the participants need to write in the workshop. I didn’t want to be caught by surprise by a malfunctioning API under test a second time..

The Xebia guys took the effort (a LOT of effort!) to prepare a virtual image containing all the material for my workshop and the other workshops, so participants didn’t need to configure their own PC or download and install stuff before the workshop kicked off. They did a fantastic job of that, at least in my workshop everybody was able to get it to work and to truly participate. Those of you that have delivered similar workshops before know that this is no small feat!

I also had the luxury of two amazing sidekicks in the form of Erik from Xebia and Adam from Lyft. Where else do you get the opening keynote speaker for the conference day as an assistant in your workshop? Together, we delivered what I thought was a very smooth and very pleasant workshop. As far as I could tell everybody completed at least part of the exercises I prepared. The feedback I’ve received afterwards was pretty positive as well, and I think most people learned at least a little. All in all a great afternoon.

Note that I’ll update the open source REST Assured workshop to reflect the version I delivered at TestWorksConf somewhere in the next couple of weeks, so all of you that want to take a look can do so.

Day 2: Conference Day
The second day of TestWorksConf 2016 was conference day. Similar to last year’s edition, the agenda featured a mix of workshops and presentations. New to the mix were 10-minute lightning talks, one of which was to be delivered by me. After watching Adam deliver the opening keynote of the day, I spent most of the morning talking with the guys from SpectoLabs. This meant I missed some of the workshops and talks, but it was great meeting them in person (we’ve been in touch via email before) and talk service virtualization, Hoverfly and lots of other things.

Talking service virtualization with the guys from SpectoLabs

After lunch, I spent the early afternoon talking to some other old and new acquaintances, something I think conferences are an ideal setting for. This meant I again missed some talks, but I managed to catch (parts of) other talks and heard some interesting stuff. Around mid-afternoon it was time for my own lightning talk. Delivering that I learned something really important: they’re over before you know it. I managed to tell what I wanted to tell without rushing things, but I noticed that it takes me some time to get comfortable talking, especially when I’m speaking in English (both days were all in English because of the high number of visitors from abroad, by the way). I have no problem talking to other people in English, but when delivering a talk it takes me a little bit of time to ‘warm up’, so to speak. And the thing about lightning talks is that they’re short, so there really isn’t too much time to actually warm up. Lesson well learned, time to start working on that!

Having finished my TestWorksConf duties, it was time to relax a little and listen to some of the other lightning talks, chat some more and relax some more. By that time the conference day had come to an end as well, and after a quick drink it was time for me to return home.

Even though last year’s conference set a pretty high standard, the people at Xebia have managed to raise the expectations for next year even higher with what were two days of high quality content, lots of interesting people and conversations and not to forget a great venue and even better catering. I’m really curious to see what they’ll come up with for TestWorksConf 2017..