ETL testing involves validating data extracted from source systems, transformed for loading into the target system. There are different types of ETL testing such as unit, integration, system and regression testing. Basic SQL knowledge is required to perform queries on source and target databases during ETL testing.