ETL Testing Vs. Application Testing - The Fundamental Difference

At the core, quality is the measurement of deviation between what is expected vs. actual. In quality assurance practice, we implement a set of tests to measure this deviation. The extent of the deviation indicates the quality of the software. In any application testing, there are three common terms that we will notice:

  • Requirements
  • Test Cases
  • Tests

Obliviously, there is nothing new in it. However, as we drill down further, we will discover that the type of testing directly depends on the type of software being built.

Some software such as websites, phone apps have the graphical user interface and user interaction; hence most of the physical tests are related to the UI interaction and downstream result they produce. On the other hand, ETL processes are batch processes that extract transform and load data with no human involvement unless something goes wrong.

While we can apply general testing principles to ETL testing or data warehouse testing, there is no way the physical testing/steps could be exactly the same.

In this article, we will explore the fundamental differences between general GUI based application testing and the ETL testing approach.

General GUI based Application Testing:

Normally, you would have test automation software that will capture the actions on the screen by the user with recording software and the scripting language such as VB script is used to validate the behavior of the application. Application testing - iCEDQ

ETL Testing:

ETL processes do not have a user interface at runtime. The GUI is used by programmers, only to develop ETL processes. However, once developed the ETL processes are deployed as background processes and the jobs run quietly every day.
ETL process mapping - iCEDQ

The quality of the ETL process is totally dependent on the input data used and the output data generated by the ETL processes.

This leads to an interesting question “How do we test an ETL process?”