SOFTWARE TESTING (Part1)
SOFTWARE TESTING (Part1)
TESTING [P1]
DEBRAJ CHATTERJEE
1. Testing is a group of techniques to determine the correctness of the application under some given factors.
2. The goal of testing is to detect failures of the application so that failures can be discovered and corrected.
3. It does not demonstrate that a product functions properly under all conditions but only that it is not working in some
specific conditions.
4. Testing includes an examination of code and the execution of code in various environments, conditions as well as all
the examining aspects of the code.
Software testing is a process of identifying the correctness of software by considering its all attributes (Reliability,
Scalability, Portability, Re-usability, Usability) and evaluating the execution of software components to find the software
bugs or errors or defects.
A mistake is essentially any programmer action that later shows up as an incorrect result during program execution.
An error is the result of a mistake committed by a developer in any of the development activities.
A failure of a program essentially denotes an incorrect behavior exhibited by the program during its execution. An
incorrect behavior is observed either as an incorrect result produced or as an inappropriate activity carried out by the
program.
Suppose two programs have been written to implement essentially the same functionality. How can you determine
which of these is more testable?
Answer: A program is more testable, if it can be adequately tested with a smaller number of test cases. Obviously, a less
complex program is more testable. The complexity of a program can be measured using several types of metrics such as
number of decision statements used in the program. Thus, a more testable program should have a lower structural
complexity metric.
Verification versus Validation
Verification is the process of determining whether the output of one phase of software development conforms to that of its
previous phase.
Validation is the process of determining whether a fully developed software conforms to its requirements specification.
The objective of verification is to check if the work products produced after a phase conform to that which was input to
the phase. For example, a verification step can be to check if the design documents produced after the design step
conform to the requirements specification.
Validation is applied to the fully developed and integrated software to check if it satisfies the customer’s requirements.
The primary techniques used for verification include review, simulation, formal verification, and testing. Review,
simulation, and testing are usually considered as informal verification techniques. Formal verification usually involves use
of theorem proving techniques or use of automated tools such as a model checker.
Verification does not require execution of the software, whereas Validation requires execution of the software.
Verification is carried out during the development process to check if the development activities are proceeding alright,
whereas Validation is carried out to check if the right as required by the customer has been developed.
Testing process