This guide will take you through the In’s and outs of software testing. If you plan to make a career in software testing, this is a MUST READ!
In this lesson, you will learn-
- Skills required to become a Software Tester
- How to Become Software Tester
- Certification Exams:
We will discuss the Technical and Non-Technical required to become a Software Tester
Following skills are essential to becoming a good software tester. Compare your skill set against the following checklist to determine whether Software Testing is a reality for you-
- Analytical skills: A good software tester should have sharp analytical skills. Analytical skills will help break up a complex software system into smaller units to gain a better understanding and create test cases.
- Communication skill: A good software tester must have good verbal and written communication skill. Testing artifacts (like test cases/plans, test strategies, bug reports, etc.) created by the software tester should be easy to read and comprehend. Dealing with developers (in the event of bugs or any other issue) will require a shade of discreetness and diplomacy.
- Time Management & Organization Skills: Testing at times could be a demanding job especially during the release of code. A software tester must efficiently manage workload, have high productivity, exhibit optimal time management, and organization skills
- Great Attitude: To be a good software tester you must have a GREAT attitude. An attitude to ‘test to break’, detail orientation, willingness to learn and suggest process improvements. In the software industry, technologies evolve with an overwhelming speed, and a good software tester should upgrade his/her technical skills with the changing technologies. Your attitude must reflect a certain degree of independence where you take ownership of the task allocated and complete it without much direct supervision.
- Passion: To Excel in any profession or job, one must have a significant degree of the passion for it. A software tester must have a passion for his / her field. BUT how do you determine whether you have a passion for software testing if you have never tested before? Simple TRY it out and if software testing does not excite you switch to something else that holds your interest.
This list is long, so please bear with us
- Basic knowledge of Database/ SQL: Software Systems have a large amount of data in the background. This data is stored in different types of databases like Oracle, MySQL, etc. in the backend. So, there will be situations when this data needs to be validated. In that case, simple/complex SQL queries can be used to check whether proper data is stored in the backend databases.
- Basic knowledge of Linux commands: Most of the software applications like Web-Services, Databases, Application Servers are deployed on Linux machines.So it is crucial for testers to have knowledge about Linux commands.
- Knowledge and hands-on experience of a Test Management Tool:Test Management is an important aspect of Software testing. Without proper test management techniques, software testing process will fail. Test management is nothing but managing your testing related artifacts. For example Jira, xRay, TestLink etc.
- Knowledge and hands-on experience of any Defect Tracking tool- Defect Tracking and Defect life cycle are key aspects of software testing. It is extremely critical to managing defects properly and track them in a systematic manner. Defect tracking becomes necessary because the entire team should know about the defect including managers, developers, and testers. Several tools are used to lock defects including QC, Bugzilla, Jira, etc.
There is also a lot of scope for performance testing tools because applications need to be tested for their performance which is a part of non-functional testing.
That’s it to technical knowledge. Please note you do not need ALL the technical skills listed above. The technical skill sets required vary with the Job Role and company processes.
Academic background of a software tester should be in Computer Science.
A BSc/Msc in Computers, will land you a job quickly.
If you do not hold any of these degrees, then you must complete a software testing certification like ISTQB CTFL which help you learn Software Development/ Test Life Cycle and other testing methodologies.
On any typical work day, you will be busy understanding requirement documents, creating test cases, executing test cases, reporting and re-testing bugs, attending review meetings and other team building activities.
Your career progression as a software tester (QA Analyst) in typical CMMI level 5 company will look like following but will vary from company to company
- QA Tester/Engineer (Fresher)
- Sr. Tester/Engineer (2-3 years’ experience)
- QA Team Lead (5-6 years’ experience)
- Test Manager (8-11 years’ experience)
- Senior Test Manager (14+ experience)
Once you have got your hand dirty in manual testing, you can pursue following specializations
- Automation Testing: As an Automation Test Engineer, you will be responsible for automating manual test case execution which otherwise could be time-consuming. Tools used IBM Rational Robot, Silk performer, and QTP
- Performance Testing: As a performance test engineer, you will be responsible for checking application responsiveness (time is taken to load, maximum load application can handle), etc. Tools used WEBLoad, Loadrunner.
- Business Analyst: A major advantages Testers have over Developers is that they have an end to end business knowledge. An obvious career progression for testers is to become a Business Analyst. As a Business Analyst, you will be responsible for analyzing and assessing your company’s business model and workflows. As a BA, you will intergrate these models and workflows with technology.
For a complete newbie, here is our suggested approach to learning Software Testing
You start with learning Basic principles of Software Testing. Once done you apply for freelancing jobs. This will help you gain practical knowledge and will fortify the testing concepts you have learned.
Next, you proceed to Selenium – Automation tool, then JMeter – Performance Testing tool and finally TestLink – Test Management Tool. All the while you are learning, we suggest you apply for freelancing jobs (apart from other benefits you will make some moolah too!).
Once you are through with all the tools, you may consider taking a certification. We recommend ISTQB.
ISTQB Foundation level is the basic certification in Testing field.
It is not mandatory, but it will help increase your chances of getting the job. Most of the companies have this criterion.
A software tester with ISTQB cleared will be given more priority as compared to others.
After this, when you apply for permanent jobs in big corporations you will have many skills to offer as well some practical freelancing experience which may be of value and will increase your chances of being selected.