When I was still in college taking up my Information Technology course, our curriculum is mostly centered on programming. We didn't really have a major back but most of the major subjects are about learning C, Java, HTML, CSS, Javascript, Python, game development, mobile development, etc. So yeah, as a student the only career track that I know about this field is being a software developer. No one enrolls in an IT course and says "I want to be a software tester when I graduate!". I don't even know that such a career exists.
For this post, I'm just going to share high-level detail about what we do in software testing.
In a nutshell, software testing is like being in a courtroom
I get this mental image in my head sometimes whenever I do my work so I'll just share this. Forgive me for my poor analogy because I'm not familiar with terms in the court.
Imagine that you're in a court room where the software is the defendant and the testers are the prosecution. Our job is to present evidence against the defendant to the judge and jury which can be the project teams, product owners, or developers. Sometimes the developers can be the defense attorney ("But it works on my machine!").
However, there's a small difference between when a person and software are put on trial: a person is innocent until proven guilty, while the software is guilty until proven innocent.
This means that when I receive the software or a feature for testing, I already assume that it has bugs and my tests will prove that. If I ran all my tests and I did not spot any issues, then I can declare that the software is innocent and provide the sign-off. If my tests fail then the software is guilty and I just wait until the next trial.
The trial can be short or it can be long and complex. It depends on what's being put into trial, and how much effort I need to put into proving the issue, or sometimes it could be that it's not just a black-and-white type of issue and needs several rounds to conclude.