CHAPTER 6 – TESTING
Definition of testing:-
“Ensuring the project works as intended and does not fail”
Validation: “Are we building the right product?”
Verification: “Are we building the product right?”
* Process of testing is costly, that why it is desirable that the cost is covered by increasing the value of the system. * Testing can add value of the system by increasing the reliability / suitability for purpose. * To make this possible is by discovering and rectifying errors. Assuming that the system contains errors and use the most effective techniques to find those errors. * A successful test is one that finds an error.
* A good test is one that has a high probability of finding new errors. TYPES OF ERRORS
Definition of error: “an incorrect step, process or data definition” * Types of errors depends on the type of testing that are being used. * Each testing encounter the errors that belongs or caused by the specific testing. * 2 SDLC models that include testing in their stages are V-Model and Spiral Model. * Defining specifications are needed so that it is possible to design tests to exercise program code. * A specification which contains features that cannot be tested is usually a bad specification. WHY CANT WE TEST EVERYTHING?
* Complete testing means trying out every possible combination of inputs and initial conditions. * Testing is expensive, since we cannot automate the production of good tests. People are needed to interpret and confirm test result. * Testing is never completed, we cant eliminate errors from real systems, but it can be reduce the number of errors to a point that we may decide is acceptable.
TYPES OF TESTING
* Black box testing:-
* Sometimes called as:-
* Input/Output testing
* Based on the specification of the system.
* This testing need not to know any of the internal processes or behavior of the system. * Concerned only on what goes in(input) and what comes out(output) and also the data storage of the system black box.
* White box testing
* Complete knowledge of the internal structure of a system. * Sometimes called:-
* Glass box testing (see through)
* Exercising all the internal paths within a program
* Finding whether the internal paths are correct to satisfy the specification. * Errors can be found due to infinite number of hidden errors because paths are missing or some paths should not be present.
* Testing through life cycle
* Unit testing
* Testing a module to ensure it satisfy the specification (minispecs) * A module is the smallest unit of code or a small subroutine. * Usually used by programming team.
* Package testing
* Testing a group of unit that work together to carry out a well defined set of functionality. * Integration testing
* This testing is required when systems are developed in an incremental fashion. * Integration testing strategies are:-
* System testing
* Used to discover mismatch between the system specification and system actually produced. * Usually carried out by development team.
* Different types of system test :-
* Functional testing
* Volume testing
* Stress testing
* Usability testing
* Security testing
* Performance testing
* Documentation testing
* Acceptance testing
* More or less like a system testing but this time, it is carried out by the customer/user itself. * To demonstrate a level of capability that the software meets the agreed specification. * Completion of acceptance testing is usually a trigger for major stage payment....
Please join StudyMode to read the full document