Anytime a piece of software is developed, it must be tested. The ETL process is ultimately a piece of software designed and built by a developer. An ETL process is at the heart of any data-centric system and/or project whether it is a Data Migration or a Data Warehouse. ETL testing is required to ensure that all of the data movement, transformations, and conversions are done correctly.
Normally, the ETL developers as part of the development effort will do unit ETL testing of the ETL processes. These test include some spot tests and summary tests. A unit ETL test is a test written by the programmer to verify that a relatively small piece of ETL code is doing what it is intended to do. They are narrow in scope, they should be easy to write and execute, and their effectiveness depends on what the programmer considers to be useful.
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.