9 September is International Software Tester Day, which commemorates the discovery of the first official computer defect. The origins of the most famous incident date back to 1947, when the team in charge of working on Harvard University’s Mark II supercomputer shared the first report of an error, caused by nothing less than what is known in the computer world as a “bug”.
The supercomputer had a failure in an electromagnetic relay and, when the reason was investigated, it was detected that a small and simple moth had slipped into the relay, causing it to stay open and not make contact properly.
Grace Murray Hopper, a leading computer scientist, taped the moth into the workbook, referring to it as a “bug” to describe the cause of the problem, and the term “bug” was born to refer to an error or failure in the software or system which triggers an unexpected result.
This story is in part the origin of a new area of IT that over time has taken on more weight and has evolved into what is today known as “software testing”.
If an application were launched without being tested, it could register a malfunction, with the resulting negative impact on users and the loss of money, time and image for the company that developed it. For this reason, the need for testing to ensure the quality of systems and software is becoming increasingly important.
What is the mission of the Tester?
Testers are the professionals responsible for ensuring the quality of the software, making sure that everything works properly as defined and that the defects do not affect the user. Nowadays, software development is not conceived without testing, since this will be the main instrument for ensuring the quality of the software.
If an online sales application does not work properly, you will lose visits, sales, business and, of course, you will not capture customers.
Human error in the development causes a defect in the software that, if executed, will lead to a failure in the system. But failures in systems can also sometimes be generated by external agents or environmental conditions (for example, the moth that prevented the relay contact).
Through testing, the Tester locates and identifies failures caused by defects. The action of identifying the cause of the defect is called “Debugging” and, in general, it is the developer who is responsible for this task and correcting the defect.
Tester Qualities and Skills
Having clarified these small technicalities, what qualities and skills must a person who performs testing have? From our point of view, the main and most important should be:
• Curiosity: A good tester must have broad knowledge of what he is going to test, but he must also be curious and be able to determine in each situation what the problem is, for example, whether he should execute one button or another, click in a certain place, etc.
• Good observation skills: A good tester tends to analyse details that others do not see and will give importance to things that others will not.
• Lateral thinking or creative reasoning: This amounts to solving problems by looking for alternative ways and, sometimes, in an imaginative or creative way.
• Good communication skills: Since the ultimate aim of the tester is to report and make known the defects found, i.e. “incidents”, good oral and written communication skills are essential in order to be able to convey specific and valuable ideas.
• Empathy or “social charm”: When it comes to reporting, tactfulness is fundamental. If a tester works side by side with the development team, he has to make it very clear that he is in the same boat as them, and that both parties have the same objective, i.e. the quality of the software.
Roles and profiles within Testing
There are different roles and profiles involved in the testing process. The presence of these types of roles will depend on the project and the organisation, for example:
a) QA Manager: responsible for controlling and managing the tests.
b) QA Analyst: with a profile similar to an analyst and who is usually in charge of designing the tests.
c) Tester: a person in charge of executing test cases.
d) Professionals with more technical profiles, in charge of automating tests or performance tests.
As we have seen, Testing profiles are key for organisations, preventing and solving software errors that can have significant consequences for both users and companies if they are not detected. To feed your curiosity (one of your essential qualities), here is a list of the most relevant software errors that have been recorded in recent years.
Manager, analyst, developer, etc., the tester is not the “enemy” that evaluates your work, but rather the ally that strives to achieve a common objective: the quality of the software. Therefore, to all the professionals involved in the software quality and testing processes … congratulations on the work you do every day!