Software bugs caused the bank accounts of 823 customers of a major US bank to be credited with $924,844,208.32 each in May of 1996. The American Bankers Association claimed it was the largest such error in banking history.
Moral of the story: in a world increasingly dependant on software, the consequences of bugs in programs can be majorly disruptive-or even catastrophic.
No Monkeying Around
The software lifecycle begins when an application is first conceived and ends when it is no longer in use. Among the various stages, test planning, testing, and re-testing are therefore vital. It is this function that the Software Tester or Quality Analyst (QA) fulfils.
Software Testing has come a long way from the days of “monkey testing.” According to Abhay Joshi, chief engineering officer of Disha Technologies, a Pune-based independent testing firm, “Testing used to be an afterthought. In the early days of mainframes, and later on with the PC, it was thought that if a monkey entered all sorts of random input sequences, hidden bugs in the software would be found. As if real users would behave like monkeys instead of doing their routine work!”
Jobs For The Asking
For those considering careers in testing, the Indian scene looks optimistic. Apart from the typical opportunities in development firms, testing is an area where considerable outsourcing action is projected. Also, QA is often the starting point for many clients, as there is less apprehension about Intellectual Property violation. According to market intelligence firm IDC, the global market for software testing is expected to touch $13 billion by 2007. Of this, $4 to $5 billion is the offshore share. It is this part of the pie that is expected to increase the Indian market size from $800 million at present to $2 billion by 2007.
Pankaj Agarwal, CEO, Sopra Group (India), a subsidiary of the European consulting, systems integration and application outsourcing company Sopra, Newell and Budge, speaks about the thought behind his company’s plan to recruit 800 test engineers in the next 18 months at their Noida facility. “Testing services as part of the overall revenues have gone up considerably. Also, the kind of tasks now coming to India are high-end enterprise software and mission-critical applications. This has seen high performers.”
Agarwal sees India as a talent pool, and his company has a policy of hiring fresh graduates as 15 per cent of the workforce. They also offer paid internships to final-year students of tier I and tier II engineering colleges, and later on absorb most of the candidates. At other levels of entry, Agarwal mentions Mercury Certified Professionals as being in high demand.
Rachna Salgia, Director, Engineering of Cupertino, California-headquartered Impetus Technologies with six development centres in India says, “Over the past three to four years, testing has gained importance partly due to the nature of work that’s being outsourced.” Salgia affirms that while development is considered more glamorous, good testers are valuable and sometimes may be paid marginally higher.
Types Of Testing |
Regression Testing Re-testing of a software system that has been modified to ensure that no previously working functions have failed as a result of the reparations, and that the newly added features will not create problems with previous versions. Tools: WinRunner, SilkTest, RationalRobot, QuickTest, TestComplete Load Testing White Box Testing Memory Leak Software Configuration Management (SCM) |
Institutes |
Offers software testing as one of the elective subjects in the ME Software Engineering degree course.
Offers certification programmes in software testing-Certified Security Testing Professional (CSTP).
A Pune-based company focused on training, recruitment and consulting in software quality, testing, infrastructure, and service. |
The Requirements
We ask her about the qualities one looks for in an aspirant. “A desire to explore is important. While developers are concerned with the depth of an application, for a QA person it is the breadth. He should also be able to put himself in the end-user’s shoes. Good communication skills are vital to convince the developer-who can be passionate about his output-of the need for alterations in functionality.” Joshi of Disha technologies adds, “A candidate’s academic background must include engineering training with courses in computer science fundamentals, computer organisation, data structures, software design concepts, programming fundamentals, and software engineering.”
According to Salgia, while a tester can do without development experience, a developer should necessarily have some testing experience.
However, Joshi says in contrast, “It’s a common misconception that one doesn’t need to know programming or software development to perform software testing. A lot of testers these days do not stop at simply reporting bugs; they try to pin-point the problem.”
Getting Your Hands Dirty
While functionality testing-verification of the functional specifications-constitutes the largest chunk of testing carried out by product companies, it is just the beginning. Performance testing finds out how the software will perform under reasonable as well as unreasonable loads. Security testing aims to discover vulnerabilities in the software that might allow hackers to steal information or cripple its function. Accessibility testing verifies that people with physical handicaps can use the software without problems. Joshi advises, “Anyone who wants to build a career in testing should explore some of these areas.”
Two critical areas that are seeing an acute shortfall of manpower are automation and white box testing. Salgia says, “Good testers in these two domains are a rare breed. We have a tough time finding a white box tester.” She further advises that anyone who plans a career in testing should spend at least a year in manual testing before jumping to automation tools. Also, understanding the software development process gives the tester an appreciation for the developers’ point of view, and reduces the learning curve in programming software that automates the testing process.
Software testing, in many ways, is like a crime detective’s job. You look for clues, get into the mind of the programmer, try to re-trace his footsteps, use tools to study evidence, and find that evasive bug. And while at it, also build a lucrative career.