Software testing as a careerCigniti Technologies
A Software Testing career involves working towards the assurance of software quality. More than 40% of the time and effort of software development is spent in various forms of testing involving various people like developers, testers, users, etc. Testers have to assure that software works as intended (meets stated or intended requirements) and also ensure that there are no unintended consequences of usage of the software. For example, when testing online banking software, the tester has to ensure that the software allows you to check your account, transfer money, etc. which are the stated user requirements. Additionally, the tester has to ensure that the software is user-friendly and does not confuse the user, is secure and cannot be hacked into and performs well under pressure when thousands of people check their accounts at the same time.
There are three important aspects to becoming an expert software tester
a. Software Testing Techniques: Understanding the fundamental techniques of software testing and becoming good at these techniques. Basics of software testing can be learnt through certifications like ISTQB (International Software Testing Qualifications Board) or CSTE (Certified Software Tester). And implementing these techniques by executing various types of software testing on the job. Testers need to review code to understand the workflow of software and identify defects even before the entire system is built. This is called white box testing. Testers also perform black box testing which is working with functional software to identify defects. Apart from these, testers also check non-functional aspects like performance, security, usability, etc.
b. Software Testing Tools: Learning to use different software testing tools for various purposes like Defect Tracking, Test Management, Test Automation, Performance Testing, Security Testing, etc. There are vendor supported tools like HP Quick Test Professional, HP Load Runner, IBM Rational Robot, Ranorex, as well as Open Source tools like Selenium, jMeter, Bugzilla, etc. A tester should be able to use multiple tools across various areas since technology is changing fast but the fundamentals of these varied tools and their features remain the same. Testers need to be able to write code to implement these tools. Software testing requires a deep technical frame of mind to identify and provide solutions to software defects.
c. Domain: Focusing on and learning a domain. Domains can be vertical domains like Banking, Insurance, Manufacturing, or horizontal domains that are used across multiple industries like Customer Relationship Management, Supply Chain Management, etc. For example, Understanding of banking processes is necessary to test Banking software. Similarly there are testers who bring not only technical knowledge of tools and technology but also domain knowledge to the table.
When it comes to qualifications, software testers can come from two distinct streams.
a. Testers who focus on software testing tools and techniques with a Computer Science or engineering background.
b. Testers who have made the transition from a domain, e.g. a banker who has moved to testing and brings a deep understanding of the banking domain. From a qualifications perspective, Cigniti normally hires people with an Engineering background (preferably Computer Science or MCA) or an MBA with functional or domain expertise.
The key skills that we look for in testers at Cigniti are
a. Basic Programming Skills: Testers are required to review programs or use a programing language to use a testing tool and this is a basic prerequisite.
b. Diligence: Testing is all about diligence. Testers need to be methodical, diligent and focused while at work.
c. Passion: Testers have to be passionate about quality. Some parts of the work are repetitive and unless it is backed with passion and ability to see the big picture, the job can become monotonous.
d. Innovation: It is important for testers to figure out how to test better and faster or testing will become a never-ending job. Testers have limited amount of time before the software release to identify as many defects as possible and this requires creativity and innovation. e. Superior Communication Skills – Testing is all about communication; from understanding requirements, designing and documenting test case, identifying and communicating defects to clients and f. Teamwork – Testers have to walk a tightrope. They have to get along with the development team while pointing out the defects in the software in a neutral and dispassionate manner without hurting the feelings of the developers.
Recommendations for becoming a software tester
a. Get a basic qualification in testing like ISTQB Foundation Level.
b. Get familiar with at least one defect tracking tool, configuration management tool and test automation tool. Learn to program in any one of these tool. Do not think testing does not require you to program.
c. Improve your communication skills. Testing is as much about communication as it is about technology and domain.
d. You can practice by contributing to open source projects. At Cigniti, we value experience of working in open source projects since it helps us verify your contributions to software quality even as you are studying.
Challenges on the job?
a. Understanding requirements in new domains – Testers might be needed to move to new domains and they will have a steep learning curve when dealing with applications in a new domain.
b. Adapting to new tools and technologies – New tools and technologies always mean another learning curve even as a tester is grappling with his day-to-day job.
c. Dealing with temperamental developers – Since testers have the tough job of calling developer’s “creations” ugly, they have to learn to handle the backlash when dealing with temperamental developers.
d. Time pressures – Developers get delayed and cut into the time allowed for testing. This puts pressure on testers since they are in the last phase of software development life cycle. During the last few weeks of the release, it is not uncommon for testers to put in extra hours and weekends trying to meet deadlines.
Software Testers today are paid as well as software developers. At Cigniti, testers are our Stars and some of them are better paid than developers in other companies. Some of the niche areas in software testing like performance testers, security testers, test automation specialists, are paid better than the average software programmers.
As for the future, I would like to state that there is more to software testing as a “job” which is a short-term description of what a software tester does. Software testing as a career focuses on long-term goals of improving the satisfaction and security of software users and developers.
Testers start as Test Engineers but graduate to leading teams within a period of about 5-8 years. Some of them choose to focus on becoming experts in testing by becoming Test Experts and Test Consultants in specific technology areas like Performance Testing, Test Automation, Mobile Testing or domains like Banking, Insurance, Supply Chain Management, etc. Others choose to become Test Managers leading testing projects and move to a more general management path leading large delivery teams in testing or development.
With the increased focus on independent testing, enterprises are spending more money in areas like Cloud Based Testing, Performance Testing, Mobile Application Testing, Compatibility Testing, Security Testing and testers who have niche skills in these areas will be in demand in the future. This will also require testers who have good programming skills. Cigniti also hires developers who have a passion for testing and deploys them in areas that require a higher level of programming skills.
Testers are different from other people. The first thing you will notice about a tester is that they are not afraid to question. In most open houses of IT companies it is very likely that the toughest questions are posed by testers.
Testers have more patience and are willing to listen. Testers also tend to have superior social skills because they have to get along with temperamental developers, project managers, users, etc.
Testers are always trying harder. To rise and shine in an industry which gives more importance to developers, testers are always trying harder. At Cigniti, testers are our stars and therefore get their rightful due.
According to NASSCOM, Software Testing is growing faster than the overall IT industry and the global software testing market is expected to grow to $50 Billion from the current $30 Billion by 2020. Professional testers in India alone have doubled to 63,000 testers in 2010 from 31,700 testers in 2006 and the growth is expected to continue till 2020.
Software testing as a profession has come of age and is a recognized career with long-term growth and career prospects.
Software is becoming ubiquitous and quality and security of software is paramount in today’s world. Software defects have the capability to seriously impact our daily lives. Instances like the Blackberry outage, Sony PSN downtime or a banking security breach can affect the common man.
Cigniti’s software testers are helping build a better world. Because software runs everything; Good software. Defects and bad software cause headaches, pain and suffering. And testers are the warriors who are fighting the good battle, every day, against defects.