Hi, my name is Jack and I’ve been working here at Bluefruit as a Software Test Engineer for the better part of a year.
This is a quick synopsis of what a day as a Software Test Engineer entails, and what kind of skills are helpful if you are planning to work as a Software Test Engineer. Applying for this role at Bluefruit has been one of the best decisions in my life. When I graduated from Bristol University with a degree in Zoology, I had no idea that 6 months later I would be working for a software development company, especially one that is as great a place to work at as Bluefruit. Having the right mindset and approach to work is what we look for in testers at Bluefruit which is why we have people from so many different backgrounds from teachers, to photography students, to Zoological “experts” like me.
If you are logical, organised and have a thirst for knowledge there are opportunities for you at Bluefruit.
I tend to get in to work as early as possible so that I can read some industry related blogs and respond to any emails that have snuck in overnight before anyone comes in with something shiny for me to break (in other words, testing). By the time I’ve finished my morning rituals, the developers start to arrive, coffee in hand and ready to start coding.
On a typical day, you would see me testing what the developers create, but I don’t tend to have many “typical” days, so being flexible is key. Instead, I may be needed in a client meeting to discuss the details for an exciting new project. Testers typically go to these meetings to ensure there is a focus on testing, but also because it is key for testers to have a working knowledge of all areas of the project, so attending these meetings is vital. We also have regular company meetings, discussing strategies for making the work we do more effective.
During my day-to-day work I actually test a lot. I make sure that the work that is being completed by the devs matches the client’s wants and needs; there are various techniques for doing that which you will need to master to become an excellent tester:
I use acceptance tests to ensure that the software’s behaviour is correct. I write these tests earlier in the development process, as they give the developer something more tangible to work from and gives me something to test the behaviour of the software against.
I will also do some exploratory break testing on the features implemented by developers, trying things that the dev might not have expected. This leads to me finding quirks in the system that I must feedback to the relevant developer so we can find a fix. You have to deliver this news carefully to the dev in question, as they treat their code like their kin, so testers must have great communication skills. I’ve found ways to navigate past lock screens by rotating knobs for longer than expected or reset website logins by creating my own POST requests.
If the bug I found is some small fix, the change is quickly made and then I retest the software, paying attention to the area that misbehaved last time. If the fix isn’t so quick, the developers will implement debugging techniques and often timebox an amount of time to try and find the issue, so they don’t hold up progress in other areas. If our work cycle has ended before the developer has found the issue, and the software needs to be developed, I will raise a defect that clearly communicates the issues we are facing and this will be placed into the backlog of work for the clients to prioritise.
The work we do is challenging, so having proper breaks where we down tools is important. People do lots of different things, some play pool or Go, some hit the gym, others go out for team lunches. In our office recently there have been some intense Smash Bros tournaments. People are always willing to play games at lunch, and there is even a dedicated group who stay late some nights to play games!