Whenever, we hear or come across the term software testing, the picture that clicks into our mind is that testing a software product requires verification and validation of software functionalities and qualities w.r.t. specified requirements. But, ever wonder that some of the testing approaches involve breaking or destruction of software application or system in order to assess their quality, and destructive testing is one of them.
Destructive software testing or DST is an alternative approach to conventional type software testing or CST. CST is a systematic and planned approach of carrying out the testing activities in a controlled manner to verify and validate the correct working of the software product with respect to its pre-defined requirements and specifications.
Contrary to CST, DST is oriented towards carrying out the task of testing in an uncontrolled manner with the intent to break or crash down the system so as to explore the points of failure in the software program.
It does not involve any kind of specification or business requirement. It is being performed without getting apprised of pre-decided requirements.
It's a common fact that most of the customers are prone to mismanage the software application either by executing inappropriate operations or feeding invalid inputs, which may eventually lead to crash or failure of the software application. The task of DST is to detect these points of failures in the software program, which may occur due to improper handling of the software by the user.
Along with the detection of point of failures, it also ensures the robustness feature and lifespan of the software application.
Last, but not the least; in order to break the system, do whatever seems relevant and appropriate to obtain final results, as the story of DST doesn't have the characters of "requirements and specifications".
Given below are some of the testing strategies that may proves to be effective for executing DST.
Destructive testing is a useful testing approach to explore weak spots of failure that could not be traced using conventional software testing approach, and it is preferred to conduct destructive testing of the system along with the execution of conventional software testing methodologies.