Software Testing Myths
Any IT professional is sure to know the different phases of the Software Development Life Cycle or SDLC, namely Requirement Analysis, Design, Construction or Coding, Testing, Implementation, Maintenance & Support - the activities carried out in each phase & their significance. But, very few agree on the importance of Software Testing phase.
“Software implementation is a cozy bonfire, warm, bright, a bustle of comforting concrete activity. But beyond the flames is an immense zone of darkness. Testing is the exploration of this darkness.” - extracted from the 1992 Software Maintenance Technology Reference Guide
Testing is often considered as a thankless job.
While ...view middle of the document...
Ensuring & Maintaining quality is a continuous process which should be practiced right from Day 1 of the SDLC cycle.
In other words, during testing phase, you can "bang" your product in different ways, using various testing types like functional testing, stress testing, performance testing & so on, and validate whether the software product works fine.
Needless to say, delivering quality software delights customers & helps in getting more business. That said about the importance of Testing. Now let’s have a look into some general perceptions or “myths” about software testing which we have among the IT community.
1. Testing is done to demonstrate that there are no errors/bugs/defects in the software product being developed
No. Not at all!! Though this is one way of conveying the meaning, it takes us away from
the main objective of testing.
Testing is the process of uncovering defects... The objective of any tester should be to
try his best to crack the code. This should not be seen as a destructive activity which points fingers at or find faults with the developers. In fact, testing should be considered as a healthy feedback mechanism to the developer community so that they can make maximum use of the defects found during testing, analyze them, find the root cause & devise appropriate preventive mechanisms. Actually, the defects found during testing helps improving the Quality of the Code!
A tester should never work under the assumption that the system works!! The software product should be tested with the intent of finding errors. The test, which when executed reveals a defect in the software, is a success. Though Testing, by itself, does not improve the quality of the software product, it is an indicator of the quality. Rather than considering Testing as a separate phase in the SDLC, it should be an activity which is integrated into each & every phase. The intent should be to Analyze & Test, Design & Test, Develop & Test, Fix Defects & Test and so on...!!
2. Testing is done to ensure that the software/application does what it is supposed to do
Yes, True enough!! But it’s not just that...The software should also not do what it is not supposed to do. Good test cases are the only way to establish a reasonable level of confidence on the software product. The Tester should think of all the possible scenarios based upon the test requirements or test plan. Though there are various methods to prepare a large number of test cases like Equivalence Partitioning, Boundary Value Analysis and so on, a lot depends on one's own intuition to come up with some good cases/scenarios which reveals defects in the software.
3. Testing is easy...!!!
Once, I had conducted a short class on Software Testing to a group of new recruits. While we were discussing about the career opportunities in Software Testing field, one participant said that he is very interested in a testing career. When asked the reason for his interest, prompt answer came: “Testing is...