Resource related misconceptions about Software Testing
Software Testing is usually viewed as a low-grade task in comparison with Software Development. Although software coding is a significant phase in the life cycle of any software product; testing activity & its great significance can�t be undermined. Testing is an extremely important phase of SDLC immediately after which the software product goes into production & flaws in the application come to the surface when the application actually starts functioning in the real world.
Therefore, importance of software testing phase just can�t be undermined since this is an important phase where we gain a reasonable level of confidence that that we are delivering a quality products to the customer.
It does not imply that quality assurance activity is limited to the Testing phase only. In fact ensuring & maintaining the quality of any product is a continuous process practiced right from the day 1 of the SDLC.
During the testing phase, the software product is subjected to various rigors & is subjected to several types of testing like functional testing, stress testing, performance testing etc.
and validate whether the software product functions as desired or not.
It is important to understand that the customers get delighted by getting a quality software which in turn help in getting more business. Thus testing is such an important activity in creating delight for the customer, it has less words to explain.
In-spite of great importance of testing, software community is living with some of the misconceptions about software testing, which are discussed below.
Misconception 1: Testing comes at the end of the life-cycle process
This misconception originated from the older which is considered as a set of activities like specify, design, code, and then test. This chain of activities or progression can be further summarized as build and test. In fact, this thinking still exists, even among some of the big companies all over.
In true sense around 75 to 80% of the testing effort should take place before the execution of the final code. The systematic processes like planning of tests, creation of the detailed test cases and formulation of various procedures generally eliminate the requirements defects, design problems and other flaws much before the actual code is executed..
Misconception 2: Anyone can do the testing
This misconception that anyone can do the testing, is not fully true. In fact, we all can do some testing, just as we all can provide some medical help to someone like fixing a corn plaster or giving a cough-syrup etc. However we would not be able to do specialized medical treatments like surgery etc. unless we get due training of the trade. Even if such a specialized training is organized, majority of IT persons would like to stick to software testing and would prefer to outsource the medical help.
These days majority of IT companies are taking the help of manpower having training in various testing specialties so that they can focus their attention on implementing their business processes instead of learning several aspects of the vast area of testing.
Misconception 3: Testing increases development costs
If testing is used as a final tool and just as filter on a software product then this is no misconception, since in such case, the testing will increase the development costs. However If systematic and effective testing is implemented throughout the software development life cycle, then the long term as well as the short term project costs are likely to be reduced. In such a case this statement becomes a misconception.
Misconception 4: Testing is for demonstrating the absence of bugs
This is one of the misconceptions. Although one of the aim of testing is to ensure the absence of bugs or defects. However this is not the only objective of testing.
Testing is undoubtedly the process of revealing defects in the application. Professionals view it as a healthy feedback mechanism available to the Software Development Community, which helps them in taking maximum benefit from the Bugs, detected during the testing. This helps them analyze the bugs, find the root cause of the bugs & devise appropriate preventive mechanisms. This approach helps in improving the quality of the software code.
A professional software tester works on any application with an objective reach the root of the code. He does not view it as a destructive activity aimed to raise fingers on the creation of the developers. A software tester is successful when he is able to uncover the defect in the application while doing specific actions. Although software testing, by itself, does not improve the quality of the software product, but it is an indicator of its quality. Testing can�t be considered, as a standalone activity, rather it is an activity tightly integrated into each & every phase of the SDLC. Successful companies work with intent to Analyze & Test, Design & Test, Develop & Test, Fix Defects & Test more & more.
Misconception 5: Testing is just to ensure software behavior in conformance to expectations
Although this statement is valid indeed, however this is just not the end. Our expectation from the software should not be limited to just do what it is expected to do. Preparation of good test cases are the good & effective tools to establish a reasonable level of confidence on the software product. A good & professional tester looks at all possible scenarios based upon the test requirements or test plan.
Many scientific techniques like Equivalence Partitioning & Boundary Value Analysis etc. are available for preparing large number of test cases. In-spite of this a lot depends upon the skill & judgement of the professional tester to come up with some good cases which can uncover even those defects which are a bit difficult to find in the application.
Misconception 6: Career opportunities are limited for Testers.
This statement is not true. While opting for a career in testing, one can perform variety of roles. Testing career offers added scope for improvement in Business / Domain knowledge. It broadens the outlook of the tester to have a holistic approach towards the entire software system instead of concentrating on just a unit or module.
Varieties of testing certification courses offered by reputed organizations are available nowadays. These certifications are extremely helpful in creating a strong career base. Thus pursuit of Software Testing career has its own merits over career in software development; however success in a particular domain entirely depends upon one’s own aptitude & amount of efforts put in.
Misconception 7: Testing is quite Easy
The statement “Testing is quite easy” is valid for some situations only & can�t be generalized. Although it is easy to prepare straightforward test cases, however many times testing becomes a real challenging task.
Majority of production related issues will, come to the knowledge of the Software testers. At such point of time issue crops up that why such scenario had not been addressed in the test plan. Hence a good professional tester is expected to develop skills to think beyond the requirements described in the test plan or specifications.
System Testers share a great deal of such responsibility since they are responsible for ensuring appropriately performance of the software product from “end-to-end “.
Misconception 8: Testers can�t become developers due to poor coding skills
Whether one is a software tester or developer, the basic expertise of creating a good quality code depends upon one’s own programming skills and continued efforts of the individual in polishing his skills in the area.
Many enthusiasts & professionals, although involved in software testing, take time out of their testing domain with a view to improve their programming skills by contributing to coding efforts or taking up coding projects voluntarily. With such an attitude a software tester can become an extremely successful Programmer as well. This statement is true vice versa as well.
The communication gap between Tester & Developer community can be narrowed down by involving the Testing teams, right from the Requirements / Design Stage meetings. This way everyone gets involved in the life cycle of developing a software product & can take part in the discussion from the beginning & can offer valuable suggestions. The professional teams develop an approach of creating a useful testing process of discovering and eliminating bugs well before they are coded. Positive professional approach & good test-design thinking can discover and eliminate bugs at every stage in the creation of software, right from the conception to specification, to design & coding etc. etc..
Misconception 9: Anyone can be a Tester without much of formal training.
This statement may hold good in some cases. It is true that, anyone work on a testing project & be a Tester, However, good Tester only can come up with good quality Test cases. The same holds good for developers as well, where an expert Developer can only write a good quality Code & not the vice versa.
For being a part of a testing project It is essential that suitable training is provided to the team members. This helps in understanding the importance of Testing. Proper training helps in tuning the mind of the testers in line with the requirements of the project, which in turn helps the tester in becoming a good tester. Training is helpful in shaping a good career in Testing.
Today we can find good numbers of testers who are in fact the approvers and work equally well with internal or outsourced developers. They don’t bother much about code syntax – it’s performance, which matters.