I am a software tester and yes, software testing is a real profession and a lucrative one depending on your expertise. Although this might not be my dream job (still dreaming of becoming a rock star someday), I have learned to accept it and now I’m passionate about it.
Probably, I’m not the only one thinking about this, but if you’re a Computer Science graduate, it’s only natural that you want to be a developer. I might be dozing off most of the time during my university days but I remembered seeing only 2 slides of the lecture dedicated to Quality Assurance. I haven’t heard anyone from my batchmates aspiring to be a software tester. Everyone wants to be a Java or Web developer back then. I had the same idea too.
Come my first job; and guess what, I was assigned to a testing capability. Coming out fresh from university, especially if you’re not one of the A+ graduates, most of the time you really don’t have much choice on your career direction. That’s what happened to me. I asked my manager to transfer me to a Java capability but as per the company, there’s a business need for QAs and Testers and that there are just too many developers wanting to do Java. He bargained to give me a test automation role and that bargain was actually one of the best bargains I accepted.
What are Testing, Quality Assurance and Quality Control?
There are a lot of definitions about QA and Testing but I’ll take the (Certified Software Tester) CSTE definition where I am certified at. There are two quality methods — preventive and detective. Quality Assurance (QA) does preventive methods while Quality Control (QC) does detective methods.
QA establishes and evaluates the processes that produce products. This includes methodologies, processes and standards from which quality is measured and improved upon.
QC focuses on activities that identify defects in the products produced. It is possible for QC to exist without QA.
Testing is a Quality Control activity. Therefore, software testing is the process of identifying defects in the application and software produced or developed.
The diagram below explains the relationship between the three.
Software Testing Specializations
Four of the most common specializations are the following:
- Manual Testing – Testing of applications and software through manual user interactions.
- Automation Testing – Testing of applications and software using test automation tools . This will require some development background to do complex test scripts.
- Performance Testing – Testing of applications’ and software’s performance using tools under certain application conditions and specifications.
- Security Testing – Testing of the applications’ and software’s security and vulnerability using penetration testing tools. This employs ethical hacking.
I hope I was able to establish that the software testing profession is real and for a more concrete evidence, we now go to the salary of a software tester. Using Payscale, below are the median salary per specialization here in Canada:
- Manual Tester – C$67,407
- Automation Tester – C$73,774
- Performance Tester – C$80,000
- Security Tester – C$81,347
Mainly, university students, at least in the institution I went to, doesn’t really give students exposure to this type of career. I mean, this could have been an elective subject by itself. Probably it’s because of the awareness level, small number of experts and limited resources 10-15 years ago were the main culprits for lack of interest. Now, I believe that the testing career has a long way to go and that newly grads or other career shifters should explore this.
So yeah, I have a testing job and it’s real. 😀