Bringing external content in-house…

Being an active member of the test community, I sometimes don’t appreciate how difficult it must be for other, not as involved testers, to find great resources outside of their workplaces.

I have the benefit of knowing or being aware of certain prominent testers who write about topics or have a specialist area that they tend to blog/talk about – it’s easy for me to say “he’s blogged about that lately” or “she’s spoken at a conference about that topic recently” and straight away I have an entrance point, so that I can expand on an idea I may have and go from there to move things forward.

I’m probably one of the only people left in the test team at NVM that is always on Twitter or watching conference talks etc. People learn in different ways and subscribe to other channels to get their testing information – I get that, it’s a personal learning and development thing. What I wanted to do is expose/share some of the great resources that I love, with the test team, in a not so “in your face” way. I didn’t want to push anything on other people, that they didn’t want to read or watch so I set up something that they could tap into or look at if they have some spare time.

So much to choose from…Where do I start?

There really is so much content out there, that I could absolutely flood my team with lots of blogs, articles and videos but I don’t think that would be useful and could potentially have the opposite effect and scare people away. I started with 2 resources that pack a lot of items in a couple of links.

I saw this tweet from Katrina Clokie where she mentioned one of the resources I had in mind, I love that see was recommending people to follow the Testing Curator!! I’ve followed this account for a while, as it really is something special – well worth subscribing too!! Great job Matt!

 

katrina_tweet
Go and follow @testingcurator

 

 

Making the content easily accessible…

I’ve blogged in the past about using Hipchat at NVM, although some people may prefer Slack, this is fine for us and suits our current needs. Hipchat has an API, like many other platforms, that allows you to send messages into “rooms”. Our Test Team has its own room where we can exchange test ideas, test improvements, new things that we’re learning etc. This seemed like the perfect place for these new testing resource feeds. As well as the Testing Curator feed, I’ve added Simon Schrijver‘s 5 blogs feed. This is excellent and provides the team with 5 new blogs to read each day! Thank you so much for providing this service!! I love that the blogs are not only about testing, it’s a great mix!

 

hipchat
Hipchat messages

 

 

A Helping hand…

Although I’m loving coding little applications at the moment and I could have attempted to do this from scratch but…I thought “What’s the point?!” I would have either epically failed or it would have taken me too long to achieve. I’m a huge fan of integration services like Zapier and IFTTT – they are just really simple to set up and so useful for what I wanted to do. I’ve chosen Zapier for my integrations, I love that it has really intuitive UI and you can test each step as you go, so you can clearly see what’s happening.

This is an example of the 5 blogs “Zap” that I have created, It’s triggered by a new item on the RSS feed and then sends a configurable (see image below) message to the Hipchat room. Simples. The task runs every 15mins, looking for changes – there are different account plans that you can have on Zapier but the free plan is sufficient for what I have it set up to do.

 

zapier_hipchat_integration
5 blogs Zap

 

 

message_configuration_
Configuring the Hipchat message

 

So that’s it…Something that is extremely simple to set up and has hopefully provided my fellow testers with additional testing knowledge. I’m not forcing people to click on the links and read the blogs, it’s all there if they want to take a look.

These integrations can be set up on Slack, etc. in exactly the same way so if you would like to provide your team with some excellent content I’d recommend taking a look. Once it’s set up, it’s going to just run in the background.

I would love to hear if anyone has a similar sort of thing set up already and how it went down with the rest of your team.

Cheers!

Hipchat Custom Commands – Continually Improving our processes!

At NewVoiceMedia, like many companies, we hold Hackathons each quarter. This is a chance for everyone (not just developers) to create something that will be of benefit to our customers or help improve an internal process of the business. These small projects could be a proof of concept or a small feature that is ready to go straight into the Live product.

In the past, I’ve helped out on tiny projects with a couple of developers but for the last few hackathons, I’ve used it as a chance to improve my coding skills and create tools to help out other people. There has been a process that has bugged me for a while and we do the task every week, so I thought that it was a perfect place for improvement. We manually create/construct a URL that displays the release notes for our service, based on the “start” and “end” commit numbers, the “start” number being our deployed production version.  Like I said, this is a weekly task as that’s our current release frequency. I knew there was a better way and more efficient way to get this done. The URL in the images below is an internally used NVM address so it, won’t work anywhere outside of our Company.

A while back I read a great post by Neil Studd, He created a bot that was accessed via a custom slash command within the Slack platform. I thought it was impressive and it was something that I wanted to try to replicate myself! So I had a slight problem at the very beginning, we don’t use Slack at NVM (not my choice), we use Hipchat instead. I needed to figure out how I could get a custom slash command to work with that platform, thankfully, they do have their own version of this feature.

Similar to Neil’s method, I wanted to use Heroku to host my application, I mainly wanted to try this out because it was unfamiliar to me and it was a great opportunity to learn something new!!

Creating an MVP

I’ve recently been dabbling in NodeJS and creating little test tools that I use on my team, we also have a production API that uses this language so I’m quite comfortable in that space at the moment. For what I wanted to create, it was a perfect choice. I created a tiny Node Express app with a single POST “/notes” route, this was going to be the entry point from Hipchat. Once I got those two things hooked up and talking to each other I was sorted – because I’m a noob and couldn’t understand the Hipchat API Documentation fully, it took me bloody ages to figure out what was being sent from Hipchat and how I could grab that data to then start the next phase.

I found a video that really saved my skin and allowed me to move forward, the demo video used a tool called Requestbin that gives you a URL for Hipchat to POST the ongoing request. The Requestbin site then just displays every single piece of information in the request!! I was in business and I could navigate through the JSON, in the body of the request to get what I required.

Now that I had what I needed, I was able to use some Node modules to do most of the donkey work and get a working solution up and running quite quickly – At this point it was quite basic and very buggy, I think I broke it on the second request that I made to the application. I wasn’t actually thinking like a tester during the coding part, I was just trying to get something working. I actually don’t know why I didn’t plan and approach this like I would a normal project but you know, you live and learn.

 

mvp
My MVP

 

Bringing a tester onboard….

I needed to put my tester hat on and actually, think how I would use this application from a consumers point of view. I made a short bullet point list of possible ways that I can think that someone might use the tool or possible edge cases that I can mitigate against.

  • Entry point
    • /notes (I wanted this to be the only entry point)
    • /NOTES (I didn’t want this to return anything)
    • /NoTeS (I didn’t want this to return anything)
  • What could the user enter?
    • /notes valid number (/notes 12345)
    • /notes without a number
    • /notes number of digits (1, 2, many)
    • /notes and repeatedly entered 5 digit strings (/notes 12345 12345 12345)
    • /notes position in the sentence (“some words /notes 12345”)
  • Is the returned URL in the message a hyperlink? (Hipchat API auto picks up links, if in the correct message type “text/HTML”)
  • How do the other built-in slash commands behave (/code etc.)
  • What happens if the external GET resource is not available or returns the wrong data?

These are some of the questions that I was asking myself, I had many more but this is the general gist of the ideas in my head. The whole time that I was making changes to the code and then testing the outcomes I was thinking that I wanted to add something that would let me know what was going on behind the scenes of the application when the users were making requests. We recently had Richard Bradshaw come into our company to deliver his awesome Lego automation workshop, in this he mentioned “Giving your automation a voice” – This wasn’t test automation but I did want to know what was going on, it was only going to tell me if I actually told it too. I added log messages to the application at key points so that I could track what was actually happening rather than just seeing an output in a Hipchat room.

 

app_logging
Giving It A Voice

 

Another approach I was thinking about while testing was Ben Simo‘s FAILURE mnemonic if users were entering the wrong information, I wasn’t telling them (oops), It just didn’t return anything to the Hipchat room. That didn’t sit right with me and I used Ben’s heuristic to guide me, I wanted to give the users some feedback and let them know that “Something wasn’t quite right” with the data that they had inputted. As I could tell which Hipchat user sent the request, I grabbed that information from the JSON and made my returned messages (both good and bad) a bit more “friendly”. Manners don’t cost anything, as my Mum used to tell me.

 

release_notes_helper
Making It Friendly

 

error_handling
Appropriate Error Messages

 

Finding bugs in the wild…

I wanted to add an additional feature for users to specify a different environment when making the request (e.g. “/notes 12345 cloud4“), I initially defaulted the response to our main production node when users entered “/notes 12345“, as this matches the current behavior of the main internal release notes creation tool. I wanted to be a little bit more flexible, I had the opportunity to add extra functionality and let the users decide what the returned data was going to be. I added the code and rushed through the change, “It worked” so I left it and communicated out the new feature, giving an example of “exactly” how this worked. Great success! Maybe not…

 

cloud_request
Location Matching Feature

 

I’ve used Regular Expression in a number of places to capture certain things, I’m new to using Regex so I had a little help from the Regex101 site and also practised some of the Regex in the Chrome Dev Tools console (This was super useful!!). It turned out that my Regexfu is not so good and I omitted the “i” from the expression. meaning it was case sensitive so if someone entered “cloud4” it would return what they thought it would but “Cloud4” and “CLOUD4” wouldn’t return the same thing. From a users point of view, you would still get back a valid URL as it defaulted to a certain value if you didn’t enter exactly “cloud4”. I’ll get back to this issue.

Logging and Monitoring…

Using Heroku, I could access their built-in raw logs and could see what was happening while people started using the application. These were great and showed me what I wanted to see, the only trouble was, I had to go on to the Heroku site each time. At NVM we use Papertrail and I know that I could bolt on this log management tool to my Heroku app and feed the log messages into there. Great, I know this app and the search syntax so I was sorted….not quite, because we use in at NVM it annoyed me that I had to login and logout each time I want to see either the work logs or the ones that my app was producing.

Up stepped LogDNA – it was another option from the Heroku list, so I gave it a whirl. Luckily, the search syntax was very similar to Papertrail and it was extremely easy to get it set up in the way I wanted. It also had a feature where you can set up a notification on certain searches so that you get emailed when things start going wrong or just have something that lets you know who is using the app.

 

email_notification
Email Notification

 

Coming back to the Regex bug that I found earlier, I basically only saw this because of the logging that I had in place. I could see that a user had made a request, that should have failed (in my mind) but it returned the default value. I was able to spot the issue, fix it, test it and then deploy it again in super quick time without it impacting the users. Testability win!

Distribution…

I’ve now added this app to multiple Hipchat rooms and I’ve seen the usage steadily increase, which make it all worthwhile. I’ve also created an internal wiki page so that people can add it to any Hipchat room and it also explains some basic instructions with examples.

As well as doing this internally, I’ve knocked up a very simple bare-bones node app and placed this in a Github repository for anyone to use/rip apart etc.

You can grab the code here: https://github.com/DannyDainton/node-hipchatbot-basic

That was an epic read but hopefully, it makes sense and encourages other people to give things a go and try and improve a process that annoys you too!

Cheers!!

Relating military patrol planning and techniques to testing

I’m always looking for ways to relate the testing craft to certain things that I’ve done in the past, this is mainly due to basically stumbling into the testing world from somewhere completely random like the British Army Infantry. These two worlds are polar opposites and so different in so many ways….but are they?!

I’ve had a idea in my mind for a while now about writing a series of posts on how I think these two things relate – I did a little research into the topic to see if anyone else had attempted to make this connection and I came across this talk by Benjamin Yaroch. He gave an “Emerging Topics” talk at CAST back in 2011, entitled “Applying Military Concepts to Testing to Help Cope With Change and be a Better Leader” – It’s a great talk and well worth watching, if you have not done so already. His research was gained in part from his Brother, who was in the Air Force for a number of years and also from reading various Military documentation.

He started to look into patrols:

  • How they worked?
  • What they did when going into an area?
  • How they found information?
Ben found that patrols in general didn’t have as many touching points as the leadership aspects within the Military and favoured the latter as the theme of his talk.
 
I wanted to approach this topic from a slightly different angle, from someone who has been “on the ground” and been part of the planning phase of a patrol. I want to take you on a journey and let you view the surrounding world through my eyes, as me and my team patrol through an area of Afghanistan. I want to (hopefully) explain some of these points as we conduct our patrol and how they relate (in my opinion) to testing:
 
  • Pre planing
  • Equipment Preparation
  • Area brief
  • Threat Brief and Current Vulnerabilities
  • Initial Contact/Full Contact Report
  • Outside Resources Available 
  • Routes
  • Actions on
  • Withdrawal
  • Regular HQ Updates
  • Debrief
This is just a few from my ever growing list of Patrol considerations, I wanted to give you a taster of what I had in mind for the upcoming posts.
 
This is going to come together over the course of this year and I will have something new out at least every few weeks as well as other ideas for posts that come to my mind. I hope this will be of interest to at least one person, if not, it will be good writing practice for myself and give me a goal to achieve this year.
 
Look forward to the first of my many posts on this subject…

The week has flown by….

If you didn’t know already (may have mentioned it a few times….) I started a new job this week….I hate it when I say “job” to describe what I’m doing, that just sounds dull and boring – It’s so much more than that!! I’ve been very lucky to be given the opportunity to work with not only Rob Lambert but also his awesomely talented team at Newvoicemedia.

Starting at a new place can be a sometimes nerve-racking affair – the fear of the unknown I guess. From the first second I stepped foot in the office I knew this was where I wanted to be, I don’t mean the first day of work…I knew this from the tour of the offices that Rob gave me just before my initial interview. You know that feeling when it just feels right. My daily journey time is not great (just under 2 hrs each way in the car) but none of that even matters when you are driving to a place like NVM.

This week I’ve been introduced to so many new and wonderful things I’ll be working with and new faces and names to remember that it has been a little bit overwhelming at times but I’m never too far away from people who are willing to help me out and that’s what I love most about being here. I have a Test Buddy/Mentor…well two actually (greedy), they’re there to help me out whenever I need it which is awesome, I will look forward to our daily chats and weekly get together.

It’s going to be a HUGE learning curve, getting to grips with the products and the various different applications I’ll be using daily but I’m looking forward to each and every day being a learning day.

I’m going to get more in the habit of blogging about my experiences on a regular basis, that’s the reason why I started writing in the first place – I went through a dry spell for a while but one of my main goals is to change that this year.

This post would be epic if I wrote about every new thing I’ve seen and done this week so I’m going to spare you all this time and keep it short. I’ve already made a mental note of all the topics I’d like to cover so watch this space for future posts.

ISTQB or not to be……that is the multiple choice question

Image

I had a really amazing idea (well i thought so at least) about this post….Catchy Heading, Comparisons with the Foundation Course and the UK Driving Theory Test, Just one big memory game, Minimal study time needed if you had half a brain, a test that you can get 13 out of 40 questions wrong and still pass is not a real test blah blah blah…..

After doing a really small amount of research – and i mean a small amount! Basically the time it took me to eat a Sausage and Egg Mcmuffin with my left hand whilst abusing Maccy Ds free WiFi on my IPhone in my non greasy muffin hand….this wasn’t my first ever visit to the Golden Arches either so it was even quicker that most Fast Food eaters. As well as this excellent piece of Multi Tasking, i also asked a couple of very experienced Testers who i respect greatly about their opinions of the ISTQB Foundation Exam….as soon as i saw the subject line of one of the Email responses was “istqzzzzzzzzzzzz” i laughed my back off and i knew that i was in for a great answer or a truly epic rant! I wasn’t disappointed.

I don’t want to sit here and write about how bad the “test” is or how much value it holds or doesn’t hold within the testing community – this has been absolutely flogged to death for a few years now from what i can see and i don’t really want to bring up and dwell on the same points that others have done already but what i would like to explain, if you very good people would allow me the time to do so….is why i took the Exam.

Working within the Defence Industry I’m surround by folks that value external career courses and certificates very highly and can’t wait to update the letters after their names on a shiny new set of Business cards and on Email Signatures. Fair play, Congrats and jolly well done that Man/Lady if you have done every course under the sun and you feel the need to display half the alphabet after your surname but I just don’t think that it comes across very well and especially not when most of them are pointless. As I work for a consultant firm, the information written on my CV is very important to potential defence clients and if it’s filled with lovely fluffy things like “ISTQB Certified Tester” then this will unfortunately make me more employable and they would want to hire me or at least want to speak to me.

If you have read my previous blog posts you know that I’ve not been doing this for very long but even i know that the ISTQB stuff is….how do i put this….pump! I’m not speaking for the Advanced levels here just the Foundation level, I absolutely love testing and everything about it and for that reason i kinda loved reading a “Software Testing” book for an hour or so and then answering multiple choice questions, again on a subject i love and then passing the test. That part of the process of getting the certificate i really enjoyed because i was reading about a subject I’m really enthusiastic about regardless of the outdated thinking behind the material….When the lovely lady behind the reception of the exam centre said i had passed i think i just said “Oh right… great” without any emotion on my face what so ever….pure dead pan expression, for someone who really loves testing and wants to excel in this craft to have no emotion on being told i have just passed a software testing exam – then i know it’s a pretty worthless thing to have and would i really want to advertise the fact that i have it!?!

There is one important thing that this experience has made me do though…..it’s made me look for better more worthwhile courses and exams that i would love to do, ones that are highly regarded in the community and thoroughly recommended by testers that i respect and testers that I’m inspired by everyday and that have helped me along my journey so far!

My journey continues…..

 

 

Stand back….I’m ready to explode!!

Image

Continuing my new life and journey along the bumpy software testing road I’m in the awkward position of wanting to know everything about the craft…right now!! I mean everything!! I’ve always been the same, I go through stages in my life where I get fully into something – let me explain this a tiny bit so you don’t lose interest and you actually have a clue where my point is going….

I love books and always have done, there’s something about them that makes people (in my eyes anyway) seem more interesting and intellectual – let’s face it knowledge is power and it frightens some people (umm…me). When I see and meet folks who I know, that read a lot and tend to use big elaborate words for very simple things and chuck them into everyday life to make people think “Wow…you’re like, super smart and stuff” it impresses me and bugs me at the same time. My current all-time favourite at the moment but this is subject to change through the course of my journey is Librocubicularist: one who reads in bed – when I actually heard this I thought two things: 1) Eh?! 2) Why have you just given me a Trivial Pursuit answer? Saying you like to read in bed would have saved so much time and confusion.  Where was I, went off on a tangent then…oh yeah, going through obsessive stages…..I went through a “French Foreign Legion” stage a few years back (don’t ask) – it started with me reading an article, to then buying one book, to then buying several more books and researching it more and more – Amazon.com and myself were best mates at this point! I was living in a small barrack room on an Army camp at the time and was running out of space for my books so I popped down to IKEA and bought a bookcase/shelf (it was a bloody bargain at £15). I filled the shelves with these books – Slightly OCD’d of course…Height and Alphabetical order, it would have just annoyed me every time I looked at them if I didn’t arrange them. Fellow soldiers would could into my room, admire my books and ask questions….I would tend to only give them answers and information that I was comfortable with giving so it sounded like I knew what I was talking about but did I really??!

I’m in the same sort of situation now with learning and building up Software Testing knowledge – I know this is not a “stage” of any kind what so ever, I’ve fallen big time for this craft and every day it keeps me hooked and wanting more but I’ve started to fall into the old routine of amassing a shed loads of stuff (Books, Articles, Lists of things I’d like to research, Ever growing number of Blogs I want to read, etc.) I’ve read so much information in a short time that my brain is ready to explode – I’m obsessed with wanting to know everything but I feel like I need to know it right now!! All in one day!! If I don’t, I will continue to be left behind and not current and up to date with the latest information. This is me – I’d set out with a goal of reading up on one thing but I’d see something that relates to it somehow and then get distracted by this and read about that other thing and so on and so on. I’m finding it difficult to prioritize and because I’m not doing this, I know I’m not truly taking in what I’m reading and taking the time to think about it and question it, so I understand the information fully. Several occasions I have been asked a question and I know for a fact that I’ve read about it somewhere but I get tongue tied and have a mini brain fart and nothing that constitutes English actually comes out of my mouth. My thirst for knowledge is huge but I’m also coming to realization that I need to take that “condor moment” – It’s an old Army saying about taking time to pause and reflect before going into action. I need to take in and process this new information so that I’m not just ploughing through endless books thinking that I know more because I’m doing this so frequently.

That’s me done…give yourself a pat on the back for hanging on in there till the end, you can get back to your lives now > Thanks for reading!!

The journey continues……

Test Bash 2.0 – From the Eyes, Ears and Brain of me…

I first heard about this event from my Boss/Mentor months ago and he went through our company chain to get funding for us both but was unsuccessful – to say I was miffed is an understatement! A couple of months passed and it was getting closer to the big event and every day I would see a new post on Twitter and the STC from someone explaining their delight at attending and how much they were looking forward to meeting all the great software testers that were going to be there. I was truly gutted…and posted about how gutted I was at this happening and that I wouldn’t be part of it…Then all of a sudden I was handed a life line from the one and only Rosie Sherry!!

Image
Once a calmed down a bit (my reaction was similar to a small girl hearing that she’ll be a VIP at a One Direction concert)  I composed myself and asked what I would need to do – basically, I would have done anything (nearly everything) to be at Test Bash but I didn’t want to play that hand straight away. Turns out all I had to do was be my usual friendly self and register the lovely event goers in and point them in the right directions – easy! Where’s the catch I thought…there really wasn’t one, apart from it being a long old day and a late drive back to Bristol, it was all good in my eyes!

Managed to get the afternoon off work on the Thursday so that I could be there for the Pre Test Bash meet up, I thought this would be an ideal opportunity to meet some of the people that had travelled down early for this pre event before the big day on the Friday. I wasn’t disappointed! I arrived at The Eagle pub, nice and early to meet up with Rosie…who it turned out was running late anyway so I shouldn’t have busted a gut to get across to the pub so quickly (Meh). Anyhoo, as I propped up the bar I saw some people I thought were “testers” frequenting a table and I went over and introduced myself, as you do. These were not testers…or did they ever know what a tester actually does…Awkward!! I did what can only be described as a half moonwalk back to the bar and ordered another drink, lesson learned Danny, don’t speak to anyone else until after 1900 – the percentages for them being a tester are far greater after that time. I wondered upstairs, I spied the Test Bash Poster on the door so it had to be up there right, finally I found everyone (half of them, I saw in the bar earlier but didn’t want to say anything after my first attempt at contact with the wrong people). I sat at a table and made small talk with a few people who were great and very easy to talk to, relaxed straight away. I thought this was going to be a good night. Then I had a kind of in awe moment, Michael Bolton came in with Keith Klain and sat next to me….As a newbie this was huge…I didn’t say much at first because I didn’t want to sound like a tool but I ended up telling them a story about how I thought I was going to get kidnapped on an airport transfer in Prague > to be fair it was quite a good story that fitted right into the conversation but…WTF Danny – nervous I guess. Meet some more really great people that night but had to go and get an early night ready for the following day.

Ok, onto the day itself…Met up with Rosie and the gang in the morning, impressed by the venue! Great job in getting this place, I slipped on my Ministry of Testing T-shirt and I was ready to go. Once to last bits of admin were sorted the doors were open…Loved how people were waiting outside before we opened the doors (like we had a sale on or something) and equally impressed because it was bloody cold out there! People were of course there for Lean Coffee with the lovely Lisa Crispin. I didn’t manage to have a look at this as I was still doing my duties downstairs but I’m told it was really good. Next time I hope to be there!!

I had the job of escorting Mr James Bach to the stage when he arrived in the building; if I’m honest I though a big hairy homeless guy walked in but it was in fact the great man himself. I didn’t tell him any dodgy stories but I think he may have liked the Prague tale…next time perhaps. The talks started and I located myself in between the main door and the side of the seating area, just in case anyone needed my help (duties first). As the speakers delivered their presentations I thought to myself “Wow, this is awesome” The passion, enthusiasm and knowledge that these Ladies and Gents had was so inspiring to witness  and I knew that this craft had me hooked!

I’m not going to give my take on these talks as many more experienced folks will done and will do, also the videos will soon be available for your own viewing pleasure if you were not lucky enough to be there. I must say one thing though, the guys at the end who gave the 99 second talks were amazing – visibly nervous some of them (as I would be) but they had the belief in themselves and the love for testing to get up and give a talk. This is a goal that I want to set myself for next year.

My ramblings have now come to an end but I would like to say one more thing, that may turn in to two…Thank you for everyone who took the time to talk to me and for the great advice too – It has made me write a blog for starters, Also thank you to Rosie, Simon, Steve, Laura, Julie and anyone else I have missed out who made a new bloke feel so welcome. Cheers!!