Software testing is a process used to identify the correctness, completeness and quality of developed computer software. Actually, testing can never establish the correctness of computer software, as this can only be done by formal verification (and only when there is no mistake in the formal verification process). It can be used to show the presence of defects, but never their absence. Software testing is a trade-off between budget, time and quality.
Testing is a process of technical investigation that is intended to reveal quality-related information about the product. It is oriented to detection.
The goal of the testing activity is to find as many errors as possible before the user of the software finds them. We can use testing to determine whether a program component meets its requirements. To accomplish its primary goal (finding errors) or any of its secondary purposes (meeting requirements), software testing must be applied in a systematic fashion.
An important point is that software testing should be distinguished from the separate discipline of software quality assurance, which encompasses all business process areas, not just testing.
Testing in other words, is nothing but CRITICISM or COMPARISION. Here comparison means comparing the actual value with expected one.There are many approaches to software testing, but effective testing of complex products is essentially a process of investigation, not merely a matter of creating and following rote procedure. One definition of testing is "the process of questioning a product in order to evaluate it", where the "questions" are things the tester tries to do with the product, and the product answers with its behavior in reaction to the probing of the tester. Although most of the intellectual processes of testing are nearly identical to that of review or inspection, the word testing is connoted to mean the dynamic analysis of the product—putting the product through its paces.
The quality of the application can and normally does vary widely from system to system but some of the common quality attributes include reliability, stability, portability, maintainability and usability.No matter the program, the beta testers find something that they feel needs to get fixed before the disc goes gold. Alas, there's never time to fix all the bugs, and the program gets shipped, warts and all. In a triage scenario, veteran software testers know that it's inevitable that something has to slip through. They just hope that the most heinous nasties are squashed before the final release candidate.
Once the program ships, it doesn't take long for the user base to find the bugs. The unwitting and most vocal can tend to blame the Quality Assurance team and the beta software testing effort. "Why didn't you find and fix this?" they ask, without having the insight to consider the forces that come to bear.When it's gotta ship, it's gotta ship. Ready-or-not, here it goes ...By the time the shrink wrap hits the street, those last minute bugs may actually be fixed ... but the fixes won't be on the CD that shipped in the first boxes. They may be slipstreamed into subsequent releases, with patches made available over the Internet.As a user (and a grizzled software tester), I've learned not to immediately jump on and install a release the day it comes out, when possible. I usually wait for the first round of fixes to ship before I roll the dice...