Why Choosing Software Testing as your Career?

Rodrigo Alvarez
Globant
Published in
8 min readFeb 21, 2022

Written By Diana Liseth Cadena Moreno, Rodrigo Alvarez & Hilder Ospina Valencia

Software testing is a career that has been developing and maturing. Nowadays, there are many kinds of tests, branches, techniques, areas, scopes, and approaches, which, in turn, make this a complex world with many paths to choose from.

If you are a curious person and you do like to analyze in detail, improve your skills in different fields and technologies, work with people from different countries, cultures, and the possibility to travel around the world, for sure this race is for you.

In this article, we will explain what Software Testing is, its evolution, and the skills you will develop.

History of testing

Since the beginning of human history, every need has always been supplied by a solution. It usually comes with some type of test that validates if the solution fully solves this necessity, resulting in a product that subsequently becomes the initiative for a new solution to a more complex need.

Thomas Alva Edison, the creator of the incandescent light bulb, had a particular necessity, and he developed a way to make a filament, which would achieve incandescence without melting. To accomplish this, he had to perform more than 1,000 tests with filaments of different materials.

Once the testing was formalized, it was also identified that in every development process there were errors, defects, and failures.

Origin of the term Bug

In 1947, when the Mark II was being developed, a defect in the analytical operations was found after running a test cycle on the computer. This defect originated from an electromagnetic relay that remained open, and it occurred due to a moth (Bug). Engineers taped the bug on logs, indicating that this was the first actual event where a bug was found.

The Harvard Mark II was an electromechanical computer built at Harvard University under the direction of Howard Aiken and was finished in 1947. It was financed by the United States Navy.

First computer bug https://www.nationalgeographic.org/thisday/sep9/worlds-first-computer-bug/

From this point, a greater awareness of the importance of testing in any process begins to be generated and in the same way, the testing process starts to formalize and mature, becoming more structured, more organized, and more focused.

But some highly relevant failed projects drove the development of this professional career. Here are some examples:

  1. April 1986, a model F — 18 fighter jet executing a maneuvering test had an uncontrolled spin. It was the result of a code flaw in an “If-then” statement, which did not have an “else” fault control.
  2. In 1988, Bank of America invested 23 million dollars in software, called MasterNet, which did accounting and reporting of trusts, but for the software to go into production, 60 million more dollars had to be invested, generating a very high cost overrun, causing the bank to cancel this project.

Now that we are on track with the testing history and the origins of a bug, we have enough information to jump into What is software testing?

Let’s explore some official definitions:

ISTQB (https://glossary.istqb.org/)

  • Testing is the process consisting of all lifecycle activities, both static and dynamic, concerned with planning, preparation, and evaluation of a component or system and related work products to determine that they satisfy specified requirements, to demonstrate that they are fit for purpose, and to detect defects.

IBM (https://www.ibm.com/topics/software-testing)

  • Software testing is the process of evaluating and verifying that a software product or application does what it is supposed to do. The benefits of testing include preventing bugs, reducing development costs, and improving performance.

There are many official and non-official definitions of testing, based on the set of different activities that should be performed in favor of quality. We consider it as a deep and complex process focused on increasing the quality of any software product, an app, a website, a service, etc.

The increase of quality is achieved by avoiding the appearance of as many bugs as possible, discovering the gaps among the product requirements, ensuring stability, reducing costs of the project, and increasing the user experience satisfaction and the profitability of our clients.

Although when you are involved in this role, you may face some myths, let’s start discussing them.

Myths about software testing

  • The software testing is just executing tests and finding bugs

As we have seen since its definition, software testing is a process that requires a clear vision, planning, design, execution, feedback, and closure.

We cannot say that it’s a static process, a single task like running a test and finding a bug.

  • Not required at the beginning of the project, the testing process can start after the software development process

The conventional cascade model allows companies to start the software testing process, but new models have evolved to such an extent that testing experts are now part of the product planning and design phase. This allows the entire team to be in tune with the quality approach of the product to develop.

The earlier in a project you start talking about testing, the more likely it is to achieve high-quality standards.

  • Increase project costs.

Contrary to popular belief, the testing process can, in the long term, generate great savings for the company that invests in it. As some bugs that go into production can generate high correction costs, new versions can imply more work and loss of trust on the part of users.

There are tons of reasons why they are called myths; bear the myths and move forward. Let’s jump to the must and nice to have skills, so you will have a guide to follow:

What skills will I develop

A tester should have technical and also non-technical skills as in any other role, let’s talk about it:

Non-technical: analytical, communication, time management, passion. It would be nice to have a good English level because it would be possible to work on international projects alongside great/famous companies and industries.

Technical:

  • Software development life cycle, types, and levels of testing, etc
  • Basic Knowledge of Data Bases (the most basic queries).
  • How to install an app, know your local settings, terminal commands, git commands, etc.
  • Testing Management tools like Jira, Test Rail, Zephyr, Mantis, Xray, TFS, etc.
  • Some basic knowledge of Automation to support and complement the strategy in this area.

Different approaches:

  • Functional Test: We can test Web or Mobile Apps to verify whether a system is working as expected or not and can be accepted by end-users. The execution could be on different browsers, OS, or any type of device in the scope.
  • Non-Functional Test: This is related to system attributes. How well the system behaves under extreme circumstances like stress, performance, and other non-functional testing like accessibility, usability, reliability, security, etc, avoid vulnerabilities, late response time, and some other usage issues.

Let’s go a little deeper on some skills:

Web & Mobile: It is the process of running a test against a webpage or mobile application. The idea is to ensure that its functionality and usability meet the requirements and that the application is ready for launch.

Performance: It is a software testing process used for testing the speed, response time, stability, scalability, and resource usage of a software application under a particular workload.

Security: It is a type of Software Testing that uncovers vulnerabilities, threats, risks in a software application and prevents malicious attacks from intruders. The purpose of Security Tests is to identify all possible loopholes and weaknesses of the software system, which might result in: a loss of information, revenue, and reputation at the hands of the employees or outsiders of the Organization.

Automation: It is the process of performing software testing activities with little or no human interaction to achieve greater speed and efficiency. Manual and automation testers are roles to support each other, e.g.: Manual tester gives their point of view whether a case is a candidate to automate or not. Automation Tester can help the Manual team run a regression to avoid human error and monotonous tasks.

Moving forward, how we can grow in this career as a Software tester.

Being a quality engineer, you would ask yourself: how can I grow in this professional career?. Growing in the career means a lot of experience in testing; Experience with functional testing, non-functional testing, Accessibility testing, Acceptance testing, Black box testing, End-to-end testing, Integration testing, to mention some. The list can look overwhelming, but no worries, not every person has to know everything, same here for testing, you won’t need to know everything to grow in this career but you will learn what is a must and what is nice to have skill and based on that you will learn.

Defining how long a person must stay in determining seniority won’t help because every person is a different universe, so I will try to explain the levels you may have to cross in this career. Those can change from company to company but will try to explain the most common in the industry.

Starting as a fresher even when you have not finished college would help you to learn the concepts at the early stage of your career. You will be known as a trainee (or an intern), and this opportunity as an employee in training is the perfect time to learn technical knowledge about testing, test design, test execution, bug life cycle, and other fundamental concepts that sooner or later you will have to practice.

After finishing college, you can start as a junior quality engineer, take advantage of experience and knowledge gained as a trainee and optimize and improve your skills in every project you are part of, also a very nice suggestion is to start with some important certifications in this career, for example, “ISTQB Foundation Level Certification” will allow you to understand the common testing vocabulary teams use daily and for sure will leverage this learning to your experience, taking you to the next level. As a middle-level tester you will perform different types of testing, functional, nonfunctional, analyze requirements, design test plans, all these under different project management methodologies as scrum, kanban, waterfall, etc. One skill nice to have and learn at this point will be Automation, even if this path has its own career route. Continuing the scale you will become Senior, at this point you will be able to look at the bigger picture, you will be requested to start leading small teams, design testing strategies, understanding the different frameworks, your self-improvement is the key, projects will expect a problem-solver person, also you can start mentoring.

Then with time and experience, you will become an expert and you will have to decide whether to go for management or specialize in some specific technical skills. Responsibilities increase with more experience and a higher knowledge level. You will be asked to lead teams, mentor your juniors, be part of the management team where you can take part in strategic decisions, a person who contributes solutions to your project and cross projects too.

Once you have gone through all or part of the above, you would have gained the technical knowledge required for doing any type of testing such as mobile & web apps, desktop apps, accessibility, automation & related tools, defect tracking & test management tools, etc. along with the essential soft skills like leadership, communication, active listening, creativity, positivity, persuasion skills, etc. Nowadays, other skills like adaptability to change, effective collaboration, innovation, and problem-solving are equally important.

The career opportunities in this role are not the same for everyone. Every person will have a different learning curve and respective skillset, and the growth in the role will depend basically on your performance. From our side, we can rely a bit on our luck also (project, leader, opportunities, company, etc).

To conclude

If you want to challenge yourself by learning new things day by day, this is an excellent role for you to continue writing this story from your side and share your experience too. Happy journey!

--

--