In 2005, I worked for a company, a leader in the mobile phone and communication space. They hired me just as they launched a very stylish-looking, expensive, flip phone model (the kind people like to flash around quite a bit).
While testing for a software update on the flip phone, I discovered that when a missed call is given to a number that is switched off and again when it is switched on, the flip phone started vibrating and continues to vibrate till the battery runs out! The 'switch off' 'button (or for that matter any other button) on the phone fails to work in such an event. The only way to cut off the power cycle is to pull out the battery and put it back!
Can you imagine how the neurons in my brain vibrated when I discovered this bug? I was excited, and typically, all testers who detect a bug are excited!
Birth of the software tester
Software testing happened even before someone was designated that way; curious programmers tested their code but weren' t specialised to do it. Gerald M Weinberg is known to have started the first test team in IBM that built specialised testers in the 1950s. The growth of this breed was slow, but consistent till 1980.
Since then hundreds and thousands of software test teams have sprouted across companies that produce software. The business value of software testing as per Gartner Research of 2008 crosses more than 14 billion US dollars. Of this, a chunk of the testing business is outsourced and India acts as hub for such testing work. If you add businesses that thrive around software testing, you can add another billion dollars to it!
What testers do
They provide quality-related information to the company management to help them take better-informed decisions about their products. Being a software tester is sometimes like being able to handle a situation such as the Chakravyuha, a war strategy, first cited in the epic Mahabharata. Chakravyuha was a strategy to encircle the enemy in 360 degrees, making it nearly impossible for the enemy to escape. Imagine being at the batting crease when six runs is needed of one ball to win an important match. That's the modern Chakravyuha.
Let us break down the job further:
- Understand the specification or requirements of the software and question them. A defect found at the requirement level is much cheaper to fix than once you have finished developing the product. So testers interact with business analysts and review the specifications of the software.
- They contribute to design of the product by testing the design and reporting the problems with it and later reviewing the fixes.
- Most people think that a programme is the same as software. It's not! A tester must be able to work on software ranging from that of a mobile phone to that of a Merc!
- Dealing with testing: There are more than a hundred types of test techniques, tens of approaches to test, thousands of test tools, dozens and dozens of technologies and domains and millions of possible tests.
The challenge here is: what approaches do we apply? What techniques do we apply? How do we know that it is a right approach and technique, what tools can help us, what if there are 100 tools that do the same thing, what suits our context, how do we know we have tested enough, how much time do we have to test, how many of those millions of possible tests can we do and how do we know if we made the right sampling from those millions of possible tests.
The choices are many and the quality of work depends on the wisdom of our choices. Hence, good testing is a context-driven activity.
Top testing myths
In the IT boom from 2003 onwards, several IT companies hired in hoards. Those who could not evolve into good testers quit their jobs or moved to a different role, and this phenomenon led to several myths about the profession.
Myth 1: It is a boring job
Every profession has some level of boring stuff and I admit that software testing is no exception. An example of what is boring in software testing is executing test cases. But the good news is people have devised methodologies, approaches and techniques to get away from executing test cases and those ideas are gaining huge popularity. Some of the prominent ones are Rapid Software Testing and Exploratory Testing.
Myth 2: For engineering grads, only
Interestingly, one of the finest testers Jon Bach (James Bach's brother) has a journalism degree! In India, organisations such as Infosys, Wipro, CTS and TCS, recruit BSc, BCom, and other graduates to test software. Many product companies have also provided opportunities for people in support to move to testing since being in support is a wonderful way to know how the customer thinks. I think it is a field open to the finest thinkers.
Myth 3: I can be a great tester without knowing programming
Though knowledge of programming is not a mandatory skill, in the long run one realises it does help. Moreover, it is also an easily learnable skill. Some people need 100 hours and others need 200. There are many jobs that do not demand testers to know programming but you could be a better tester if you knew how to write and read code. I have personally found lots of problems in the software I was testing because I read the code and understood the problem in it.
Myth 4: Software tester salaries not as good as developers'
Before 2004, software testers were paid less as compared to developers, but from 2005 onwards most parts of the industry started treating developers and testers on par. Today in 2009, I know testers who are paid more salary than developers. But by saying that I do mean that testing has overtaken development in terms of money.
The skilled and the vocal shall always be paid a lot in this industry. Be it a tester, or a developer or a network administrator or a support executive. If you want to be an average Joe, no problem, you will still be paid on par with all other average Joes of the industry.
Myth 5: Anyone can be a tester
The question I have to people who say that is:
- Anyone can play cricket but the question is; who plays well?
- Anyone can write books but the question is; who writes well?
- Anyone can test but the question is; who tests well?
Myth 6: Software testing does not have career growth
Visit the Naukri or Monster website and search for openings related to software testing. You will discover roles and designations such as the following [See Box] plus the proposed salary packages of that order.
In addition to these, you may want to choose to be an independent consultant or a freelance consultant. The money you earn as a freelance consultant depends on your reputation and credibility. Bigger the reputation, up goes the moolah!
How to find a job
Many companies pick recruits for the position of developers, testers, support and networking. If you are about to be picked from one such campus recruitment you might want to specifically state your request and choice to be a tester. After one joins an organisation straight out of college through campus recruitment, they usually provide an intensive training on testing and other technologies before being put into a project.
Off campus recruitment
Off-campus recruitment happens either directly by a walk-in or through a model called active sourcing. In active sourcing, leading testing institutes are hired to train and deploy entry-level and mid-level testers based on requests.
Selecting an institute
Typically, institutes offer a diploma or certificate programme in software testing, which ranges from one to six months. They cost anywhere between, Rs 10,000 to 40,000 and some institutes have an installment scheme. You must be a graduate to be eligible. Typically those with a BBA, BSc, BCom, BE, MTech or MBA, apply.
Ask for hands-on testing training or complete practical testing training. Do not go to training institutes that merely run a few hundred slides and certify you as a tester. It is akin to someone teaching you how to drive a car by running a thousand slides of how to do it!
Also, make sure that campus placement assistance is included.
Scenario 1: Many companies in North America, Europe, and the United Kingdom and other parts of the world who outsource their testing work also need onsite staff for better coordination between developers and testers and hence prefer to have anywhere ranging from half to entire test team on site. There are lots of testers who are onsite, working in several locations in the world.
Scenario 2: In product organisations, there are onsite opportunities as well. Products developed in India for the rest of the world need to be tested at several locations. For instance, in 2004, I was a part of a team that was testing mobile phones that were supposed to work in 3G environments.
In 2004 India did not have a 3G network (sadly, barring MTNL and BSNL not in 2009, too) and some of our team members had to fly to Paris for Inter Operability Tests and the United States for 3G network tests and others had to travel to Japan and Korea for other kinds of tests.
Message for tomorrow's testers
I was invited by a large services company to address an audience of 100+ fresh graduates, who were hired on campus and were put into testing division. I am using the word 'put' because most of the graduates there, appeared to be misguided about the prospects in testing.
Post the talk, several graduates said to me, 'Why did none of our seniors from this company talk to us about how much fun, and what a challenge it is to test software, and the way they have grown in it?'
My response to them was, seniors didn't. "But now that you have asked this question, will you spend time guiding your juniors, properly?" I heard a 'Yes, Sir' in unison, similar to the ones seen in the military.
As I travelled back home, I felt that the generation, that is going to reshape the world and reshape the way software is built and tested, is today's generation that is passing out from colleges and universities. I am glad that through this article, I could reach out to a few and hope they don't make the same my generation did. I wish I was of your batch!
Testing guru Michael Bolton's advice for wannabe testers
One of the most skilled testers and a renowned coach, he travels the world helping testers learn to test better. Michael has visited India seven times and taught Rapid Software Testing to India's leading software development houses.
An exclusive interview with Pradeep Soundararajan:
What skills are essential for greater career growth as a tester?
Testers need the ability to think critically about several things, about the product that you're testing, also about your own thinking and testing. The other skills are the ones associated with analysis, science, general systems, programming, computer hardware and software, business, and communication; these are all important.
But you don't have to be great at everything, and testing benefits from whatever you bring to the table. Rapid learning is important, and that depends on practice, not just reading or talk. I think, as testers, we should learn more about social sciences -- anthropology, sociology, economics field sciences -- than what we have done traditionally.
What problems do most organisations that hire testers face?
We write new software to solve a new problem, and that means creating a new design. For that, the testing task is to question and evaluate the design. That's not a rote process, but an open-ended, investigative search for new information.
It's not about getting the right answers; it's more about asking questions that will identify and defend the design's value, both to the customer and to the producer of the software. This requires skills like analytical thinking, critical thinking, scientific thinking, systems thinking, technical knowledge, business knowledge, writing and speaking precisely.
Many organisations have trouble finding skilled testers, so they try to do testing with limited skill. They divide testing into units of activity that they call 'test cases' -- highly focused checks of some function or another.
These checks are typically designed by one person and executed by others in a highly linear process. One consequence is that learning associated with either design or execution tends to remain isolated in the person who performs the activity. Another consequence is that the feedback loop between design and execution is unnecessarily long. Unskilled testing is of limited value, yet it can be quite expensive.
Skilled testing doesn't have to be expensive, and it reveals important information. In skilled testing -- largely an exploratory activity -- learning about design and execution reinforce one another, because they're being done by the same person. That's an organic process, rather than a linear one, and the feedback loop is very fast -- it can happen in an instant.
What have you observed about Indian testers? Any recent good news in Indian software testing?
The good news: on each visit, I met many testers who are taking responsibility for their own training and skills development. I've been invited to give presentations and teach testing, and often those requests come from the testers themselves, rather than from their organisations and their managers. The Weekend Testers movement is something that I'm very, very excited about.
Your advice for wannabe testers...
Start anywhere you like, with something interesting or fun or useful to the community, or something that you might like to learn about. Use personal contacts, and use the Web to help you make them. People who are genuinely interested in their work will want to help you if you express a similar interest.
Watch, do, learn, teach, and repeat the cycle. Grab a copy of Lessons Learned in Software Testing, or Perfect Software and Other Illusions About Testing, or Secrets of a Buccaneer Scholar. Connect what you're learning to stuff you already know, and reinforce the cycle by logging on to Developsense.com.