"Explain your project" is the first technical question in almost every ETL testing interview in India, and the one freshers fear most. Interviewers want to hear that you understand how data flows, what you tested and what went wrong. This page walks through a complete ETL testing real-time project (a retail sales data warehouse), with the architecture, test scenarios, SQL checks, defects and a ready-to-adapt project explanation for interviews.
Here, "real-time project" means a real-world project as used in industry, not real-time streaming. For streaming pipelines, see real-time ETL testing for streaming data.
Why Interviewers Ask You to Explain Your Project
Your project explanation tells the interviewer, in two minutes, whether you have actually tested data. They listen for:
- The business purpose: what the data was used for
- The flow: sources, staging, warehouse, reports
- Your role and the testing types you performed
- Specific defects you found. This is what separates real experience from memorised theory
Freshers: do not claim industry experience you don't have. Build this project yourself (see the last section) and present it honestly as your practice project. Interviewers respect a well-explained practice project far more than a vague "real" one that falls apart under follow-up questions.
The Project: Retail Sales Data Warehouse
| Item | Details |
|---|---|
| Client domain | Retail chain with physical stores and an online shop |
| Business goal | One daily sales dashboard for management: revenue by store, product, region and customer segment |
| Sources | POS sales (Oracle), e-commerce orders (daily CSV files), customer CRM (MySQL), product master (Excel) |
| Target | Star schema data warehouse: fact_sales with dim_customer, dim_product, dim_store and dim_date |
| ETL | Daily incremental load at 2 AM through a staging layer |
| Reporting | Power BI sales dashboard |
| Team | Business analyst, 3 ETL developers, 2 ETL testers, BI developer |
| Methodology | Agile, 2-week sprints; defects tracked in Jira |
Project Architecture
Draw this on paper or a whiteboard in the interview. It instantly shows you understand the flow:
Source systems Staging (STG) Data warehouse (DWH) Reporting
----------------- --------------- ---------------------- -----------
POS sales (Oracle) --+ dim_customer (SCD 2)
E-commerce orders --+--> stg_sales --> dim_product Power BI
(CSV files, daily) | stg_customer dim_store --> sales dashboard
Customer CRM (MySQL) --+ stg_product dim_date
fact_sales
ETL tool: Informatica / SSIS / ADF / Python Load: daily incremental at 2 AM
- Extract: data is pulled from the 4 sources into staging tables as-is.
- Transform: cleansing (trim, upper-case codes), currency conversion to INR, lookups for product and store keys, SCD Type 2 on customer city and segment.
- Load: dimensions first, then fact_sales with surrogate keys.
Not sure about facts, dimensions or SCD? See data warehouse testing and SCD testing.
Your Role as an ETL Tester
- Reviewed the business requirements and the source-to-target mapping document; raised questions on unclear rules
- Wrote test scenarios and test cases for each table, and SQL queries for validation
- Prepared test data for edge cases (nulls, duplicates, customer address changes, unknown product codes)
- Validated data at each layer: source to staging, staging to warehouse, warehouse to report
- Logged defects in Jira with the failing query and sample records, and retested fixes
- Ran regression after every sprint and supported UAT with the business team
Real-Time ETL Test Scenarios
| # | Scenario | What you check |
|---|---|---|
| 1 | Metadata validation | Target columns, data types and lengths match the mapping |
| 2 | Record count check | Source count (after filters) = staging count = fact count for the load date |
| 3 | Missing / extra records | Source keys EXCEPT target keys, and the reverse |
| 4 | Duplicate check | No duplicate order line IDs in fact_sales |
| 5 | Null check | Mandatory columns such as store_key and date_key are never null |
| 6 | Transformation rule | Amount converted to INR correctly; product codes trimmed and upper-cased |
| 7 | Lookup with no match | Unknown product code loads with the -1 "Unknown" key, not dropped |
| 8 | SCD Type 2 | Customer city change closes the old row and creates a new current row |
| 9 | Referential integrity | Every fact row joins to valid dimension rows |
| 10 | Incremental load | Only new and changed records processed; re-run creates no duplicates |
| 11 | Report validation | Dashboard revenue by store matches a SQL total on the warehouse |
| 12 | Performance | Load finishes before the 6 AM reporting window |
Full list with expected results: 35 ETL testing test cases.
SQL Queries You Ran
-- Scenario 2: record count, source vs fact, for one load date SELECT 'source' AS layer, COUNT(*) FROM src.pos_sales WHERE sale_date = '2026-10-01' UNION ALL SELECT 'fact', COUNT(*) FROM dw.fact_sales f JOIN dw.dim_date d ON d.date_key = f.date_key WHERE d.calendar_date = '2026-10-01' AND f.source_system = 'POS'; -- Scenario 6: currency conversion rule SELECT s.sale_id, ROUND(s.amount * s.fx_rate, 2) AS expected_inr, f.amount_inr AS actual_inr FROM stg.stg_sales s JOIN dw.fact_sales f ON f.sale_id = s.sale_id WHERE ROUND(s.amount * s.fx_rate, 2) <> f.amount_inr; -- Scenario 8: exactly one current row per customer SELECT customer_id, COUNT(*) FROM dw.dim_customer WHERE is_current = 1 GROUP BY customer_id HAVING COUNT(*) > 1; -- Scenario 11: dashboard total for a store SELECT st.store_name, SUM(f.amount_inr) AS revenue FROM dw.fact_sales f JOIN dw.dim_store st ON st.store_key = f.store_key JOIN dw.dim_date d ON d.date_key = f.date_key WHERE d.calendar_date = '2026-10-01' GROUP BY st.store_name;
Expected results: counts equal, 0 rows for the rule and SCD checks, and totals matching the dashboard. More queries: ETL testing SQL queries.
Defects You Found (Use These Examples)
Interviewers almost always ask "what defects did you find?". Have 3 ready, each with cause and impact:
| Defect | How you found it | Impact |
|---|---|---|
| Duplicate sales rows after a job restart | Duplicate check on sale_id after the 2 AM job failed and was re-run | Revenue overstated on the dashboard for that day |
| Customer name truncated to 30 characters | Metadata check: target VARCHAR(30) vs source VARCHAR(100) | Wrong names in customer reports |
| Unknown product codes dropped instead of mapped to -1 | Source count higher than fact count; missing-records query | Sales missing from totals |
| Old SCD row not closed on city change | One-current-row-per-customer check | Customer counted twice in regional reports |
| Date format swapped day and month for CSV orders | Column profiling: max order date in the future | Orders reported in the wrong month |
Sample Answer: "Explain Your Project"
Adapt this to your own project. Speak for about two minutes and stop. Let the interviewer ask follow-ups.
As an ETL tester, I reviewed the mapping document, wrote test cases and SQL queries, and validated each layer: metadata, record counts, missing and duplicate records, transformation rules like currency conversion, SCD Type 2, referential integrity and incremental loads. I also checked the Power BI totals against the warehouse.
One important defect I found was duplicate sales rows when the job was restarted after a failure, which overstated revenue. I caught it with a duplicate check on sale_id; the developers fixed the restart logic, and I added that check to our regression suite."
Freshers can say "In my practice project, I built and tested…" with the same structure. It is honest and still shows real skill.
Follow-up Questions to Prepare
| Question | What to cover |
|---|---|
| How many tables did you test? | A realistic number for your project, e.g. 1 fact and 4 dimensions plus staging |
| What was your data volume? | Rows per day and in total; why it mattered for performance |
| How did you test SCD Type 2? | Changed a customer city, checked old row closed, new row current, dates continuous |
| How did you test the incremental load? | Inserted, updated and deleted source rows, ran the delta, re-ran to check no duplicates |
| What was your most difficult defect? | Use one from the defects table with cause, detection and fix |
| Which tools did you use? | SQL client, ETL tool, Jira, Excel; Python if you automated comparisons |
| Did you automate anything? | For example, a Python or SQL script that runs count and duplicate checks after each load |
Practise more in scenario-based ETL testing interview questions.
Build This Project Yourself (Projects for Practice)
You can build a small version in a weekend with free tools and then explain it truthfully:
- Set up a database: install PostgreSQL or MySQL (free).
- Create sources: a sales CSV with 1,000 rows, a customer table and a product table. Add deliberate problems: a duplicate, a null, an unknown product code, a customer whose city changes.
- Build the ETL: load the CSV into staging, then into dim and fact tables using SQL or Python (pandas). See build an ETL pipeline in Python.
- Test it: write the 12 scenarios above as test cases and run the SQL.
- Document it: a one-page architecture diagram, your test cases and the defects you found. Put it on GitHub and link it on your resume.
Then add it to your resume using our ETL testing resume guide.
Prepare for your ETL testing interview: top 50 questions · in-depth answers · for experienced (3–5 years) · for 10 years experience · SQL query questions · scenario-based questions · data warehouse questions
Frequently Asked Questions
What is an ETL testing real-time project?
It is a real-world style ETL project, such as a retail sales data warehouse, where data is extracted from several sources, transformed through a staging layer and loaded into fact and dimension tables, and the tester validates every layer with SQL.
How do I explain my ETL testing project in an interview?
In about two minutes, cover the business goal, the sources and target architecture, the ETL flow, your role and the testing types you performed, and one or two specific defects you found with their impact.
Can freshers explain a practice project in ETL testing interviews?
Yes. Build a small project yourself, such as a sales data warehouse in PostgreSQL, test it with SQL and present it honestly as a practice project. A well-explained practice project is stronger than a vague claimed one.
What are common real-time ETL test scenarios?
Metadata validation, record counts, missing and duplicate records, null checks, transformation rules, lookups with no match, SCD Type 2, referential integrity, incremental loads, report validation and load performance.
Asim Noaman Lodhi
Certified Google Partner · QA Consultant · 12+ Years IT
QA consultant specializing in ETL testing and data quality. Trained 913+ students to transition into data testing roles through hands-on, real-world instruction.