Introduction ToTesting
Introduction ToTesting
INTRODUCTION TO TESTING
Definition of Testing
Software testing is the process of executing software in a controlled manner, in order to answer the question Does the software comply to specifications.
Contd.
Software testing is often used in association with the terms Verification and Validation. Validation: Are we building the right product? Verification : Are we building the product right?
Contd.
Testing is the process of executing a program with the intent of finding an error. A good test case is one that has a probability of finding an as - yet- undiscovered error. A successful test is one that uncovers as - yet- undiscovered error.
Why Testing?
The development of software systems involves a series of production activities where opportunities for injection of human errors are enormous. Errors may begin to creep in at the very outset of the process where the requirements may have been erroneously or imperfectly specified. Because of imperfection at every level of performance , software development is accompanied by a quality assurance activity.
Economics of Testing
Too little testing is a crime too much is a sin. Most of the problems associated with testing occur from one of the following causes :
1. Failure to define testing objectives. 2. Testing at the wrong phase in the cycle. 3. Use of ineffective test techniques.
Lifecycle of Testing
Requirements
Functional Specification Design Code
Acceptance test
Integration Test Unit Test Code review
Types of Testing
Testing can be broadly classified into : White Box Testing : Aims to establish that the code works as designed. Examines the internal structure and implementation of the program. Target specific path through the program . Needs accurate knowledge of the design, implementation and code.
UAT User Style On site Test Company & Real Users User Needs
Test Strategy
The testing process may take the form of an End-to-End approach or individual segment testing using various values.
End-to-End : The test path uses the entire flow provided in the application for completion of a specified task. Within this process various test conditions and values are covered and results analysed.There may be a possibility of reporting several defects relating to the segments while covering the test path.The advantage of using this approach is to minimise permutation and combination of conditions values and ensure coverage and integration. Individual Segment Testing : Several conditions & Values are identified for testing at the unit level for testing.These are tested as separate cases.
Effort estimation :
The function points in the Functional Specifications will be used as the basis for the purpose of estimating the effort needed for the project.The average of the different estimates from the peers in the test team will be taken as the basis for calculation of the effort required. There could be some variation in the planned to actual effort. An effort estimation review will be done to identify gaps, if any. In case of UAT , function points are taken from the Business Requirement document.
Defect Management
What is a defect? A defect is a product anomaly or flaw.Defects include such things as omissions and imperfections found during testing phases.Symptoms ( flaws) of faults contained in software that is slated for production will be considered as defects.Deviation from expectation that is to be tracked and resolved is also termed a defect. An evaluation of defects discovered during testing provides the best indication of software quality.Quality is the indication of how well the system meets the requirements. In this context defects are any failure to meet the system requirements.