Gamers often have a familiar experience: going up a hill in the game, you get to the top, and there is a house there. Whilst aiming for the doorway, you accidentally hit the shift key. After a short glitch, the character keeps walking, but instead of being able to walk into the house, the character seems to walk against an invisible barrier, and cannot enter the house. The tutorial has explained that you need to enter the house to get the key so that you can complete the level.
You get frustrated, bang the mouse on the table, bang on the keyboard, “rage quit” the game and send an angry message to the company that sold you the game.
The problem? The tester missed that particular quirk. Otherwise known as Quality Assurance technicians, testers are the people who break software products for a living.
This article attempts to explain the role of tester, found within the IT industry, which has diversified and specialized exponentially in the last two decades. We have some comments and insider information from our tame software engineer, Andy the Apex Coder, and we aim to help the lay person, who may feel overwhelmed and confused by the burgeoning job titles in IT, to understand this one a little better.
Andy the Apex Coder has been in the IT industry for the last thirty years, has seen it change and evolve, and has worked in many roles, gaining a broad base of knowledge and experience.
“Testers have to be the most disappointed bunch of people in the IT industry,” he explains. “They think the job is about playing games for a living. After jumping one ramp four hundred times in different ways to see if it breaks the game, they start hoping they can just get to play past that point.”
Games are not the only media that use testers in production. All programs go through a testing cycle, comprising four stages. Once the product has been tested as thoroughly as possible in-house, it is then released into the world for beta testing by real people. This is the last stage. After a period of time, the beta version of the program will have been fixed and updated, and then the official product is released to the market.
Testers are expected to imagine the myriad ways in which the general public can cause a program to malfunction, glitch or crash. They also test every feature and every link to ensure that they work, and in the way they were intended to.
Independent software developers and engineers will often do their own software testing to ensure functionality. This is for small-scale projects. Companies which produce large, popular software products, such as games for online casinos, massive multiplayer online roleplay games (MMORPGs), payroll and accounting applications, or social media platforms, will employ armies of testers to ensure the software product is near-perfect before releasing the beta version into the world.
For larger companies, a QA role may also involve integrating and testing data backup services.
The position tended to sit on the lower end of the IT jobs payscale, having traditionally been considered almost a semi-skilled IT position. However, with the evolution of the tech industry, making all kinds of gadgets and appliances “smarter”, and able to connect to an online system, there is a wider call for more specialized testers. This job description has also evolved from simply running through a checklist of actions, to becoming specialists in testing design for software products.
Although testers are considered low down within the ranks of the computer deities, having only indirect power over the people using software products, they can still affect thousands of people or more, especially if they miss something out. As we mentioned before, it’s not only games that require testers, but also other kinds of software in every day appliances and machinery like vehicles.
With the imminent arrival of self-driving cars reliant on software for guidance and control, the software industry will come to literally hold people’s lives in their hands.
“I wouldn’t want to be in the testing department of Tesla when that braking problem was discovered,” says Andy. “Things can get pretty intense when a glitch like that slips through the cracks. But luckily they found it before anyone got hurt.”
The life of a software tester is ultimately a tension between the developers, who make the software, and the tester, who tries to find ways to break it. The pass the product back and forth, gradually making it stronger and more resilient. This entails a certain amount of repetition, though, and while quality assurance testing does not require a lot of experience or skill at certain levels, it does use up vast reserves of perseverance and tolerance, as the tester repeats the same action again and again and again and again…