What is testing?
Most of the people say that testing is the process of finding
defects in application but in real sense
testing is finding the gap between actual and expected to maintain the quality.
What is Quality?
Quality is conformance to requirements. If a product is fulfilling user's requirement and developed within time and
budget then the product is quality product.
As software development techniques have advanced during the last decades, some basic principles of testing have
also been established. Describing theoretical ideas and practical hints, these principles are basic guideline for testing.
In general, testing proves the presence of errors. Sufficient testing reduces the likelihood of existing, not discovered
error conditions within the test object. It does not verify that no more bugs exist, even if no more errors can be found.
Testing is not a prove that the system is free of errors.
An exhaustive test which considers all possible input parameters, their combinations and different pre-conditions can
not be accomplished (except for trivial test objects). Test are always spot tests. Therefore, the effort must be managed
by risk, priorities and thoughtful selection.
Testing activities should begin as early as possible within the software life cycle. They should be repeated regularly and
have its’ own agenda. Early testing helps detecting errors at an early stage of the development process which simplifies
error correction (and reduces the costs for this work).
No two systems are the same and therefore can not be tested the same way. Testing intensity, the definition of end
criteria etc.must be defined individually for each system depending on its testing context. E-commerce websites require a different approach than online-banking applications.
Fundamentals of Testing
Why Software testing is
An error is a human action that produces an incorrect result. A fault is a manifestation of an error in software (also known
as a defect or bug). A fault, if encountered, may cause a failure, which is a deviation of the software from its expected
delivery or service. Reliability is the probability that software will not cause the failure of a system for a specified time under
specified conditions. Errors occur because we are not perfect and, even if we were, we are working under
constraints such as delivery deadlines.
Testing identifies faults, whose removal increases the software quality by increasing the software’s potential reliability. Testing is
the measurement of software quality. We measure how closely we have achieved quality by testing the relevant factors such as
correctness, reliability, usability, maintainability, reusability, testability, etc.
Other factors that may determine the testing performed may be contractual requirements, or legal requirements, normally defined in industry-specific standards, or based on agreed best practice (or more realistically non negligent practice).
Though It is very difficult to determine how much testing is enough because sometimes A single failure can cost nothing or a lot. Software in safety-critical systems can cause death or injury if it fails, so the cost of a failure in such a system may be in human lives.
The amount of testing performed depends on the risks involved. Risk must be used as the basis for allocating the test time that is available and for selecting what to test and where to place emphasis.