How to build your reputation as a software tester

Being the person who is not concerned about other people’s opinions is often touted as being the secret to a happy life. Why spend your energy being concerned with what your neighbour might or might not be thinking about your latest actions. When you can instead use that energy to focus on yourself. Cultivating a mindset and an existence that makes you happy.

Unfortunately, when it comes to your career and those who will hire you or potentially working with you. What they think of you will often be the biggest factor that decides whether they want to do business with you, or someone else.

Your reputation is something that follows you throughout your career. Added to by the people you’ve worked with, the impressions you gave others. And the actions you have taken. While it is not an exclusive career orientated currency. A good reputation is also something to be valued throughout your life. And knowing how to keep it, maintain it and ensure it grows over time is a skill that we all need to have a bit of knowledge on.

Not only because it is much easier to find out these days what other people think of someone or the past achievements of someone via a quick Google search or a peak on various social media platforms. But also because reputations often proceed us, they can be passed around via word of mouth and reach more people than ever before.

The upside of this however is that with a more globally connected world. We can use this to our advantage and highlight ourselves to ensure we stand out from the crowd, rise to the top of the pile, and be sought after by hiring managers.

So how do we build our reputation?

As mentioned above. The only way to build something that isn’t in existence before. Is by the actions we take daily.

For software testers wanting to build their reputation to get a better job, more responsibilities. Or increase standing with their peers. The focus in their tasks should not only be on achieving results. But working with others so that collectively, you are part of a team that successfully operates together and people enjoy working with you.

After spending almost a decade testing software and learning about all the various ways that you can both influence teams and leave your mark on otherwise mundane tasks. Below I have shared a list of the most noteworthy things that you can do today to build your reputation as a highly valuable software tester.

Pay attention to details. But keep the big picture in mind

Being a details’ person in software testing will get you far. By having the ability to point out the less obvious flaws in a software product and highlight the areas in which a product isn’t perfect or easy for end-users is a critical skill.

But while being able to spot the miniature flaws in a product is helpful. It’s true that you need to have a grasp on the ‘big picture’. Help your team to understand that the flaws you are finding in one location will be felt by the user in another.

Become a mentor

I don’t think there’s a better way to improve, not only how your peers see you. But also appear to stand out from the crowd than to offer your time and wisdom to others for free.

There is no right way to do this. It can be in person, online. Or even via a blog and shared with people you don’t know!

The key here is to be open to people. Share your knowledge with no expectations and be passionate about your subject material.

Practise empathy

Empathy is a skill that doesn’t fit into one area. But is instead wide ranging that will enable you to effectively communicate with the members in your team, stakeholders, and overall be a kinder and more thoughtful tester.

If we take a real world example of a new shelf on the wall. Would you immediately try the heaviest items on your list, then complain that the shelf is not fit for purpose when it inevitably gives way? Or would you carefully try increasingly heavier items until the shelf can hold no more weight?

The advantage of this is that not only are you exposing the real issues in the shelf’s implementation. But this also enables you to work with the development team to improve the shelf. Rather than reporting that ‘it doesn’t work’.

Raise awesome bug reports

Raising bug reports is an often overlooked skill, and perfecting it is the best way to make your developers happy.

I have written the process I use in this blog post. So copy/change and personalise it to your own use.

Building a reputation can be a long process and achieved by doing a variety of different things. However, the focus for building a robust and eye-catching reputation is to always focus on serving others.

Ask yourself what you can do today to make the lives of your team even easier.

I hope this blog post was useful to you.

Reach out to me on LinkedIn or Twitter if you have any questions. Or contact me using my contact form.

PS: I also send out a weekly newsletter which contains links to articles I’m reading, the books I’m enjoying. And other interesting content. Sign-up here if you’re interested. It’s free!

How to turn an obstacle into your advantage

In the year 170 AD which saw intense fighting between the empire of Rome led by emperor Marcus Aurelius, and various Germanic and nomadic tribes (known as the Marcomannic wars). Marcus Aurelius sat down during some much-needed time to himself and began transcribing his thoughts.

The exact place that he wrote or even the intention for the scripture at the time are of little importance to us now. Some scholars claim that these would be works that his sons could reference long after his passing. Others claim they were merely an exercise in self-reflection. With the intention to simply remind him of the philosophical beliefs that he held onto and needed to be reminded of when sailing through turbulent waters.

Today we know these as The Meditations. Our best resource for understanding the ancient philosophy known as Stoicism.

Held within these pages of personal writings and private notes is the following quote:

“The impediment to action advances action. What stands in the way becomes the way.”

Read More

Is the Cypress Dashboard right for you?

Cypress is an open-source end-to-end testing framework written in JavaScript and released for free under the MIT license.

In no way are you required to pay to use the tool, write or run your tests (locally or remotely), or to make use of your own custom reporting solution. If you want to use additional tools like mocha-awesome, go right ahead.

And as a test automation tool, it is one of the most popular and widely used for testing the latest generation of web applications released today. Not only because it uses the language of the web (JavaScript) and is crazy fast. But also because of its easy-to-use API, amazing built-in features that allow you to travel back in time to see failures in an application at the point of their discovery. But it also saves time by integrating with multiple CI environments. Enabling developers to ship features faster and get quick feedback on overall software quality. There’s nothing worse than shipping additional features to discover that it had a negative impact on another part of your codebase.

I’ve been using Cypress exclusively for a while now. But I’ve been missing a way to analyse my test execution statistics in a centralised location. Having to rely on several custom tools, which although work. Still don’t provide all the statistics and insights that I would like.

I’d like to preface this by saying that although Cypress itself is free. The Cypress Dashboard is a paid service that is not required for Cypress to operate. However, it is an interesting product in its own right that provides many features ‘out of the box’ that some people might not have time to configure themselves.

So let’s go into these and conclude on whether it is something that fits your needs.

Read More

Five habits to adopt in order to be a better software tester

No matter how many cloud services I sign up to, or organisational systems I utilise to structure my files on my local laptop. I always seem to run low on storage.

One obvious remedy to this common problem is simple to upgrade the amount of space available to me by throwing in another drive into my laptop.

But is this really a solution?

More resources may seem like a likely fix to most problems. But unless I fix how I use the storage I already have in my laptop (delete old files, uninstall programs I no longer use. Not download every meme that I come across). Then I’m not really solving anything. I’m merely patching things and delaying the problem so it now becomes something that future me needs to deal with.

Another example of this is probably familiar to us all. When our alarm clock goes off in the morning, the temptation to hit the snooze button can almost seem like a tempting solution to the constant buzzing and feeling of only wanting to get five more moments of shut-eye.

The alarm clock sounding might be your problem right now. But as soon as you hit that snooze button, it becomes a problem for future you to deal with when you wake up late for work.

To solve this, you could put your alarm clock across the room. Forcing you to get out of bed to turn the buzzing off. But then you’d be relying on your discipline to not just go back to bed and cause another problem for your future self.

Or, you could instead work on the habits to increase your chances of waking up with your alarm clock and not causing problems for yourself down the line.

Prevention is always better than cure.

This is the cornerstone philosophy behind building positive habits. If you want to be better at what you do and not leave things to discipline, or chance. Take the time to invest in yourself and build up your foundation and give yourself a better likelihood of overall future success.

But how can we take this idea and apply it to our career?

Well, at some point you’ve probably come across the saying:

“We are the sum total of our experiences. Those experiences – be they positive or negative – make us the person we are, at any given point in our lives.”

BJ Nebit

So given that idea. It’s probably safe to say the person we bring to work is also the sum of all the activities we do in our daily lives.

So to prevent ourselves from succumbing to the failures that inevitability, we will experience within our working lives. It’s critical to build up several experiences that we can not only rely on to provide us with the insight and knowledge that will become invaluable to us. But also enable us to discover more about the key skills that feed into our area of expertise and allow us to become a more rounded professional.

And the best way of doing that. Is to adopt new habits, hobbies and interests to provide you with a unique set of skills and abilities. Thus building yourself strong springboard to catapult yourself into future career success.

Here are five habits that I personally would recommend to any new, or veteran software tester. Not only will these provide you with a wide knowledge base. But they will also provide you with a depth of varied subject areas that you can draw on to solve problems, tackle issues. And break down any barriers that will stand in your way.

Be curious about all aspects of software development

Knowing the software development methodologies like waterfall, agile and DevOps will benefit your ongoing knowledge. But I find it more interesting to go deeper and really understand the details about the software development process. And I’m not just talking about the languages that used in development, although that will help. I’m more interested in the application frameworks used, the services that are being utilised and any API’s that are being consumed.

Getting comfortable wanting to know the details about the technology stack of an application will not only assist you in designing and developing your tests. But it will also help you understand the limitations of the application. And how you can integrate your testing so that you are more closely aligned with the underlying technology and ensure a more robust testing solution.

Read non-fiction books

If you want to become better at anything in your life. You can guarantee that someone has not only done want you want to do already. But they have also probably wrote about it too.

Next to software development, software testing, and watching cat videos on YouTube. Reading is my personal biggest hobby, and I put reading down to being behind the person I am today.

Whether it’s a book about military leaders, economics, mental models, or finance and business. Acquiring the positive habit to read even a few minutes a day will do wonders for not only your thinking. But also for your career and will pay dividends for years to come.

Don’t forget the soft skills

Another key habit to not neglect is the set of skills often referred to as ‘soft-skills’.

Essentially, these are defined as the combination of people skills that encompass communication, social skills. But also our attitudes and character traits.

These skills don’t come easy to most people and it is something that a lot of us need to gain through practice if we are going to not only get along with the people we work with. But also succeed in our role and enable others to feel comfortable in collaborating and working with us.

Communication is a critical skill that all software testers need to be good at. And it is often mentioned by hiring managers as the one skill which candidates need to have.

I’ve written a blog post on tips to be a better communicator here.

Question others, but also question yourself

And finally, be comfortable asking questions.

Testing is a discipline that relies on the influx of information to be successful. And even though some people may become annoyed with your ever-growing list of questions. The risk of not asking questions is in my mind a greater problem than not asking.

And as part of the questioning process. You should first start with yourself.

Question your own beliefs, your own assumptions, and your own understanding.

This not only highlights areas of misunderstanding in your own mind. But if also a great exercise to undertake to help you plan brilliant questions to ask other people.

I hope this blog post was useful to you.

Reach out to me on LinkedIn or Twitter if you have any questions. Or contact me using my contact form.

PS: I also send out a weekly newsletter which contains links to articles I’m reading, the books I’m enjoying. And other interesting content. Sign-up here if you’re interested. It’s free!

Are there any limitations to test automation?

Isn’t it great when one solution works for any problem that you might have?

When I was a kid. I was always curious why older people were always trying to boss me around, telling me where to go and what to do. Then I discovered the response ‘Why?’. And while it helped to satisfy my curiosity for a while. I soon discovered that it had the side effect of being quite (understandably) annoying and therefore, it’s usefulness waned over time.

Or how ten years ago if a company wanted to make the tech product better. The go-to solution would be ‘Add Bluetooth to it!”.

Kinda reminds me of that scene from Big Bang Theory.

Read More

How to make your GUI test automation less flaky and brittle

Change is inevitable for the GUI of a web application, or any part of it.

For a visual example of this, look at the Google homepage from the mid-2000s. And you will see a site that has the same features of today (minus references to several Google products), but if a test automation solution was written then that depended on the layout and overall design of the page. It probably wouldn’t work with the design of today.

I know this is probably a bit of an extreme view of things. The design of a web application from over a decade ago won’t be the same today. But thinking in extremes when faced with a problem is a useful tactic to adopt to unlock the solution.

Offtopic, but if you are interested. I’d recommend watching this TedX Talk on the subject.

Using this thinking, we can then work backwards and make informed decisions about the design choices we make, the selectors we target. And the features that we will create automated solutions for.

If you want to learn more about the kinds of tests that should be automated. Check out this blog post. But we don’t want to automate something if it’s a feature that is not going to be used going forwards, or it makes little sense to automate because of time constraints.

Read More

How to run your Cypress tests in multiple environments

Cypress as a testing tool is flexible in the sense that we can use it for mocking HTTP response, re-create complex user interactions as well as monitoring, and responding to network requests.

Plus, it’s written in JavaScript!

This may or may not be a plus for some. But considering it’s the de facto language of the web at the moment. It means that one language can be used for the web application stack. And powering your testing solution and enabling seamless collaboration with developers, testers, and even technology savvy stakeholders.

YAY, JavaScript

Just as a side note, these are not reasons alone to choose Cypress over another test automation tool. I have written before on the topic and advocate using the right tool to get your job done. But seeing as this is a blog post on Cypress, I’m going to assume you have already made that decision and want to find out more on how to use a single code base for testing across your multiple environments. So let’s keep going.

Read More

Why you need to have a dashboard

Software testers are many things to many people. We are analytical, technical and above all, curious about the software that we are testing. And while those descriptions are true, the traits we hold alone can not summarise the value that we provide to software development teams..

There is a distinction between what something is and what something does.

For example, my car’s engine is noisy and needs maintenance to function. But I can’t say that my car is defined by those characteristics.

If I told someone with no knowledge of cars that information. They would have little idea of what I am talking about except discovering that car engines are noisy and need to be maintained. Whereas if I told them my car’s job is to enable me to drive anywhere I need to go and to allow me to get places much quicker than walking. They would have a better understanding of what a car is.

This idea stems from Richard Feynman who once said, “Names don’t constitute knowledge”.

I would take that one step further and say that descriptions alone don’t equal the purpose of something.

Read More

Overcoming imposter syndrome as a software tester

Electricity, as we know it today, is something many of us often take for granted with little consideration of the process that went into understanding, and harnessing this essential and powerful commodity. The history of electricity is fascinating in its own right, and if you are interested, I highly recommended researching the topic.

But the point is, we didn’t really start consuming electricity as we know it today (as in using it at home). Until about a hundred years ago (sockets were only introduced in the late 1800s). Which, in historical terms, is not only recent but the fact that we have wireless chargers available today. Is something that would make your great-grandparents astonished.

On a similar notion, the world-wide-web only really started gaining traction in the late 90s. With every website looking like a carbon copy of the previous, including the flashing word art and solid colour text. Gradients were too fancy back then, apparently.

If you weren’t around back then and want to get a idea of how websites looked. A fun little tool to check out is this website. The MIDI music reminds me of the website I made for my A level ICT class.

Today websites and applications are popping up every day. Each serving their own purpose, targeted towards specific audiences and each with their own unique features that differentiate them from their nearest competitor. Many of these would be unrecognizable to an early web adopter, with AI chatbots and fancy JavaScript features now commonplace. It just goes to show how far the web has progressed in a few short years.

Read More

The tools that I rely on to test software

I sometimes wish I was more useful with using my hands to create and develop things that didn’t involve clicking on a mouse. Being able to create sculptures out of raw materials or upgrade my car’s engine would be a useful and interesting skill to possess. But at the current moment in time, I can’t even change a tyre without consulting someone else.

My Dad however is a natural with those sorts of things and being a trained carpenter, something that I feel should know a little about. And while it’s true that I do at least know the difference between a router and a router. I’m in the dark when asked questions like: ‘What is the most suitable sandpaper to get this finish?’ Or ‘What type of wood is best for this situation?’.

Much the same as he probably has little idea about what a node package is. So maybe I’ll explain that to him someday.

But even though we might have distinct skill sets regarding how we get things done. We share one key trait, and that is having a set of tools we rely on to be productive and get tasks completed. That is the definition of a tool, isn’t it? Something that allows you to be productive as quickly as possible. If you don’t know the advantages of the tool or what it is doing for you, then the benefits of using it won’t be clear to you. I couldn’t give some who isn’t a software tester my tools and say that they’re a software tester now. Much the same as I couldn’t be given a hi-vis jacket and a hard-hat and call myself I’m a builder.

Read More