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.

A tool is only useful in the hands of those who have the knowledge to use it well

I enjoy reading comments online that discuss why x is a better tool than y, and why someone should use it. When in fact that statement is nine times out of ten, factually incomplete. Not only because it’s not taking into account, the person’s skill to use said tool that is being proclaimed as ‘the best’. But also because the responder may not fully be aware of the entire context of the situation that the other person is looking to fill.

  • What do they want the tool to do?
  • Are there any drawbacks that are being overlooked?
  • Is the tool right for them, or right for you?

Disclaimer: I am not talking about tools like an alternative word processor, or note-taking application. But if it’s something technical, like an automation framework or database utility. I advocate asking probing questions to discover information about its desired use before recommending it. And on the flip side, before picking up a new tool, I recommend asking yourself if it’s something that you’re willing to learn. Or even if it has the potential to increase your productivity or reach your intended goal without detrimental results.

Some of the tools that I can’t go without

I was recently in the position where I was given a blank canvas in the form of a Windows laptop and needed to fill it with the applications I use every day in my testing role. So I want to share a handful of these with you in this post. Not only because it may make you aware of applications that might interest you. But also because if you see something here that you think might have an alternative application. Let me and others know in the comments or within a message on Twitter or LinkedIn.

I’ll only be looking at Windows applications here, as that is what I run as my primary OS. With virtual machines running on top. I feel this is a great alternative to dual-booting a system because while it is highly likely that you’ll need access to various hardware and software configurations. Spinning up an Ubuntu box in a VM is much more time efficient than having to boot an entire machine into another operating system.

VMware WorkStation

I used to use Virtualbox for my virtual machine needs but made the switch to VMware Workstation about a year ago now. For a detailed comparison of the two products, I recommend reading this post. But the feature that enticed me to switch was the snapshot’s ability. Which allows you to load a prior version of your virtual machine if you made a mistake. Or just need to access a prior version.

Postman (or Insomnia)

Both tools share many of the same features, and I use one or the other (or even both sometimes) to fill my API testing needs. Both tools have a nice GUI and the all-important dark mode. I’ve been using Post Man on and off for a few years now and it is one of my favourite tools to use. Highly recommended!

VSCode

This has the potential to be a long list of themes, icon packs and extensions that I use to not only make my code editor work for me and perform how I want. But also to be pretty and something that I enjoy spending long amounts of time looking at.

But instead of doing that. You can just grab my setup from Github here.

Created with the Settings Sync extension. Follow step 4 here and you’ll have access to my themes, icons and code snippets.

Happy coding!

python + PyCharm

Python is also a must-have not only for working with something like Selenium. But it also enables me to run various of my existing tools and scripts that allow me to generate test data or automate a part of my workflow.

And why do I install Pycharm if I already have VSCode installed? Because I ♥ it.

Node.js

This one is self-explanatory if you are working with JavaScript web applications, or rely on a tool like Cypress for your test automation needs and need access to NPM.

Docker Desktop

If you aren’t aware of what Docker is or why you should be using it. I suggest reading this blog post. Docker allows you to work with applications in an isolated environment called a container. It allows for predictability in your environment setup and the ability to share those containers with other members within your team.

These are the main tools that I work with and of course, I haven’t gone into the web browsers and my setup there. But maybe I’ll save that for a future blog post.

Of course, you don’t need any of these tools to be a software tester and you can definitely get by with just a blank Excel spreadsheet and a notebook. Whatever works for you!

I hope you found this useful. Post your thoughts below, or connect with me on Twitter, LinkedIn, or through my Contact form.

Posted by Kevin Tuck

Kevin Tuck is an ISTQB qualified software tester with nearly a decade of professional experience. Well versed in creating versatile and effective testing strategies. He offers a variety of collaborative software testing services. From managing your testing strategy, creating valuable automation assets, or serving as an additional resource.

Leave a Reply