Where should I start?

Do you think it is too late for this?

Absolutely not. I’ve met really solid software testers that started who were much older than you and from non-software industries.

Also testing is something that anyone can do but spend a lifetime getting good at. There are technical aspects, like using specific tools (Wireshark, Selenium, Database UIs, and so on), reading or writing code, and things like that, but the initial thinking is very simple. Look for the risk then tell someone important.

I think all you need is an interest in learning, problem solving and challenging the safe assumptions. Confidence with people I find very helpful as testing is very social - ideally we work for and with nearly everyone in the building.

If not, where should I start?

That depends on where you are and where you want to be. There are roles that are based on doing test cases that are handed to you, there’s roles in tooling which is mostly coding (for your strategy or someone else’s), or there are roles for guiding other testers. Consider your strengths and interests and how you’d be interested in applying yourself.

I come from a CDT background, where I am placed into new companies or teams and can get going without instruction or permission. I like that I can support the people around me in whatever way works best, improve processes so that they work for everyone, take responsibility for what I test, when and how. I like the freedom I have to make a difference with minimal waste.

However, this can be limiting. I can only work in certain places that permit that sort of trust in my ability because I can’t limit myself and be happy at the same time. If you cannot move house, for example, this becomes an issue because you are limited to roles nearer to you. Or if you particularly love banks or the military those industries tend towards archaic micromanagement and are corseted by mandated standardisation in my experience.

It’s also not to everyone’s interest to be that proactive. Finding a company/role that aligns with your values is what I recommend.

Which courses would you recommend?

I can only talk from my own perspective, but with that in mind:

MoT did some courses all of which I got something from, but these (and similar) courses tend towards adding new colours and paintbrushes to your paintbox rather than teaching how to paint. I was originally self-taught the building blocks of testing using the RST course material (and the philosophy of science module from my degree), and I did go on the RST course and found it very helpful. It’s based on experiential learning and building skills, and the interactivity also keeps a good energy and learning environment. I recommend it to anyone that wants to be very good at testing, starting from scratch or otherwise. That being said it’s also an investment of time, money and effort.

If you have an interest in the philosophy of science much of the thinking in testing is based on those ideas (testing is science), and I found my reading there very helpful. Most of my favourite books on testing don’t mention testing at all. Tacit and Explicit Knowledge by Harry Collins is an excellent insight into how information behaves in both people and machines that shaped a lot of new thinking in the testing arena, and it’s a social science book.

You don’t have to go right back to the wires of theory, of course, but the reading’s there if you want it and it interests you. There’s all kinds of ways to look at testing. I sometimes watch Adam Savage videos and see the parallels of testing in his work. Sometimes I’ll test an open source project to experience new contexts and challenges.


Coding is a really useful thing to be able to do. You can build your own tools, for one thing. It’s also useful to understand principles of coding so that you can spot probable causes of problems, and to break down how parts of a system work so that you can properly analyse them.

However, it’s also very resistant to learning unless you’re into it. If you love problem solving, logic, syntax and have a particular resistance to (or questionable enjoyment of) emotional distress then I recommend coding. You don’t have to be fantastic at it, either, even simple coding concepts are useful in building mental models of systems. Once you have the principles you can apply them to any new language or tool just by becoming familiar with new syntax.

Hopefully some of that is useful. I always answer this question slightly differently each time so here’s some further reading on similar questions I threw my hat into that might be helpful: