Professional Documents
Culture Documents
Etl Testing Interview Questions
Etl Testing Interview Questions
Etl Testing Interview Questions
ETL testing is made easier when a testing strategy is well defined. The ETL testing process goes through
different phases, as illustrated below:
Analyze Business Requirements: To perform ETL Testing effectively, it is crucial to understand and
capture the business requirements through the use of data models, business flow diagrams, reports, etc.
Identifying and Validating Data Source: To proceed, it is necessary to identify the source data and
perform preliminary checks such as schema checks, table counts, and table validations. The purpose of this
is to make sure the ETL process matches the business model specification.
Design Test Cases and Preparing Test Data: Step three includes designing ETL mapping scenarios,
developing SQL scripts, and defining transformation rules. Lastly, verifying the documents against business
needs to make sure they cater to those needs. As soon as all the test cases have been checked and
approved, the pre-execution check is performed. All three steps of our ETL processes - namely extracting,
transforming, and loading - are covered by test cases.
Test Execution with Bug Reporting and Closure: This process continues until the exit criteria (business
requirements) have been met. In the previous step, if any defects were found, they were sent to the
developer for fixing, after which retesting was performed. Moreover, regression testing is performed in order
to prevent the introduction of new bugs during the fix of an earlier bug.
Summary Report and Result Analysis: At this step, a test report is prepared, which lists the test cases and
their status (passed or failed). As a result of this report, stakeholders or decision-makers will be able to
properly maintain the delivery threshold by understanding the bug and the result of the testing process.
Informatica PowerCenter
IBM InfoSphere DataStage
Oracle Data Integrator (ODI)
Microsoft SQL Server Integration Services (SSIS)
SAP Data Services
SAS Data Manager, etc.
Open Source ETL
Talend Open Studio
Pentaho Data Integration (PDI)
Hadoop, etc.
Before you begin the testing process, you need to define the right ETL Testing technique. It is important
to ensure that the ETL test is performed using the right technique and that all stakeholders agree to it.
Testing team members should be familiar with this technique and the steps involved in testing. Below are
some types of testing techniques that can be used:
Staging area is a central area which is available between the data sources and data warehouse/data
marts systems. It is a place where data is stored temporarily in the process of data integration. In the
staging, area data is cleansed and checked for any duplication. The staging area is designed to provide
many benefits, but the primary goal is to use the staging area. It is used to increase efficiency, ensure the
data integrity, and support the data quality operations.
In today's time, we are migrating the lots of system from old technology to new technology. At the time of
migration activities, we also need to migrate the data as well from old DBMS to latest DBMS. So there is a
lot of need to test whether the data is correct from the target side.
Here, are some important points where the need for ETL testing is arising:
1. ETL testing used to keep an eye on the data which is being transferred from one system to
another.
2. The need for ETL testing is to keep a track on the efficiency and speed of the process.
3. The need for ETL testing is arising to be familiar with the ETL process before we implement it into
our business and production.
1. Source Bugs
2. Load Condition Bugs
3. Calculation Bugs
4. ECP related Bugs
5. User-Interface Bug
ETL mapping sheet contains all the necessary information from the source file and stores the details in
rows and column. Mapping sheets help in writing the SQL queries to speed up the testing process.
What is the transformation in ETL Testing?
o Transformation is defined as the archive objects to generate, modify, or pass the data.
Transformation can be Active or passive. Transformation is beneficial in many ways.
o It helps in getting values very quickly.
Full Load: Full load completely erase the content of one or more tables and reload with fresh data.
Incremental Load: In this, we apply the ongoing changes to one or more table, which is based on a
predefined schedule.
ETL testing focuses on verifying the data movement process from source to target, ensuring data
integrity, accuracy, and completeness during extraction, transformation, and loading phases. Traditional
database testing, on the other hand, typically involves testing the functionality, integrity, and performance
of individual database components such as tables, stored procedures, and queries.
Data quality can be ensured through various techniques such as data profiling, data cleansing, data
validation rules, referential integrity checks, and outlier detection.
Best practices may include creating comprehensive test plans, using representative data sets, automating
test cases where possible, performing end-to-end testing, documenting test results thoroughly, and
collaborating closely with development and business teams.
Testing types
Unit Testing: Testing individual units or components of a software application to ensure they perform as
expected. It's typically done by developers and focuses on validating the smallest testable parts of the
code.
Integration Testing: Testing the interfaces and interactions between integrated components or systems
to verify that they function correctly as a whole. It ensures that different parts of the application work
together seamlessly.
System Testing: Testing the entire software system as a whole to validate that it meets specified
requirements. It's performed on a complete, integrated system to evaluate its compliance with functional
and non-functional requirements.
Acceptance Testing: Testing conducted to determine whether a software system meets the acceptance
criteria and is ready for deployment. It's typically done by end-users or stakeholders to ensure that the
system meets business needs and requirements.
Regression Testing: Testing performed to ensure that changes or enhancements to the software
application do not adversely affect existing functionality. It involves retesting previously tested features to
verify that they still work as expected after code changes.
Security Testing: Testing conducted to identify vulnerabilities and weaknesses in a software application's
security measures. It includes testing for authentication, authorization, encryption, data integrity, and
other security aspects to protect against potential threats.
Usability Testing: Testing conducted to evaluate the user-friendliness and ease of use of a software
application. It involves testing the application with real users to gather feedback on its usability, user
interface design, and overall user experience.
Compatibility Testing: Testing conducted to ensure that a software application functions correctly across
different environments, platforms, devices, browsers, and configurations. It ensures that the application
is compatible with a wide range of systems and setups.
Localization Testing: Testing conducted to verify that a software application has been adapted for use in
a specific locale or target market. It includes testing language support, cultural conventions, date/time
formats, and other locale-specific requirements.
Accessibility Testing: Testing conducted to ensure that a software application is accessible to users with
disabilities, such as visual impairments, motor disabilities, or cognitive impairments. It involves testing for
compliance with accessibility standards and guidelines.
A test case is a detailed procedure or set of conditions under which a tester will determine whether a
software application, system, or specific feature is working correctly. Test cases are designed to validate
that the software meets specified requirements and behaves as expected under various scenarios.
Test Case ID: A unique identifier for the test case, which helps in tracking and referencing.
Test Case Title/Description: A brief but descriptive title or description of what the test case is intended to
verify.
Preconditions: Any necessary conditions or prerequisites that must be satisfied before executing the test
case. This might include specific data setup, system configurations, or user permissions.
Test Steps: A step-by-step sequence of actions that the tester will perform to execute the test case. Each
step should be clear, concise, and unambiguous.
Input Data: The input data or parameters that will be used during the execution of the test case. This
could include test data, user inputs, or configuration settings.
Expected Results: The expected outcome or behavior of the software under test for each step of the test
case. This is usually defined in terms of specific actions, outputs, or system responses.
Actual Results: The actual outcome or behavior observed during the execution of the test case. Testers
compare the actual results with the expected results to determine if there are any discrepancies or
defects.
Pass/Fail Criteria: Criteria or conditions that indicate whether the test case has passed or failed. This is
usually based on a comparison between the actual and expected results.
Notes/Comments: Any additional information, observations, or notes that may be relevant to the test
case, such as assumptions, dependencies, or defects encountered during testing.
Test Steps:
Expected Results:
Actual Results: User is redirected to the dashboard page, and the username is displayed correctly.
Pass/Fail Criteria: If the user is redirected to the dashboard page and the username is displayed, the test
case passes; otherwise, it fails.
Testing Documents
1. Test Plan: A document that outlines the approach, scope, objectives, resources, and schedule for testing a software application. It
defines the testing strategy, methodologies, and entry/exit criteria for each testing phase.
2. Test Cases: Documents that describe detailed steps, inputs, expected results, and pass/fail criteria for testing specific functionalities
or features of the software. Test cases are used to systematically verify that the software meets specified requirements.
3. Test Scripts: Automated scripts or programs written to execute test cases automatically. Test scripts are commonly used in
automated testing to speed up the testing process and increase test coverage.
4. Test Scenarios: High-level descriptions of test conditions or situations that need to be tested. Test scenarios provide a broader view
of testing requirements and help in identifying test cases.
5. Test Data: Data sets or inputs used during testing to execute test cases and verify software functionality. Test data includes both
valid and invalid inputs to test different scenarios and edge cases.
6. Traceability Matrix: A document that maps requirements to test cases, ensuring that each requirement is covered by one or more
test cases. Traceability matrices help in verifying that all requirements are tested and tracking the testing progress.
7. Test Logs: Records of test execution activities, including test case execution results, defects found, and any other relevant
information. Test logs provide a detailed history of testing activities and help in tracking and analyzing test results.
8. Defect Reports: Documents that describe identified defects or issues found during testing, including details such as defect
description, severity, priority, steps to reproduce, and status. Defect reports are used to communicate and track defects throughout
the defect lifecycle.
9. Test Summary Report: A document that provides a summary of testing activities, including test coverage, test results, defect
metrics, and any other relevant information. Test summary reports are typically used to communicate the overall status of testing to
stakeholders.
10. Test Environment Setup Guide: Documentation that describes how to set up the testing environment, including hardware,
software, configurations, and dependencies required for testing. Test environment setup guides ensure consistency and repeatability
in testing environments.