2013 What a year to be in the Testing community!

So me and my girlfriend were sat having a drink in a popular coffee bar when we got onto the subject of what we have both been up to this year. I was quick to call upon job changes and conferences trips but after giving it some more thought, this has been an incredible year in which I have achieved a lot!

Conferences
TestBash, the link is for TestBash 3 which you should all click and register for now! But this was indeed TestBash 2 and it was excellent. It was my first conference solely dedicated to Testing and it didn't disappoint. The whole set up was excellent, the pre & post conference meetups, the talks were engaging and thought provoking was a really enjoyable day. I also got to meet lots of cool and interesting people, but we will get to that later.

The Selenium conference was my second conference of the year, while Brighton is nice this was in Boston, USA which turns out to be a really nice city. The conference was my first taste of a really big conference with attendees from all over the world. I had the privilege of attending all three days of the conference including the workshops, got to meet some people I had been following for a while and had some excellent social nights, which you can read all about here.

Those two were more than enough, but it didn't end there on the conference front. Thanks to the help of the majority of your reading this post, I won a ticket to EuroSTAR 2013. The conference was truly great 4 solid days of learning from a variety of mediums. Workshops, talks and of course the chit chat in lobby and lets not forget the pubs and bars. I haven't wrote up anything on my blog for EuroSTAR however I did write something for EuroSTAR so hopefully that will be published by them soon.

Training
Rapid Software Testing (RST) was my first training of the year by James Bach just before TestBash in Brighton. This is truly a great three days, you will have information overload during the three days but the really learning from RST comes in the following weeks and months and is still continuing today. If you any budget for testing training, please attend RST over everything else you will not be disappointed.

Rapid Software Testing for Managers (RSTM) was my second training of the year by Michael Bolton also in Brighton, its that damned Rosie Sherry making all these courses so accessible! This was a 1 day version of the course, have to admit it was a little squeezed but so much material and again as with RST the learning doesn't stop once you leave the room it continues, you want to continue looking into what Michael said.

London Tester Gatherings Workshops (#LTGW2013) this was an excellent two days of workshops arranged Tony Bruce and Skillsmatter, I have never attended a Skillsmatter event before but was truly impressed by the whole event. Great speakers covering a variety of topics, can't wait for the next one.

Exploratory Workshops in Testing
We hosted the first Midlands Exploratory Workshop in Testing (#MEWT) this year, which was my first introduction to the format of an EWT. Was my first real talk, so was a real learning curve, I didn't get the format right as I had slides, you live and learn, slides for a EWT talk, what a newbie!

Speaking
I am still yet to do what I would class a a proper talk yet, however this year I did get my first taste of talking in front of people. It started with a 90 second lightning talk at TestBash, where I decided to run around in a circle, crazy I know, but it did happen you can watch it here, about 5 minutes in. A side from running around in a circle there was a message which you can read about here.

Someone told me once you have done one talk, the rest are easier. Turns out this was true, but not only easier, you want to do it, you don't have to pushed and encouraged to do it. So when the opportunity for lightning talks came up at Selenium conference I jumped at the opportunity. There is also a video of this which I have added the post about the selenium conference I linked earlier.

Also as mentioned I did the talk at MEWT, which I later repeated at the Sheffield Tester Gathering which was awesome.

Testing Meetups
I started hosting #NottsTest and more importantly am still hosting NottsTest. It's really great meeting local testers regularly and can't encourage everyone enough to attend a meetup if there is one near you or start hosting one if there isn't! I also attended several Sheffield Testing meetups and one London one during the LTGWs.

People
I have been introduced to a lot of testers this year and had the privilege of talking to a lot of great testers on twitter and skype, however I have also met a lot of testers this year.

It would take me a long time to list them all and I would certainly forget somebody so I am not going to try, however I want to say that getting out there and meeting people is so valuable, the initial learning and conversations are great but building those relationships means advice can be just an email / call away, of course this can be done solely online, but I find face to face over a beer is a lot better.

But I am going to name a few people though, as these people have been a real help and inspiration this year, Rosie Sherry for her encouragement in setting up NottsTest and her continued support throughout the year, especially when I need a new notepad! Huib Schoots for his continuous encouragement and support. Stephen Blower for his support in attending EuroSTAR but for also joining me in the meetup journey and also attending them, not to mentioned him arranging some excellent Skype sessions.

2014
As you are aware from a few posts back, 2014 is going to start with a change for me which I can't wait. But in general I want more of the same.

My main ambition for next year to get talking at more events, be it smaller events in the UK but also some of the larger conferences. I am already signed up to talk at Belgium Testing Days and will be submitting proposals over the next few weeks for other conferences.

So here's to 2013, was a great year on the testing front and a big hello to 2014!!! Hopefully I will get to see more of the people I have been fortunate to met already plus those I haven't had the privilege of meeting yet.

Seek the challenges

I was watching the latest series of MasterChef the professionals a few weeks back and found myself relating to the chefs, in that they have voluntary applied for this show to test their skills, face difficult challenges, be challenged by the best, be critiqued by their idols/inspiration and in some situations seek a confidence boast.

"Chef, this is a great plate of food, but....." 

If you hadn't sought such a challenge you would probably be a bit deflated at hearing "but" and indeed some of them were, however the finalist didn't, they dined on the feedback, both positive and negative then used this to improve their future dishes.

Accepting praise and receiving criticism isn't easy, but you will never know it all, your learning will never be done, so seeking some feedback is critical to your learning.

I have observed an increase in testers seeking such challenges, I am one of them, but I feel more should. I missed out on such an opportunity during RST with James Bach in March, it was of course the infamous hotseat. I was scared, I didn't want to embarrass myself in front of James, yet alone a room full of testers. I was naive, all I thought in that moment was "no way, not a chance, he will eat me alive, good luck to the poor person he choices". Someone did do the challenge, they did an excellent job, James was impressed not all because they gave some great answers, but because they evolved throughout the challenge, they took on board all the feedback during the challenge then later used it in the challenge, what an incredibly opportunity. I intend to do RST again in the future for numerous reasons, but one of them is to get my ass in that hotseat.

But what about day to day, where can you get a challenge without being at an RST course. We are blessed to have a really active community in the Software Testing world, they're opportunities everywhere!

You can ask for them, lots of people are willing to provide them. James Bach was offering free Skype challenge sessions, you will have to ask him if he still is, but could be worth checking out. Miagi-Do has a bunch of great testers willing to give you a challenge. I have seen Stephen Blower running a challenge recently, have a look at that. However you don't have to go directly to people, I saw one tester recently, @Testowanie, asking directly on twitter and receiving three almost instantly, it’s that easy, more importantly I saw them tweeting about how much they were enjoying it.

Twitter can also be used to seek challenges in a slightly different way too. You can follow testing hashtags, I have recently added a column to tweetdeck for #testing, as you can imagine not all are relevant you will also see some very obscure tweets, however you will also see opportunities for a challenge. Someone tweets something you don't agree with, reply, challenge them, you will in turn be challenged back. Got an opinion on something, state it in a tweet, people are likely to disagree, if they do they will challenge you by replying, great learning.

Blogging, start writing about your thoughts, it’s a very challenging especially if writing doesn't come easy to you like me, I personally find it difficult to dump my thoughts into words, probably why I draw a lot, but when I do blog, I feel so good after it. Things become clearer and more concise for doing it, but the great benefit of doing it on a public blog, is others will read it, some will agree and some will disagree, it could lead to someone questioning your opinions but for me that’s a bonus as the challenge was writing it in the first place.

Speaking, this is something I am still very new to, well I say new, I haven't done one longer than 5 minutes, however I will be doing a 30 min talk at Belgium Testing Days in March, I can't wait. I see speaking as the next level up from blogging, it’s a big leap of course, but you are just presenting your opinions in a different medium. The big difference comes in that you are in the same room as your audience, which makes it harder, but also appealing.

Blogging and speaking aren't easy, it’s hard to openly share your thoughts and opinions, the back thought of being ridiculed, mocked or told you haven't got a clue will always be there, but it doesn't happen often in our community, people want to help you but more importantly people want to hear your thoughts and opinions.

I strongly encourage you all to seek challenges in your career, be it an actual testing challenge or a personal challenge to share your experiences and knowledge, you will learn so much about yourself and your confidence and skills will rocket.

There is a common joke about who tests the tests, well who tests the testers? The answer is you do, I do we all do, if you allow yourself to be tested.

A Big Change

Its with both sadness and excitement that I write this post.
These emotions are caused by a change, a job change, a life change but a change with mixed emotions.

Change

I haven't been at my current role for very long, only 6 months to be exact, but in those months I have had the privilege of working with some really smart people. The calibre of staff there is really high, I have learnt so much about software development in such a short time, which is down to them and the environment that has been shaped and allowed to evolve there. The environment really is something special, from the hardware and tools at your disposal, the relaxed but focused approach to work, the free fruit to the variety of sounds flowing out of the Sonos throughout the week.

Those are all great things, really great, but the real culture of Esendex is the company wide desire to continuously improve, it's visible from all the employees, but unlike some places I have worked, it also flows throughout the senior management team and board, because they are also employees, they sit with everyone, they talk to everyone they feel and encourage this mentality. More importantly they support it, training and an annual conference trip are provided, there is dojo time for the development team, monthly show and tells, lightning talks, your encouraged to get involved with the local and wider community, with local schools and universities, they really get what this support means to the employee. Yes of course it will eventually benefit the company, but I genuinely believe that isn't why they do it.

Esendex were recently voted "Ones to Watch" in the Tech Track by The Times, as a departing employee I will certainly be doing this, but not just Esendex I will be watching all the employees as well, because as I have already mentioned it's a really smart bunch of people with a real team feel and with the current push to share and gain at Esendex there will be some excellent posts flowing from Esendex in the future. I recommend you all follow @EsendexDev and wait for the gold (no pressure everyone :D ).

You're probably thinking 'why is he leaving? It sounds great!' It is indeed great and I honestly believe I could have real influence at Esendex and help them maintain and grow their culture and in turn the business. I would strongly recommend anyone looking for a challenging but rewarding place to work in Nottingham to get in touch with Esendex, you won't be disappointed. Esendex will be looking to fill my role, so if you're interested please do get in touch.

So why I am leaving? The great thing about life it is always changing, personal circumstances change, goals and ambitions change and sometimes you just get 'that feeling'. Sometimes you control this change, sometimes your just a passenger, its sometimes for good, sometimes not, but I believe that it's always good if you seek it. There has been a few personal changes recently that have led me to change my career plan. However, in being forced to think about such changes a new path and new goals have been created that I am really excited about.

Future

So the future is that I am setting up independently, a new long term plan is being created, in the short term I am going to be contracting.

Contracting can be a very rewarding move, (£$€ is what most of you are thinking right now) let's not bypass it, it's a factor, for some it's the deciding factor, it has played a part in my decision for one reason or another, but I am more interested in what the money allows me to do.

Obviously, life will hopefully be more comfortable, potentially bringing that housing ladder a step closer. Perhaps enjoy some of the nicer things in life, more travelling, nicer clothes, a car. But I haven't been earning poorly, so I don't expect much to change here.

Conferences, I have had the privilege this year of attending TestBash, Selenium Conference and EuroSTAR and I thank my previous employers for that, well a side from EuroSTAR... I thank my awesome video creating skills and the community for that one!
I love attending conferences, but I don't think it's the conferences I love, yes I do enjoy listening to talks and asking questions if there is an opportunity to do so, it's meeting people that I love. The conversations in the breakout areas, over lunch or in most of my circumstances the pub/bar are invaluable, you learn so much more there, but what you also do (depth breath for the sloppy part) is plant the seeds of future friendships, so the learning continues post conference.

Got carried away there, but I intend to use the fact that I will hopefully be earning more to support my desire to attend conferences, both as an attendee and increasingly over the coming years as a speaker.

Training, if you're not a "certification chaser" then there are some excellent training courses out there. RST, PSL, BBST and endless smaller workshops by individuals and awesome groups like SkillsMatter. These obviously cost money, but they also take time, but I am not talking about the time spent at the training, I am referring to the time taken to digest everyone you learn. The time agreeing, the time spent questioning your current believes with the material and the time spent discussing/debating with the trainer post the training.
So I certainly will be attending more training, but also this will allow me time to really studying what's in front of me, yes I want be earning money during this time, but it will be incredibly valuable to me.

Meetups, The Nottingham meetup #NottsTest isn't going anywhere as I will still be based in Nottingham; however, I could be working anywhere, if there isn't one there, I will make one. If there is one, I will attend it. Meetups really are great, get attending and hosting them!

Working Life, I have struggled to write this without making myself sound like I am easily bored or don't appreciate the people I work with or have. But one of the things I am looking forward to, is working with a whole variety of people, some where opinions align but I imagine a large number where they don't, this will indeed be challenging, but a great learning curve.

Another benefit I foresee is new technologies, majority of my experience is Web based and C#, this isn't a bad thing as it's very popular, but you can find yourself seeking such roles because you can do it and probably demand a premium for it. I can't imagine I will have the opportunity to pick roles on my technology skills, so it will be in my benefit but also personal interest to learn more language/stacks, but there will also be an increased likelihood that I will end up contracting at companies using other languages and being able to learn there.

Challenge

I certainly don't believe that any of the above is going to come easy, its going to be extremely difficult. There are going to be hard times and probably times when I will regret my decision. But needs must and to be honest I like difficult, I like challenges and I like new, so I will be giving my all to achieve all those things and more.

Apologies for the long post, but hopefully it came across that this wasn't an easy decision, but now it's made I intend to give it my all. Hopefully this will lead to to you all seeing more of me, meeting me and you never know working together.

Thanks to Simon Knight, Tony Bruce, Huib Schoots, Vernon Richards and Stephen Blower for all their advice and of course to Esendex for being so understanding.

Page Factory InitElements In Constructor

If you take advantage of the PageFactory support in the Selenium project then you may be continuously writing "PageFactory.InitElements(driver, LoginPage)" where ever you are initialising a new page object within your checks, it can get very repetitive depending on your application under test.

So, here is an easier way to do it.

You can initialise the elements within the constructor of the PageObject (PO) by taking advantage of the "this" keyword to refer to the current class instance, like so:



This will stop you repeating yourself in your checks and also remove the need for your checks to know about the driver, which I intend to write about in the coming weeks.

New Window With WebDriver

A feature of a specific web application is that you can set the account context for the page you are currently viewing, however this is for that window only and those settings aren't saved to the server.

Now if you are new to WebDriver you may not be aware that WebDriver doesn't have a defined method of opening a new window within the same session, it does support multi windows though, just no way of telling it to open you a new window. Note that WebDriver doesn't support tabbed windows.

So I had a problem, I really wanted to write a check for this scenario, where I open a new window change the account context, navigate back to the original window and ensure that the original account context is still displayed. But there is a way to do it!

If like me you will love keyboard short cuts, and there is one to open a link in a new window, not tab, window. This is Shift+Left Click (Works in IE, FF and Chrome), which lead me to think, can I achieve this in WebDriver, well I knew I could send the instruction but would the result be what I desired.

Turns out it was! So if you wish to do some tests when you require a new window within the same session you can achieve it using the following approach, using the "Actions" class from the Selenium project.



If your page doesn't have any clickable links, perhaps you could add one as an hidden element, and try sending the command to that, I haven't tried this but it could work.

Few things to note once you start using multiple windows:

  • If you operate in framework where you use the same session, to save time opening and closing the browser all the time, then ensure to close both windows.
  • If you close the second window, you will still need to tell WebDriver to switch the context to the only open window.