My experiences as a Remote Worker

This week I had the honour and pleasure of being interviewed for an episode of the wonderful Testing In The Pub podcast. I love this podcast and it’s one that I’ve really enjoyed listening too since the first episode went Live. Stephen Janaway asked me if I’d like to come on and talk about being a tester on a remote team…

I was actually a little bit nervous, which is strange but I didn’t want to sound like a fool and let anyone down. I obviously missed points that I wanted to talk about and glossed over some of the points that I did talk through – This post hopefully adds to the topic and fills in some of the missing blanks.

You can check out the full podcast episode here:

How did I become a remote worker…

Being a remote worker is not all fun and games, it’s really not for everyone but it works for me. For the last 18 months, I’ve been pretty much a remote worker – The pure hardcore remote people would probably call me a fraud as I’m not full-time at home but I feel I do this more than enough to have some personal experiences to share.

I joined NewVoiceMedia at the beginning of 2014, it was always going to be a move that would either make me or destroy me. I wanted to work for them, they had a huge reputation in the test community, Rob Lambert was leading the test team at the time and they had some amazingly talented people who I knew I can learn so much from – The trouble was that it was just under a 4 hour round trip to get there and back. Looking back now, I think I had my rainbow-tinted glasses on and was only seeing the learning and personal development aspects of the job and not the huge strain physically, financially and mentally that I was about to put myself under.

Luckily, the role involved the ability to work from my home during the week and that was key to me jumping on board and accepting the job offer.

During my 3 month probation period I was in the office 5 days a week, it was a killer! I was overwhelmed by new surroundings, new people, new well….everything! I’ve always said that this is when I became a tester, this was my first proper testing role so as well as all the new environmental changes I was learning how to be a tester!!

Thankfully they wanted to keep me on after the probation period and then after establishing a good working relationship with my feature team and the members of the test team, I started to work from home once a week, this over time, increased to 4 days a week and that where I find myself now…

My pattern of life…

Most people, in my experience, have a Pattern Of Life that they follow. They tend to wake up at the same time, have a standard morning routine in regards to getting ready/having breakfast, they catch the train or bus at the same time and sit roughly in the same seat, they read, watch or listen to something similar on the commute each day, get the same coffee at the same shop before going into the office etc.

A daily routine has always been part of my life in the British Army, for 11 years I was told what time I had to get out of bed, what time to eat, what uniform to wear, what location I had to be at certain times of the day, etc. – It was an extremely structured life.

My daily routine during the week would always follow something similar to this:
0600 – Reveille/Rouse
0630 – Block Jobs (Cleaning)
0700 – Breakfast
0800 – First Parade
0830 – Platoon Administration
1000 – Physical Training
1230 – Lunch
1330 – Rifle Drill

I’m a creature of habit and some things have stayed with me since leaving, I follow a loose routine when working at home. These actions ensure that I’m not letting my own personal standards slip and that I have a level of structure to my working day, while at home.

I tend to stick to this daily routine more or less, there are occasions that timings slip but I don’t let myself feel bad about that:

0700 – Morning Dog Walk
0730 – Breakfast including reading a selection of blogs from my backlog
0830 – Showered and Dressed for work
0900 – Get into my office and fire up my laptop
0915 – Daily Stand Up
1230 – Lunch (Timing dependent on the morning meetings or tasks )
1700 – An hour of personal learning

I only have semi-set times on the things that I can control, every day is different in terms of the work that I’m doing so those activities are harder to predict. This might seem far too rigid for a lot of people but if you look back and analyse your day in the office you may be doing something slightly similar without even knowing it.

Feeling like part of the team…

In your office environment, people can physically see you with their own two eyes, remote workers don’t really have this as an option. Members of my team obviously know that I’m working because they would have seen and spoken to me during the daily stand up but after that call – It’s very easy to become invisible. I love talking, I’ll talk to anyone so I’m often on a text chat or video chats with my developers. Collaboration is key and the only way to ensure that we’re all talking to each other is by…actually talking to each other!

We use Hipchat as our main method of communication, every team has their own room that people can drop in and out of if they need anything but teams also have “banter” rooms where its open season. I work with some very funny guys and if I haven’t laughed at least once from something that has been posted to the room, there’s something going wrong.

I also stay very active with people outside of my team, this can be asking questions in the other rooms or responding to other people’s questions if I know that answers. I love to try to improve things for the test team at NVM, I have created a personal Trello board with areas that I would like to make changes – Communicating these ideas and changes to the team via Hipchat or Emails, has indirectly made me more visible. It’s also made me feel less isolated and part of a bigger team.

Access to all the things…

A big part, for me, in knocking down any home vs office mindsets is ensuring that I have access to everything that I can get my hands on. I don’t want to every use the excuse of “I can’t get to that internal page from home” – I don’t ever want my location to dictate what I can and cannot view. Nothing is impossible to get access too, it may take a little time and effort but it’s not unachievable.

I’m inquisitive and I also love having control over my own environment, If I can’t get to an admin page on the local network because the firewall is blocking me from doing so at home – I’m going to be contacting the relevant people to set up a proxy or provide me with a workaround. You never want to feel reliant on someone in the office to make changes for you, you lose the element of control and that’s never a good thing.

One person is remote, we’re all remote…

I’m not the only person in my team that works from home, during the week we will have at least 1 person from the team at home. We have an ethos within my team, if one person is remote then we are all remote. This basically means that all of our meetings are done online and not in an office meeting room. We could only have 1 of the team at home and the rest in the office and we will all still jump on the call individually. This ensures that we can all hear and see each other, one person will share their screen so we are all looking at the same thing – It works really well for us and saves us all fighting to hear each other in an echo-filled meeting room with terrible audio and visual equipment.

This has really helped with things like 3 Amigos, Sprint Planning and Retrospectives. We are able to have a productive meeting rather than fighting with any sort of tech issues or getting access to meeting rooms. Personally, I feel that we are more focused and productive during our meetings.

The challenges…

Currently, we’re in a very good place. We all know what call to be on and at what time. We have team specific permanent Skype links that we always use or tools that we know work for us to achieve a certain goal. I don’t ever feel like I can’t get hold of someone quickly or feel like I’m on my own. It hasn’t always been this way…

Working from home used to be a very painful experience, I remember a couple of things in particular. We would have our morning stand-up meeting in the office, the guys in the office would gather in a circle and run through the standard set of questions. We had 1 person remote working so we would grab an Ipad and dial them in via Hangouts. We would then pass the Ipad around like “pass the parcel” style – god knows why it even began let alone lasted for as long as it did! Another painful one was everyone using their own favourite tool for communication, at one point I was monitoring…Lync, Hangouts (lot’s of different ones), Hipchat, Email, GoTo Meeting – it was insane!! I don’t know how we actually got anything done!!

One last thing that we have thankfully sorted ish, the audio and visual equipment in the meeting rooms was very poor – Pair that with the dodgy network at the time, this made being part of meetings a non-event. I had several occasions where I just dropped out of the meeting completely because is was absolutely unworkable.

Not everyone in the business likes remote working, your company may have a culture that lends itself to this way of working but companies are made up of people. If they have had a poor experience of remote workers in the past, it’s very difficult to change their mindset.

Things that have helped me the most…

  • Invest (get your company to pay) in a decent Headset and Camera – I had a rubbish headset and my laptop webcam was pointed at the side of my face. As soon as I got some new ones, conversations and meetings were 100% better!
  • Try and organise an office day to get the whole team together. Make it a social event and not just about work. Get to know your team mates!!
  • Have a space in your home that’s just for work – avoid working in your family space. You need to have a clear divide between the two or you never really finish work for the day. Leave work at work.
  • Have patience – People in the office are not actively ignoring you. Their status may say that they are free but they could be talking to someone at their desk. If you really need them, try speaking to someone from another team and ask them to get “eyes on” they can give you a much clearer picture of the office.
  • Don’t be afraid to leave your desk, people in the office do it all the time. Don’t feel like you’re doing something wrong by not being chained to your desk.

I can’t tell you how to succeed at working from home, there’s not a one size fits all approach to it I’m afraid. Experiment with different things and see what works and what doesn’t work for your team. Good luck and if you ever need to speak to someone, give me a shout on Twitter or Skype and we can have a chat about it! Always remember, you’re not on your own.


Everyone loves a bit of Bug Magnet!

I’m still in the random data creating mood, so I thought I would extend my last post slightly by showing / explaining how you can quickly add some of the random data that you have created, into Bug Magnet as a custom config file.

If you haven’t heard of this Chrome and Firefox extension…where have you been?! I’m a huge fan of this tool, it’s assisted me during numerous testing sessions since I discovered its existence.  A while back, a new feature was added allowing you to add your own JSON files  – This was a game changer for me, It allowed me to create lots of different custom files specific to my context, for me to use whenever I needed too. Adding and Removing Files is soooo quick and easy that it really makes having something this valuable in your testers toolbox, an absolute no brainer.

A better explanation of what you can do with Bug Magnet can be found here. Neil Studd is extremely good at walking through how you can/could use the tool.

Let’s extend what we have already…

Open a command prompt or terminal, in the directory where you saved the random-data-generator app (Go and check out my last blog post if you’ve forgotten already). We’ll need to bring in the jsonfile module to our app, this will help us create the file that we can use with Bug Magnet.

Type the following command and press Enter. This will install the module and also add it as one of the dependencies in our previously created packages.json file.

npm install --save jsonfile


Once that has finished installing, it shouldn’t take very long, create a new file and save this in the random_data_generator directory. For this example, I’ve named the file cardDetails.js. As you can tell by the name, this will create some random payment card details.

Add the following code to the new file:

// Dependencies

var casual   = require('casual');
var jsonfile = require('jsonfile')

var file = 'cardDetails.json'
jsonfile.spaces = 4

// Random Card Data Set

casual.define('cardDetails', function() {
 return {
     Name        : casual.full_name,
     Card_Type   : casual.card_type,
     Card_Number : casual.card_number(casual.card_type),
     Card_Expiry : casual.card_exp

// Write the result to a json file

jsonfile.writeFile(file, casual.cardDetails);

Like before, I’ll briefly explain what’s going on here – At the top we are bringing in the modules, casual is our random data helper and jsonfile is the module that’s going help us out with creating the JSON file (Say’s it all in the name really). Next, we have the file variable and this, as you would have guessed, is where we are naming the output file. At the moment this is just getting saved to the root directory of the app but you can specify a location anywhere on your system if you like, entirely up to you. Just down from this is the spaces that you would like to set, I’ve set it to 4 on this occasion as the default value is null and 4 gives you a lovely pretty print feel. Have a play about with it and set what you think is right.

In the middle of the file is the meat of the operation, this is creating your random data. Previously, we used user data and saved this in the user.js file, I’ve just mixed it up a bit and used a different data set. Lastly, we have the line that will write all the output to the JSON file.

Time to create the JSON file…

In a terminal, type the following command and press Enter. This will do the business and create the JSON file.

node cardDetails.js


You should now be able to navigate to the file, in the location that you set in cardDetails.js and it can be opened up in a text editor.

The cardDetails.json file will look something like this (with different data obviously).

    "Name": "Kristopher Hickle",
    "Card_Type": "Visa",
    "Card_Number": "4485446830945271",
    "Card_Expiry": "04/17"

Add the file to Bug Magnet…

I’m assuming that you have the extension already installed, if not, go do that now.

In the Chrome browser type chrome://extensions/ into the address bar and press Enter, Select the “Options” button on the Bug Magnet extension. 

Select the “Add Configuration File” button.


The Name that you enter in this field, will be the name that appears within the context menu in Bug Magnet, next to the default ones (Names, Cities, E-Mail addresses etc.).


Press the “Select File” button and navigate to the cardDetails.json file. Select the “Open” button and this will then add the new config file to Bug Magnet. That’s it, it is now ready to be used in anger against the site you’re testing.

We’re now done – I’ve taken you this far, it’s now up to you to create the data and start using it in association with Bug Magnet.

To finish off…

These guides are obviously very basic and full of potential problems, I can see loads myself. They are not intended to be perfect, I view them more as a helping hand to get you started. Even if you don’t follow my method of creating random data, please do go and check out Bug Magnet – The default data that comes with the extension has found me so many bugs over the last couple of years!! At NVM, we have created our own repository of JSON files that is in a shared location, these can be tapped into and used by anyone, not just testers. All we need to do is import them into Bug Magnet before a test session and we’re set.

I created a really poor set of instructions for my team on how to create these custom files (using manually added data) a while back – you can find them here.

I’m still learning how to use GitHub and I continued my learning by trying to add all the files I’ve mentioned in the blog posts to a new repository. I think I sussed it but there are a few dodgy commits on there – Feel free to take a look here.

I’ve enjoyed writing these, it helps cement in my mind what i know and whIt i need to improve on, thank you for reading!!


My own personal Testability experiment!

Two weeks ago I decided to focus my learning on a particular area each month, historically i’ve been rubbish at concentrating on one thing. Testing is so vast with lots of different interesting areas to research it can become a little overwhelming at times. Something had to change for me:

I wanted the choose a subject that i was aware of and what I thought i knew it to be but i was never too sure about how wide it stretched. Testability was going to be the main focus!

I had a basic plan in mind – Split the month into two parts. The first 2 weeks will be research and observation (My team and the wider Test Team) and the second 2 weeks will be trying to implement some improvements or make improvement suggestions. The test community has massively helped me during the research phase, there’s many great things that have been written about Testability over the last few years and these normally reference other articles or conference talks so it’s actually been a really enjoyable experience discovering a bunch of very interesting things.

Here’s a list of the Blogs, Articles and Talks that i’ve read over the last two weeks:

Blog Posts



Conference Talks

It’s going to be an interesting couple of weeks coming up, I’m planning doing a follow up post when the time is up to explain what worked and what didn’t work. I’ve had a lot of fun concentrating on one area, i’ve slipped up a few times and wondered down different paths but i’ve been focused enough to indentify these lapses and then got on track.
Huge thanks must go out to Huib Schoots – His Great Resources page was the starting point for my research.

Does anyone else take a similar approach to their learning or maybe you have a different method? I’d love to hear about it!

Creating Random Data on my Lunch Break…

A few days ago I read a great post by Alan Richardson called “How to write a simple random test data sentence generator” and i loved it, it’s exactly what I try and do all the time. In my current context, data is king, without data flowing through our service we effectively have no service. While testing stories, I create tools that do loads of little things but I have a selection of ones that create specific test data. Now, I’m not a developer, I don’t have any sort of development background but what I am, is an inquisitive learner.

I love writing code, not because I’ve been made too or I’ve been told too by my company so that I can automate all the things, I do it because it’s fun! I get a massive sense of achievement when I’ve had an idea for a tool, wrote some code and it’s worked!! It’s not the best looking and most efficient code but it’s my code and i’m proud of it!

So where was I, the random data generator – I read Alan’s post just before lunch and just before i tucked into my food i wrote a very basic app that spit’s out random data. All in all it took me less than 5 mins, it was done as a kind of exercise to prove that absolutely anyone can code something that creates test data. Don’t be afraid of just giving something a go, you might actually surprise yourself!

*This is wrote using Node.js but there’s probably tons of modules and libraries in your preferred language that will allow you to do the same thing*

We need to start somewhere…

In order to get your hands on this random data you’re going to have to download Node.js it won’t take very long and it’s so worth it, not only for this but for many other awesome things that you can create using Node.

Once you have it installed, type node -v into a command prompt or terminal. You should be presented with the current version that you have on your machine. If you’re not seeing the version, don’t panic, you might have to add the node directory to the path environment variable. You’ll find loads of step by step guides for this if you Google it.

node -v


Let’s do the code part!

So first things first, we need to create a new directory for your new and wonderful data generator to live. Open a command prompt or terminal (you may have one still open) and enter the following commands, as seen below. It’s entirely up to you what the root directory should be, after all, you’re doing this on your own machine.

mkdir random_data_generator
cd random_data_generator

*You don’t have to create this but I just like creating it so that i can give the app to other people*

Next, we need to create the package.json file this is the config file for your node app, it lists all the dependencies that you have in your project and also a bunch of other stuff you may need to add, as the app starts growing legs. You can read all about what this file is and what it does here but for now, we’ll crack on…

In the terminal enter the following and press Enter. Press enter through all the questions and type Y or Yes at the end.

npm init

Now we have that json file created we need to bring in the node module that’s going to do all the leg work for us and create the random data. Casual is a great helper module that rapidly speeds up the process of creating random data. There are a couple more great modules out there that do the same thing, like Chance.js and Faker.js but were going to use Casual this time because it’s the first one I thought of and I’m writing this post so that’s what you’ve got!

Install Casual by entering the following command into your terminal and pressing Enter. The –save in the command adds this module to the packages.json file, honestly, go and have a look if you don’t believe me.

npm install --save casual

When it has finished installing the module, leave the terminal open as you’re going to need it in a few mins.

Create a new file with your favorite text editor (Sublime Text, Notepad++ etc.) and save this in the new random_data_generator directory. For this example, I’ve named the file data.js but you can choose a name that’s more relevant to you.

In the file add the following code…

 // Dependencies
var casual = require('casual');

// Using the module to create random data
var number = casual.array_of_digits(n = 4);

var name = casual.first_name;

// Log the result

There are a couple of things going on here and I’ll explain (probably really poorly) what they are, so starting from the top, the first line after the comment brings in the Casual module so that we can use all of that goodness. Next, in the middle section, we’re using a couple of the in-built Casual functions that will create the random data and assigning these to the variables. Finally, we are just logging the output in the console. Very basic and extremely simple.

Using the terminal that you previously opened, type node data.js and press Enter to run the command. If everything has been setup correctly, you will be presented with some random data. It’s as easy as that.



If you create another file in the same directory and save this one as user.js I can show you a simple way of creating a set of basic user data. Add the following code below to the file and hit save again. To get an idea about what you can do with the Casual module, check out the documentation.

// Dependencies
var casual = require('casual');

// Custom Data Set

var password = '#A#B#C#D#E#F#';

casual.define('user', function() {
 return {
 Firstname: casual.first_name,
 Lastname: casual.last_name,
 Password: casual.numerify(password)

// Write the result to the console


What this file is doing is creating a data set, defined and configured to your needs. Using the define function of Casual you can package this all together in a lovely little ball and do what ever you like with the output. On this occasion, I’m just logging it out to the console again. There are a few other things happening in this data, i’m using a couple of other inbuilt functions to create a different (very rubbish) password.

In the terminal type node user.js and press Enter to run the command. There you go…some more data for you!


Where do you go from here…

As you can tell this is very basic and the only thing it really does is print data out to the console – Not that helpful. This was only ever a 5 min task to quickly knock something together, we can expand this out to push the data to a certain file format that your system uses or feed the data into an already established test tool that you have been manually creating random data sets for, etc etc….I like the idea of creating Json files that can be added to apps like Bug Magnet so that you have the data there for you, while you’re doing an exploratory session.

We are only ever limited by our own imagination so it’s entirely up to you where you go from here but i’d love to hear about it so drop me a message!

*If you really can’t be bothered to create a tool yourself – Just Google “Random Data Generator” there’s bloody tons of them knocking about!!

Cheers for reading!

I now have a follow on post where you can put some of this beautiful data to good use…


30 Days Of Testing – My completed challenges!

The Ministry of Testing is amazing at getting people together and talking about Testing. From the epic TestBash Conferences and Workshops to the excellent content that can be found on the Dojo. I saw a post on Twitter that mentioned 30 Days of Testing, I was immediately intrigued – A challenge with absolutely achievable daily tasks, some of which were outside of my current comfort zone, it was right up my street!!


I entered this Challenge knowing that I wouldn’t actually be able to finish it in 30 Days, not because I would have serious trouble doing any of the tasks but because my Wife is due to give birth to our Daughter in about 2 weeks…so I’m just trying to stick with it for as long as I can until I’m facing another new challenge!!


The Challenges

Day 1 – Buy one testing related book and read it by day 30.




So this was a tricky one for me – There are several amazing books out there that people have recommended on Twitter or via their talks at conferences, I’ve had a few of these on my bookshelf for a while and for several reasons/excuses I’ve not read them all yet. I’ve had “An Introduction to General System Thinking” by Gerald M. Weinberg for over a year and it’s always scared me, so I thought now was the time to step up and take the plunge. I posted a message on Twitter and straight away it dawned on me that maybe it wasn’t the best idea to tackle such a beast. After many recommendations I brought “Thinking in Systems” by Donella H. Meadows instead, hopefully, this will give me a base understanding of System Thinking so that I’m much more prepared to attack Jerry’s book.

Day 2 – Take a photo of something you are doing at work.



It turned out that this day fell on a Saturday but lucky for me, I work from home and I have an office in my house. I wasn’t technically “working” but I was catching up on a webinar that I missed during the week. It was a talk by Alan Richardson called “Risk Mitigation Using Exploratory and Technical Testing”. Really solid information and I took loads away from it – You can watch it back here:

Day 3 – Listen to a testing podcast.



I’ve never been a frequent listener of Podcasts but I do listen to “Testing In the Pub” when the guys have a new episode out – Dan Ashby and Stephen Janaway do a fantastic job, they always have great guests and really interesting subjects. As I’d listened to the latest episode already, I looked elsewhere to complete the daily challenge.

I saw Patrick Prill mention this podcast a few times so I went to check it out, it just so happens that as I was scrolling down the website I saw Patrick’s name in the description of one of the episodes – my choice was made. Alan Page and Brent Jensen were discussing Patrick’s recent TestBash talk – worth checking out both the talk and the podcast episode.

There are a few other podcasts that I’ve seen mentioned by the good folks on Twitter like Test Talks, PerfBytes and Let’s talk about Tests to name a few.

Day 4 – Share a testing blog post with a non-tester.

My initial thought was to share a post with a family member (Wife, Parents, Sisters etc.) but I couldn’t quite find what I was looking for at the time, There’s some great stuff out there by Michael Bolton and Katrina Clokie that would have done the job but I opted to share a post with a member of my team instead. I shared Michael’s post “testers get out of the quality assurance business” to my team’s Scrum Master.
Also, as I was in the sharing mood, I send this Whiteboard Testing video over to one of our developers –  He seemed to like it so that’s a good thing!


Day 5 – Read and comment on one blog post.
This post by Christian Kram is the one I choose to comment on. Reading blog posts is something I’ve enjoyed doing for a number of years now. The MoT testing feeds site was the first place I was made aware of testing blogs and from there Twitter has become the main source of the posts I read. People I follow always post interesting things that they have either written themselves or shared links to other people’s work. I find it very difficult to read everything I see, I make use of services like IFTTT or Pocket to capture and store posts that I can pick up when I get some spare time.


I also think that these guys do a great job at sharing blog posts that people have written, they have shared out a couple of mine over the last couple of years so I’m very grateful for this. Start following these guys on Twitter if you’re not doing so already!
Day 6 – Perform a crazy test.
What is a crazy test?! I was seriously stuck with this one and I went a non-software testing route (total cop out!).


Tried listening to this for as long as I could – Put it this way, it wasn’t the full 10 Hours!!


Day 7 – Find an accessibility bug.
This has been an area of testing that I have struggled with over the last few years, I’ve always focused my efforts in other areas so this was a great opportunity to learn something new.


As the challenge is a very well talked about on Twitter, I was able to find some new tools to aid me uncovering accessibility problems. I choose to use WAVE like many others did and pointed it at the Action For Blind People website – I thought that they would be all over accessibility…


As with most tools, this uncovered areas of the site that had accessibility problems but this is just an invitation to investigate and explore the site further. Maybe using other similar tools, that highlight these issues, ensuring that the tool that you have chosen to use is giving you the correct information. Screen Readers are another great way of backing up some of the issues that the accessibility checkers have brought to your attention – I really like pairing up tools this way as they tend to compliment each other really well.


How many people used WAVE to check the WAVE site? Come on, I can’t be the only one…


Day 8 – Download a mobile app, find 5 bugs and send the feedback to the creator.


I was looking on the App Store for an application that I could test – I didn’t really have a preference in mind. I came across “Event Countdown Free” – It had 4 stars and over 450 reviews but as it dealt with timed events, I thought it was worth checking out and seeing what I could find.
I created a report of what I found so that I could send it off to the Developer but I’ve haven’t been able to get in touch with them yet. The Developer website in the description on the App Store links to a Facebook page and as I’m not a user of that site I cannot leave any messages there.


These are the rushed details of my testing that I prepared – I made them available in a Google Doc with the intention of hopefully opening up a dialog with the developer and having a shared place where, if needed, we could talk through what I found.


The Findings from my testing:


Day 9 – Create a mindmap. 


I was starting to do a bit of planning for the future new arrival and decided to create a mindmap about a some of the important things…still a work in progress and something that I can add to when I think of all the thousands of items I’ve missed off!
Baby Labour Planning


Day 10 – Find an event to attend (Online or face to face).


I attended the latest Dojo Masterclass by Mark Winteringham. The talk was “How To Build A Regression Checking Strategy “


“To avoid common mistakes of brittle checks, bad choices in checking tools and wasted time fixing broken checks, we need to take a step back and ask ourselves why we are running these checks and what risks are we are mitigating?”


This was a great talk by Mark that I found really interesting, I took my new things away with me and I’m trying to work out how I can trickle feed some of his points into our Regression Strategy.


Day 11 – Take a picture of your team


I’m not really in the office all too often so it’s difficult to take a good picture of my team, It would probably be through a screenshot of Hangout/Skype etc. Not great so I picked an older picture instead.


The whole NVM Test Team were lucky enough to attend a TestBash event a couple of years ago, sadly a few of the team have now departed but I like this picture as it was my first “trip” out with the guys a couple of months after joining the company.




Day 12 – Doodle a problem




I have a whiteboard in my office at home and I use it to draw out problems that i have in my head, I’m always trying to find ways to learn new skills, I thought I would give node.js a shot…


We have a particular process within the team that we have to go through to create/update/enabled/disabled “jobs” for a thing that kicks off a time-based task in one of our micro-services (I’m purposefully trying to be vague). Anyways, it’s manually done through a database query and I didn’t like that so I attempted to give it a UI (very bootstrap but it was just what i needed) that we can use in our local dev environments.




This is the actual site that i knocked together (Changed the labels etc.) written in node.js using the Express.js module to create a web server and I added the UI using a rendering module called Jade/Pug. Our devs seemed to like it and it’s now in source control. I was extremely pleased with myself!


Day 13 – Find a user experience problem


Day 13.png


We unfortunately had the spend a few days in the hospital in the lead up to our daughter being born and that place is full of UX problems! This one intrigued me enough to have a think about it some more (These thoughts were all in my head – My wife couldn’t give a crap). Behind her bed were these 2 “buttons” without labels or instructions of use, the wire in the picture is connected to a little control pad that’s within the patient’s reach. So it turns out that 1 of the buttons resets the call to get a nurses attention for general questions, a new pillow etc. The other one is like an emergency “all hands call” button that sends every nurse on the ward running to your bed, as something serious has happened….but which one does what….


In a newer part of the hospital, I found this and the mystery was solved. I slept better that night!




Day 14 – Step outside of your comfort zone


I honestly don’t think I’ve ever been in my “comfort zone” for the whole time I’ve been in or around testing. I don’t really like complacency and the thought of getting stale in my knowledge so I’m always finding different ways to challenge myself. When patrolling in the Army, you’re always taught to never take the path of least resistance – there’s a high chance that someone would have placed a nasty surprise there for you to walk on. So I always try and take the hard route with my learning and to not be scared of anything. All the “experts” knew nothing when they first started.


Day 15 – Find a problem with an e-commerce website


Any website that displays a survey form to fill in, 2 secs after visiting the site, is a huge problem for me. Do the developers even use their own website? So annoying!


I was looking on the Kiddiecare website for all things baby and like a tester, I got distracted by the functionality of the site (Any site I visit!). I was exploring the basket functionality, as you do…and noticed something that I thought was strange. Every item on their site has a max quantity value of 10, I’m sure this is to avoid people over ordering a certain product or something (I don’t know the reason, I made that up), I was thinking, what if I wanted more than 10.




In the basket, the behavior of the quantity feature changes and becomes a number field rather than a dropdown menu. If you increase the total over 10, a JavaScript alert box appears and stops you from entering more. As this validation is no doubt on the client side, I used the browser dev tools to inspect the number value.


From here, I was able to increase the hidden max quantity value and bypass the validation. I added a ridiculous amount of bottles to my basket and was able to move further along the checkout process.




I don’t know what would happen if I was able to place the order, would I get delivered that amount? Would the payment get rejected? Would I get an auto email telling me they don’t have that many in stock? I dunno but as a tester, I really want to find out.


This is probably not even a problem but it was of interest to me.


Day 16 – Go to a non-testing event




Well, this one speaks for itself! Little Sophie Emilia Dainton was born at 16:56 on the 16th July 2016. Very proud parents!!


Day 17 – Find and share a quote that inspires you




Winston Churchill said some absolutely inspiring things during his lifetime but I really love this Quote “Success is the ability to go from failure to failure without losing your enthusiasm”.


I’ve always a massive fan of this – “If you’re not challenging yourself, you’re not changing yourself!” I tried to find the author of this but I couldn’t see it, I’ll update this page if I do, though!


Day 18 – Find a broken link and report it




While in the hospital I noticed that they had free WiFi that I could use my wife’s patient details to log into too – While on the Login screen, I saw a button to “Log Out”…Huh?! Naturally, I pressed it and then I was presented with the screen in the picture above!




Testing starts at home, so I thought I would explore our NVM website. I managed to find a couple of broken links on the contact page – The embedded link to the Google Maps API was causing an issue that people didn’t know about so I reported it up to the guys that maintain that site to make them aware.


Day 19 – Find and use a new tool


I’ve currently been getting to grips with Visual Studio Code it’s a newish open source text editor from Microsoft, we have been using node.js recently within my team and this editor lends itself perfectly to that. I’m a huge fan of Sublime Text but this editor is becoming very useful with its build in features and it’s being updated all the time by the community – Worth checking out!


Here’s a short introduction video on what VS code offers:


Day 20 – Find a good place to perform some security tests


We are lucky enough at NVM to have some very talented security testing specialists that were kind enough to package up a modified image of a Kali Linux instance for us to install onto a Virtual Machine (VirtualBox). This provides us with a safe environment to practice some of the different security testing techniques and approaches. The Kali toolset it very good and there are tons of tools in there that I’ve never heard of, so it’s interesting exploring them to discover how I use them to aim my security testing during the development of new NVM features.


Day 21 – Pair test with someone


I was on paternity leave at this point so I wasn’t officially “working”….however, I was still monitoring our team’s chat room (Shhh, don’t tell my wife) and one of the devs had a problem with access to an environment that I knew I could help solve. I took the conversation to a 1 to 1 room and we paired up to get him access to the area he needed.


Day 22 – Share your favorite testing tool




I think everyone’s brain is their best test tool, well it is for me at least but I also really like a tool called LICEcap. It allows me to create short .gifs that I attach to bug reports etc. It really brings the words to life. There are many tools that do the same thing but this is my goto tool if I need to create something quickly.


Day 23 – Help someone test better




Testbash is something that I hold very dear to my heart, it was the first conference that I attended and it just firmly cemented, in my mind, that testing was what I wanted to do and from there that point, it’s been my main focus in my life!


Testbash has expanded since that point and Manchester has been added to the list of locations  – Richard Bradshaw is the guy running this one and if he’s involved, you know it’s going to be epic!! So I brought my ticket as soon as I could – Due to lots of different events, the birth of my daughter being one of them, I decided that leaving my wife for a couple of days to look after Sophie on her own just wasn’t fair. It would have been easy to just get the money back but I wanted someone else to go in my place and experience the buzz of TestBash. Patrick Prill was the lucky guy! This bloke is one of the nicest people I’ve met and I couldn’t think of a better person to go in my place. Looking forward to hearing about his time there and what he learnt to help him test better.


Day 24 – Connect with a tester who you haven’t previously connected with






I put this out there as an open offer really – I love talking to people and if anyone wants to have a chat something then please just drop me a message.


Day 25 – Contribute to a testing discussion


I try and do this as much as I can, on the different media channels that I subscribe too, for a long time I’ve been a passive observer but I’ve tried to offer something more now that I have gained more testing experience. Lots more work to be done in that area!


Day 26 – Invite a non-tester to a test event


I share stuff all the time at work in our public chats rooms with the view that someone from NVM, who is not a “tester”, will attend an event. I’ve not been great at directly inviting people to events so that’s something I’ll need to change.


Day 27 – Say something nice about the thing you just tested


I’m always saying nice things about the things I test, I don’t see the point in starting out with a negative mindset (Sometimes that’s needed based on a certain persona). For me, there’re positives in everything that we do.


Day 28 – Summarise an issue in 140 characters or less




Do I need to explain this one more….


Day 29 – Find an out by one error




This is something that really bugged me and is perfect for my out by one error. In this photo the children are making the shapes of letters, to spell the word “Healthy” which is fine but in the top left corner there is a circular shaped object that has the word “Healhy” – missing the letter “t”…It’s the small details that count.


Day 30 – Give someone positive feedback


The team of guys I work with at NVM are truly amazing!! I’ve learnt so much in the time I’ve been there – these people are super talented!!


Day 31!!


So that’s the challenge completed! Hopefully, you enjoyed reading about how I got on during the month.

A small step back in time!

I’ve never really been a “gamer” throughout my childhood, I’ve always had games consoles (NES, SNES, Mega Drive, N64, PlayStation, Xbox, Etc.) but for me, the novelty and excitement of having them wore off very quickly and I soon found myself just getting bored.

I always loved being outdoors and playing Football, I’m not an amazing footballer by my own admission but I’ve always been good enough to play for different teams growing up and into my adult life so playing computer games at home lost it’s appeal very quickly.

I have very fond memories from when I was about 14/15 years old, playing a particular game on an Amiga, my mates and I would camp out in the back room of their parents house and just have epic tournaments. The game was Sensible Soccer, it wasn’t the best game and is now so far away from where Football games are, that if you put this in front of anyone who has played any of the latest FIFA games then you would be probably laughed out of the room but I absolutely loved it then and still do love it now!!

A few months back a new Raspberry Pi was announced the “PiZero”. This was developed to enable everyone to have a chance to learn basic computer skills, the best thing about this incredible piece of hardware was its price….£4 ($5)!! Not only was this cheap but the Raspberry Pi Foundation were giving them away on the front of their official magazine “The MagPi“. I remember magazines having game demo Cd’s on the front not full on micro computer – I was hooked, I wanted one and made it my mission to get one!

Unfortunately, everyone else had the same idea and all the shops I looked in, were all sold out so I went down the more conventional route of just buying one from The PiHut.



My PiZero developed by the Raspberry Pi Foundation 

Now a computer for £4 is amazing but it doesn’t really tell the whole story, a couple of micro connectors and other peripherals are needed to get the show on the road. Luckily, The PiHut sells a convenient little pack of essentials to get you up and running and as I had a few spare cables and an old phone charger I was good to go!

It was always my intention to use this little baby as a retro games console so that I could hook it up to a spare TV in my office at home and that’s exactly what I did with it! I knew of a project called RetroPie and followed their instructions to set up my PiZero. I’m not going to add the full set up instructions here as they have done all the hard work so I’d recommend checking out the site if you’d like to have your very own retro games console.

After a tiny bit of effort (took no time at all) and changing a couple of configs, I was able to get it all working and installed in my office.

My PiZero set up on the back of the TV in the office at home

I have a few extra items that I didn’t mention before, i additionally purchased these to tidy things up a little bit and not have the PiZero exposed and wires everywhere but it’s entirely up to the owner to get these extras if needed.

As much as this was a fun thing to do, it was also a little project i set myself to become a lot more familiar with the Linux OS. We use a flavour of Linux at work and i was never comfortable with using the Command Line as I have always used the MS-DOS commands on Windows machines and as the Linux syntax is slightly different i was always wary of it. So i wanted to change that! You should never be afraid of things – just give it go and you may surprise yourself!

I took a course on Codecademy to learn the basics and installed a VM with Ubuntu on my local machine and just messed about – I hate saying i messed about but that’s kinda what i did. I did this to get confident with interacting with the shell so i wasn’t afraid anymore.

I also wanted to access my PiZero through SSH (The reason why i have a USB WiFi adapter connected) – It did this using PuTTY and WinSCP. After changing the default logins and adding a new user i was in and navigating the file structure. There are some really good instructions for doing this on the Raspberry Pi website. With this access, you can add more games (roms) to your RetroPie – Using WinSCP for this is really good if you don’t want to use the command line. Games can be added in a couple of other ways so it is not too important to have your PiZero hooked up to a network – you should find the details of these different ways in the Instructions.

So i now have Sensible Soccer installed on my RetroPie and everytime i play it, i’m taken back to that time with my mates. It’s funny how something so simple can instantly spark a memory for your past – much the same a songs do when you haven’t heard them for a long time.

If you do have the time and desire to get something like this up and running, i’d love to hear about it! Happy Gaming!


Most of the blog posts that I tend to write are as a result of reading other people’s work or watching an interesting video – This one follows the same trend.

I’ve just finished watching John Stevenson’s (@steveo1967) excellent Whiteboard Testing (@WhiteboardTest) YouTube video explaining the Cornell Method of taking notes – I’ve heard of this method in the past and watched a few similar YouTube videos on the subject but have never really applied it to my day to day testing activities. The truth is, I have never really formally been taught how to take good notes – It sounds strange that I would want that but for me it would have given me the foundations earlier on in my life so that I could then change, adapt and develop my own style into something that worked for me.

My past experiences…

Most of my previous working life I was made to carry with me, at all times, a Notebook and Pen – I was asked to show this to the Corporal, Serjeant, Etc. every day on the first Parade of the morning until it became just a normal pattern of life to have these items on you. When I was promoted, I would be asking the same question and punishing (restriction of privileges) the soldiers that did not produce these.

Looking back, I couldn’t see the reasons and importance of having a Notebook and Pen with you – This was vital for daily life in barracks during the various classroom-based lessons and also on Operations and Pre-Deployment Exercises, taking down important information that could prove life-saving in certain situations. I know that now but back then when I was a boy soldier of 17/18 years old, I just didn’t get it, and was going through the motions.


Selection of Notebooks that I’ve kept from my time in the Army

I’ve kept many of my old Notebooks from that time of my life – I like to look through them to see, not only the types of notes that I was taking but how my style developed as I gained more military experience while progressing through my career.

Some of these notebooks included:

  • Helpful mnemonics and abbreviations
  • Instructions on Specific Infantry Radio Systems and Frequency ranges
  • Packing Lists for Exercises or Operations
  • Patrol Orders including the Mission, Commanders Intent, RV Grid References, Etc.
  • Ammo States of the Sections taken during Platoon and Section Attacks
  • Quick Sketch Drawings for a Range Card and Arcs of Fire for the Sentry position

Doing a very small amount of research while thinking about this blog post I came across a perfect article which displayed the pieces of equipment carried by Soldiers throughout the years – I’ve chosen a few examples and as you can see, a Notebook was a very important part of military life over many conflicts.

1815 Private Soldier, Battle of Waterloo (bottom left) 49 – 1807 British Army drill regulations and leather covered notebook

1916 Private Soldier, Battle of the Somme (bottom right) 8 – Notebook and Service Warrant Card

1982 Royal Marine Commando, Falklands War (bottom centre) 18 – British army notebook and pens, compass and protractor, which were used for marking maps, for example, plotting minefields.

2014 Close-Support Sapper, Royal Engineers, Helmand Province (top centre) 5 – Notebook


How good are the notes that I take now?

Note taking is a skill and like any other skill you need to practice it – If you’re not prepared to put the effort in, then the notes that you take during your exploratory sessions are meaningless and don’t tell the story of your testing. Rob Lambert (@Rob_Lambert) mentions in one of his posts about making your notes 60 Days proof – This means that you can pick up that notebook or open that file and still be able to recall exactly what you meant when you first made that entry. I’m not amazing at doing this but i’m working towards getting there and looking at ways to improve all the time. Internal Company presentations and also short TED Talks are great ways, that i have found to practice note taking skills.

I continue to fight with myself over what works well for me and my own style has changed and morphed over the last couple of years, I’ve used different bullet points, checklists, mind-maps and also created templates in order to keep things consistent but i haven’t found the one thing that fits me….yet. That’s what I love about learning and experimenting – you tend to do it for every aspect of your testing, i don’t think i will ever stop trying to improve on what i’m currently doing.

I would love to hear from people and hear the way they take and capture their testing notes. Are there certain applications that you find useful (Rapid Reporter, Evernote, One Note, etc.). Do you consider who the audience is when writing notes? How did you find your style or if they are like me, are still trying to get there?

Please feel free to get in touch!

A few great resources about taking notes and techniques to improve your note taking:

Michael Bolton –

Rob Lambert –

Alan Richardson –

Shmuel Gershon –