Software Testing

Job Pressure
Academic Pressure
1-2 L
Early Salary
4-5 L
Mid Level Salary
8-9 L
Senior Salary
Software tester conduct trials of newly developed software for employers ranging from software publishers and video game developers to financial institutions and medical research companies. Software tester work with software development teams to detect bugs and performance issues before a product reaches the consumer. They develop and run software test plans, interact with design teams and submit detailed reports of their findings. They may also provide technical assistance to the software design team and make hardware repairs and updates as needed. Software testers are sometimes referred to as  testing technicians or quality assurance technicians. Those who perform more complex diagnostic and problem-solving functions are known as quality assurance analysts, supervisors or engineers. Software testing technicians may work for software publishers or testing technology companies as full-time staff, evaluating many products at once, or as independent contractors hired to work on a single project.

What do they do?

Software test engineers are often called 'QA engineers' because they provide quality assurance for computer applications or system software. Test engineers use preexisting testing tools or design new tools to ensure that programs work before they are used by internal or external clients. Test engineers are generally involved in all stages of the development of a program.

During the design phase of a project, they may bring knowledge gained by testing previous programs to help new releases be compatible with older versions. This allows for a smooth transition from the program's testing to use phases. During the development phase, they may test parts of programs, seeking to provide solutions for any problems raised as the project is coded.

Once a project moves out of the development phase, they test it to ensure that it meets functional and performance specifications and is compatible with all aspects of existing operating systems, computer hardware and network components. They establish quality standards, design testing methodologies and often determine when a program is ready for release.

When systems deployed into the field fail to perform, test engineers work as part of support teams that work to fix problems. They may also document problems and prepare reports about how to troubleshoot and fix issues in the field. This part of the job may require travel to a client's site, and will involve the ability to work creatively under pressure in order to resolve issues.

Test engineers frequently work overtime during testing cycles and as when a program is about to be released. In this position, to find and explain software bugs, you will need excellent analytical and communications skills. You should also be highly detail-oriented, have top-notch technical skills and the ability to work collaboratively to solve problems. To keep current with technical developments in the field, most testing engineers read technical journals and attend conferences or web-based seminars.

Typical day in the life of a Software Testing

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.

Pros about this career

  • High salary
  • Job growth
  • Variety of job possibilities

Cons about this career

  • Potential for high-stress work environment at times
  • Long work hours
  • Continuously changing technologies make it necessary to stay on top of new developments
  • Continuing education required to stay abreast of new technologies

Skills needed

  • Technical
  • Analytical
  • Good verbal and written communication
  • Good domain knowledge
  • Passion
  • Attitude

How do I get there

Academic background of a software tester should be in Computer Science. A BTech/ B.E. , MCA , BCA , BSc- Computers will land you a job easily. 

If you do not hold any of these degrees than you must complete a software testing certification like ISTQB and CSTE which help you learn Software Development/ Test Life Cycle and other testing methodologies.

One can start with manual testing and then get into automation testing. 

Once you have got yours 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 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 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 to analyze and assess your company's business model and work flows ,and especially how they integration with technology . Based on your observation you will suggest and drive process improvements.