You'll be surprised to know how broad the testing industry is. Of course, we can break it down into manual and automation testers/test engineers. But there are also different types of test classifications such as functional testing, regression testing, performance testing, accessibility testing, localization testing, etc. For automation you have a lot of frameworks and approaches you can explore as well.
Fail to plan and you plan to fail
We don't test all the time, or at least literally. For a successful test to happen, we should have a good test plan, design, and process in place to ensure everything will run smoothly when we do that actual testing work (which is the test execution phase). Examples:
- Test Plan and Strategy. This is an important process especially when you're testing a project for the first time. It gives you a space to think about what and how to test the product overall. Some topics covered are testing timeline, testing type and approaches, defect management process, entry and exit criteria, etc.
- Test Data Management. It's important you come up with a way to manage your test data as it will greatly help the productivity of your team by reducing delays/blockers during test execution.
Communication is the key
As a tester, we'll be communicating with many people but it's mainly the developers and the product owner/business analysts.
- It's important that you're able to explain the issue in a way that a non-technical and a technical person can understand.
- Some people can get sensitive when you tell them that their work is wrong so you have to know how to approach them and tell them in a way it won't create a conflict.
- There are times you have to report a complex bug. You have to know how to break it down so that it's easy to follow.
- You should be able to ask effective questions if something is not clear to you.
In relation to the last point... Never assume anything
It's dangerous to always settle with assumptions especially when analyzing a requirement/user story. It's rare that a user story covers all the specific details we need so you must always make sure to clear out any possible confusions. It could be as simple like:
User story description: Display the following text and links in the Campaign section: "Sign up now and get 50% off. T&Cs apply." Where the "T&Cs apply" links to www.somelinkscom URL.
A minor question that still has to be cleared out: Will the link open in the same tab or a new tab?
Domain knowledge is also important
Apart from the technical knowledge on how to approach the testing, one more way we can add value is to also understand the industry of the product we are testing.
In my first project, our client is a healthcare company in the US. We typically see the terms "Medicare", "Medicaid", "ICD-10", and "Prior Authorization" in the user stories. Without understanding the basics of American healthcare, it would've been difficult for us to grasp what the user story is trying to achieve.
Automation and process improvements
I'm not just talking about test automation in this sense but also in all parts of the testing process. We have a lot of tedious things that we do manually. It could be creating the test cases and uploading them to a test management tool or creating reports and metrics. We are forced to look at spreadsheets, Jira tickets, and other tedious things that break our souls. These things, although have their own importance, take away our time in actually testing the software. Learning how to automate this stuff and being able to streamline the parts of the testing process is a must in ensuring we can release a reliable product as early as we can.
There's still a lot to cover from here
Software testing is an essential part of the software development process. We give confidence to the organization that the software being released is reliable for the end user. There's also a wide range of areas to get into and a lot of interesting skills to learn.
I've given an overview of what software testing is, a glimpse into some of our responsibilities, and what skills can provide more value to your testing team. I hope this shed some light on what a career in software testing looks like.