Introduction to Software Testing
Software testing is the process used to assess the quality of computer software. Quality is not limited to, the process of executing a program or application with the intent of finding software bugs.
The software faults occur through the following process. Whenever a software developer commits some mistake, which results in a defect (fault, bug) in the software source code. If this defect is executed, in certain situations the system will produce wrong results, causing a failure. Not all defects will necessarily result in failures. A defect can turn into a failure when the environment is changed. Examples of these changes in environment include the software being run on a new hardware platform, alterations in source data or interacting with different software.
Quality is not an absolute term; it is value to some person. Thus we need to keep at the
back of our mind that, testing can not fully guarantee that the software application is absolutely correct. Functional dimensions of quality like Usability, Scalability, Performance, Compatibility, Reliability are highly subjective terms having significant value to one person but may be intolerable to the other.
Complexities in Software Testing:
A problem with software testing is that testing all combinations of inputs and preconditions is not feasible when testing anything other than a simple product. This means that the number of defects in a software product can be very large and defects that occur infrequently are difficult to find during testing.
Approach to effective Software Testing:
An effective approach to test the complex products involves “Investigation” or “Questioning” the product with a view to do its evaluation. Here “Questions” or “Investigations” are the activities performed by the tester on the software product. As a result of such operations of the testers the product responds with its behavior.
Software testing is successful only if used in association with “Verification” and “Validation”
“Verification” asks a question: Have we built the “Software – Right” (i.e. Does it match the specifications)?
“Validation” asks a question: Have we built the “Right � Software” (i.e. Is this what the customer want)?
Objectives of Software Testing:
1) Software testing has one prime motive of detecting errors in the application, irrespective of the cause of errors.
2) The start point of testing is creation of an efficient test case having a high probability of errors which have not been detected so far.
3) A Test can be said to be successful if it is able to discover the errors which have not been detected yet.
Outcome of Software Testing:
Testing effort is successful when it is able to discover various types of errors falling under different classes in shortest possible time & of course by following scientific & systematic approach. Additional advantage of good testing effort is that it provides scientific demonstration of perfect working of the software application in line with the defined specifications. Lot of data gets generated out of the testing process, which reflects on the reliability & quality level of the software application. However it may be borne in mind that Software testing is an indicator of presence of defects, while it can provide a blank certificate of absence of the errors.
1) Software Testing � Wikipedia � The Free Encyclopedia