Introduction to Software Testing
Recommended by 14 users
Software bugs are not only irksome, but they can end up draining your wallets as well. They can be expensive, costing companies billions of dollars in repairs, lawsuits and lost sales. These coding errors can also cause physical damage and, in the worst case, fatalities.
In February 1991, a US Patriot missile defense system in Dhahran, Saudi Arabia, failed to detect an attack on Army barracks. According to a government report, a software problem led to an inaccurate tracking calculation that became worse. On the day of the incident, the system had been operating for more than 100 hours, and the inaccuracy led to cause the system to look in to the wrong place for the incoming Scud missle. The attack killed around 28 American soldiers.
This is when Software testing steps in and saves our data and systems from falling apart. Software testing is an inspection conducted to rate properties of a computer system /program to decide whether it meets the specified requirements and produces the desired results. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation. Test techniques include, but are not limited to, the process of executing a program or application with the intent of finding software bugs.
Depending upon the purpose for testing and the software requirements, a combination of testing methodologies is applied. One of the most overlooked areas of testing is regression testing and fault tolerant testing.
Career options for a Software Tester
Testing is one of the most-sought after professional careers for many of the aspiring testers. From being a test engineer, one can move to senior test engineer, test lead to test manager; or else one can work as QA lead or QA Manager. The options available in the testing tools side are enormous. There are numbers of functional, performance, security testing tools besides test management tools like Quality Center from HP, CQTM from IBM etc.
The demand for niche skills like SOA testers, security testers are rising. There is dearth of skills in test automation areas. Scripting skills in the tools languages like VB, Java and other scripting languages like Perl, Shell, Python etc and technical resources with capabilities to evaluate automation tools, create automation framework and reusable components are on demand.
The demand for good performance testers who can analyze the performance test results, identify the bottlenecks and suggest tuning techniques is the need of the hour.
Here are some of the key areas, where one needs to specialize to move ahead in testing apart from having good knowledge in software life cycle testing process.
1) Domain Knowledge– Good knowledge in domain area of the application adds value to the testing professionals. There are domains like BFSI, telecom, health care, manufacturing, embedded, etc. Numbers of certifications are available for each of these areas where the tester can get them certified.
2) Automation Testing Tools Knowledge – There is great demand for automation and performance testers. A good skill on scripting languages of these tools is basic necessity for succeeding in test automation. Knowledge on creation, validation and enhancement of test automation framework is very much required.
3) Technical Knowledge – A good software tester must have strong technical skills. Mastering high level of proficiency in tools like MS Office, OpenOffice etc, testing tools like QTP, Loadrunner and of course understanding of the application under test are some of the requirements. These skills can be acquired through relevant training and practice. Also it’s an added advantage to have some programming skills.
4) Communication- Having good verbal and written communication skills is inevitable in any field. Testing artifacts (like test cases/plans, test strategies, bug reports etc) created by the software tester should be easy to read and comprehend. Dealing with developers (in case of bugs or any other issue) will require a hint of diplomacy. To be a good software tester you must also have a go-getter attitude to ‘test to break’, detail orientation , willingness to learn and suggest process improvements.
5) Certifications – QAI, ASQ, ISQTB and several other institutes are offering testing specific certifications. These certifications improve the confidence of the clients of the testing professionals. CQTM, PMP are some managerial certifications, which help the testers to scale up in the professional ladder. Certifications on the testing tools offered by vendors like HP increases the technical competency of the individual.
6) Niche areas in Testing – Experts predict that the niche areas like SOA testing, Security testing are gaining momentum in the testing space as many tools are emerging in these areas. As testing professionals, one should be aware of where the industry is heading and update our knowledge in those areas.
Got a question for us? Please mention it in the comments section and we will get back to you.