Bug Hunters

By Team Digit Published Date
01 - May - 2006
| Last Updated
01 - May - 2006
Bug Hunters
In October 1999, the $125 million NASA Mars Climate Orbiter was believed to be lost in space as a result of a data conversion error: it was determined that the software used on the spacecraft had certain data in English units that should have been in metric units. Among other tasks, the orbiter was to serve as a communications relay for the Mars Polar Lander mission, which failed for unknown reasons in December 1999. Several investigating panels were convened to determine what allowed the error to go undetected, but as of 2000, NASA was still trying to figure out what caused the failure of the Mars Polar Lander.

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.
Fun And Games
With the increased deployment of IT systems in manufacturing and healthcare, software testing is set to get a fillip. The gaming industry is another prospect. Of the global valuations of $12 billion, the software testing potential of this industry is estimated at $150 billion. The president of a Bangalore-headquartered software testing company that had more revenues from the telecom segment than from any of their other operations, recently mentioned in an Economic Times report that his 150-strong game-testing team was expected to be beefed up to 350-400 within a year's time. Game lovers have never had it better: join this industry and make a living playing games all day!

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
Spotting bottlenecks in a system under large user stress scenarios.
Tools: LoadRunner, SilkPerformer, WebLOAD, OpenSTA.

White Box Testing
Unlike black box testing, white box testing uses specific knowledge of programming code to examine outputs.
Tools: BoundsChecker, Purify, PureCoverage.

Defect and Change Tracking
A defect tracking tool is a database of bug reports, with a front-end that facilitates actions such as changing the state to reflect the progress of the work done.
A change-tracking system is an editable database containing information included in document revisions.
Tools: ClearQuest, GNATS, Bugzilla, d-Tracker, TeamTrack, Test Director, Visual Intercept.

Memory Leak
A memory leak is unnecessary memory consumption by a program. The most common manifestation is the failure to release unused memory that has been allocated by the operating system.
Tools: JProfiler.

Software Configuration Management (SCM)
The collection of processes and tools that are used to effectively manage the development, maintenance, and build processes of software.
Tools: Concurrent Versions System, Visual SourceSafe

  • AmitySoft, Chennai
  • Anna University, Chennai
Offers software testing as one of the elective subjects in the ME Software Engineering degree course.
  • Electronics Test and Development Centre, Chennai
  • QAI India, New Delhi
  • Quality Solutions for Information Technology (QSIT), Bangalore
Offers certification programmes in software testing-Certified Security Testing Professional (CSTP).
  • Vyom SQTL Labs (SQTL)
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.  

Team DigitTeam Digit

All of us are better than one of us.