Etl Testing
Etl Testing
Etl Testing
A structured well defined testing methodology involving comprehensive unit testing and system testing not only ensures smooth transition to the production environment but also a system without defects. The testing phase can be broadly classified into the following categories: * Integration Testing * System Testing * Regression Testing * Performance Testing * Operational Qualification Test Strategy: A test strategy is an outline that describes the test plan. It is created to inform the project team the objective, high level scope of the testin process. This includes the testing objective, methods of testing, resources, estimated timelines, environment etc. The test strategy is created based on high level design document.For each testing component test strategy needs to be created. based on this strategy testing process will be detailed out in the test plan. Test Planning: Test Planning is a key for successfully implementing the testing of a system. The deliverable is the actual Test Plan . A software project test plan is a document that describes the Purpose, System Overview, Approach to Testing, Test Planning, Defect Tracking, Test Environment, Test prerequisites and References. A key prerequisite for preparing a successful Test Plan is having approved (functional and non functional) requirements. Without the frozen requirements and specification the test plan will result in the lack of validation for the projects testing efforts. The process of preparing a test plan is a useful way to get to know how testing of a particular system can be carried out within the given time line provided the test plan should be thorough enough. The test plan outlines and defines the strategy and approach taken to perform end-to-end testing on a given project. The test plan describes the tasks, schedules, resources, and tools for integrating and testing the software application. It is intended for use by project personnel in understanding and carrying out prescribed test activities and in managing these activities through successful completion. The test plan objectives are as follows: * To define a testing approach, scope, out of scope and methodology that encompasses integration testing, system testing, performance testing and regression testing in one plan for the business and project team. * To verify the functional and non functional requirements are met. * To coordinate resources, environments into an integrated schedule. * To provide a plan that outlines the contents of detailed test cases scenarios for each of the four phases of testing.
* To determine a process for communicating issues resulting from the test phase. The contents of a typical test plan consist of the following: * An introduction that includes a purpose, Definition & Acronym, Assumptions & Dependencies, In scope, Out of scope, Roles& Responsibilities and contacts. This information is obtained from the requirements specification. * System Overview will explain about the background and the system description. * A test approach for all testing levels includes test Objectives for each level, Test responsibilities, Levels of testing, various testing, Test coverage, Testing tools, Test data and Test stop criteria. * Test planning specifies Test schedule, Documentation deliverables, Test communication and Critical and High risk functions. The test plan, thus, summarizes and consolidates information that is necessary for the efficient and effective conduct of testing. Design Specification, Requirement Document and Project plan supporting the finalization of testing are located in separate documents and are referenced in the test plan.
Test Estimation: Effective software project estimation is one of the most challenging and important activities in the testing activities. However, it is the most essential part of a proper project planning and control. Under-estimating a project leads to under-staffing it, running the risk of low quality deliverables and resulting in loss of credibility as deadlines are missed. So it is imperative to do a proper estimation during the planning stage. The basic steps in estimation include: * Estimating the size of the system to be tested. * Estimating the effort in person-hours (1 person hours number of working hour in a day i.e. 8 hours) After receiving the requirements the tester analyses the mappings that are created/modified and study about the changes made. Based on the impact analysis, the tester comes to know about how much time is needed for the whole testing process, which consists of mapping analysis, test case preparation, test execution, defect reporting, regression testing and final documentation. This calculated time is entered in the Estimation time sheet. Integration Testing: Integration testing is to verify the required functionality of a mapping (Single ETL / single session) in the environment specific to testing team (Test environment). This testing should ensure that correct numbers of rows (validated records) are transferred to the target from the source. Integration testing is also used to verify initialization and incremental mappings (sessions) functionality along with the pre-session and post-session scripts for dependencies and the usage/consumption of relative indicator files to control dependencies across multiple work streams (modules). During integration testing error-handling processes, proper functionality of mapping variables and the appropriate business requirements can be validated. Prerequisites: * Access to the required folders on the network.
* Implementation Checklist for move from development to test. * All unit testing completed and summarized. * Data available in the test environment. * Migration to the test environment from the development environment.
System Testing: This environment integrates the various components and runs as a single unit. This should include sequences of events that enable those different components to run as a single unit and validate the data flow. * Verify all the required functionality in the validation environment. * Run end-to-end system test. * Record initialization and incremental load statistics. * Perform and mitigate performance of the entire system. * Verify error-handling processes are working as designed. Prerequisites: * Finalized Implementation Checklist. * All integration testing complete. * Migration from the Test environment to the validation environment, as applicable. * Production configuration and data available. Regression Testing: Regression Testing is performed after the developer fixes a defect reported. This testing is to verify whether the identified defects are fixed and fixing of these defects does not introduce any other new defects in the system / application. This testing will also be performed when a Change Request is implemented on an existing production system. After the Change Request (CR) is approved, the testing team takes the impact analysis as input for designing the test cases for the CR. Prerequisites: * Finalized Implementation Checklist. * All integration testing complete. Performance Testing: To determine the system performance under a particular workload / Service Level Agreement (SLA).Ensures system meets the performance criteria and it can detect bottle neck. Types of Performance Testing are Load, Stress, Volume etc.