I wrote not too long ago about my “day job” but didn’t really go into the details of exactly what it is that I do. Most of the time, I tell people I’m a Software Developer, because that’s what I was for awhile, how I got into my current work, and doesn’t take any explanation – everyone knows what a Software Developer is.
The same story isn’t true for Quality Engineers though. Oftentimes, people think that means I do quality assurance on physical things, like machinery or printers or computers. Other times, people just have no idea what I’m talking about.
So what does a Software Quality Engineer do? A lot, actually. But let’s start with the basics. Software QE’s or QA’s run tests on software applications to ensure there are little to no bugs, it functions properly, and that it is functional for the end-user (the people the application is made for).
A QE just starting out usually does what we call “manual testing.” This means they physically click around on the software application and make sure it meets all of the prescribed requirements. Each test they perform will check a different functionality of the application.
For instance, they might test signing up for a new account. During that process, they will make sure all of the fields that are supposed to be present, are there – such as “name,” “email,” etc.). That would be considered one test in the signup test suite.
They might also check that the requirements for things such as passwords and dates are correct – such as minimum character counts, etc. That would be another test in the signup test suite.
Manual QA’s have to be very detail-oriented and able to catch small nuances, changes, and bugs. They will often be required to not only perform the tests, but write the test cases and test suites as well, usually based off of requirements or “Acceptance Criteria” written by the Project Manager, Product/Developer Team Lead, developer working on the product, etc.
Once you have been doing some manual QA for awhile, OR if you are a software developer moving into Software QA, you will probably start writing automated tests. This means writing scripts or code that can be run automatically or at the “push of a button” to test certain products or systems within the software. Some automated tests, known as end-to-end tests, will test the entire product from, well, end to end.
I was a software developer who moved into QA by helping to build up a QA Team at a startup where they didn’t have a QA Team yet but it was needed. Because of this, I already had experience writing code, and writing automated tests for that code. This put me at an advantage coming into QA in my next company because I came in as an automated tester.
I made a big career change from teaching elementary school to tech about 6 years ago and will follow this up with a post about that transition. If you’d like to know more about Software QA Testing, types of testing, what I do as a Quality Engineering Lead, or anything else tech related, let me know!