It is always said that “First Impression Is Last Impression” If we fail to deliver system to our client for the very first time then it is possibly truth that our customer will move on to next thing. Human beings are fallible and we all make mistakes but sometimes our mistakes are dangerous and expensive when those defects does not get fixed on time.
It’s really hard to find mistakes on your own work that’s the reason we should appoint someone to verify our task and that’s the software testing is necessary.
Software Testing is the computation of software quality. It is the implementation of making objective judgments regarding the extent to which the system (device) meets, exceeds or fails to meet stated objectives.
In order to know why software testing is necessary first we must have knowledge about “what is software testing”.
What is Software Testing
Software Testing is questioning a product in order to evaluate it. Evaluation is done on the basis of following parameters.
- Correctness of the Software
- Completeness of the Software
- Security of the Software
- Quality of the Software
These are some major reasons how defect gets arise in our systems.
Why Software have bugs?
- Ambiguous/Unclear Requirement
- Last moment change requests
- Increased complexity of Software
- Programming errors
- Poor Documentation/Knowledge Transfer
- Communication Gap
- Time Pressure/Deadlines
Software Testing is necessary because of these points
- To find defects and get them fixed early in the life cycle because as soon as defects gets fixed it helps to reduce the cost and time.
- You cannot prove that system is 100% bug free but you make system as per the client requirement and does not have major defects in it.
- “Client Requirement” = “The system which has been created” – If you want to verify that the system which has been created is as per client requirement then you have to follow V & V methods(Verification and Validation) indeed it’s also a part of software testing.
- If you are maintaining the quality of the system this will help you to be in business and that’s the main reason we should give more importance to testing.
Some stories on Failures of software’s (That’s the reason software testing is necessary)
The Therac 25 Tragedy
The Therac 25 was a software controlled radiation treatment device for ailing cancer patients. In the early nineties, a combination of software and system failures resulted in the death of six persons.
The Therac 25 was the result of an evolutionary development from a predecessor machine. Levenson and Turner, who investigated the tragedy, suggest that the safety requirements were well understood, but the system and software architectures was flawed in that all hardware safety interlocks were removed. This left the software checks as the only safety safeguard. The software architecture was also flawed because it did not guarantee the integrity of treatment commands entered by the operator. There were several errors, among them the failure of the programmer to detect a race condition (i.e., lack of coordination between concurrent tasks). Result: Software failed and six lives snuffed out!
Telephone System Breakdowns
In the summer of 1991, telephone outages occurred in local telephone systems in California and along the Eastern seaboard. These breakdowns were all the fault of an error in signaling software. Right before the outages, DSC Communications (Plano, TX) introduced a bug when it changed three lines of code in the several-million-line signaling program. After this tiny change, nobody thought it necessary to retest the program.
Convict Escapes from Computer-Controlled House Arrest to Commit Murder
A New Jersey inmate escaped from computer-monitored house arrest in the spring of 1992. He simply removed the rivets holding his electronic anklet together and went off to commit a murder. A computer detected the tampering. However, when it called a second computer to report the incident, the first computer received a busy signal and never called back.