ETL Testing – Part 2

Test Estimation:

Effective software project estimation is one of the most challenging and important activities in the testing activities. However, it is the most essential part of a proper project planning and control. Under-estimating a project leads to under-staffing it, running the risk of low quality deliverables and resulting in loss of credibility as deadlines are missed. So it is imperative to do a proper estimation during the planning stage.

The basic steps in estimation include:
  • Estimating the size of the system to be tested.
  • Estimating the effort in person-hours (1 person hours – number of working hour in a day i.e. 8 hours)

After receiving the requirements the tester analyses the mappings that are created/modified and study about the changes made. Based on the impact analysis, the tester comes to know about how much time is needed for the whole testing process, which consists of mapping analysis, test case preparation, test execution, defect reporting, regression testing and final documentation. This calculated time is entered in the Estimation time sheet.

Integration Testing:

Integration testing is to verify the required functionality of a mapping (Single ETL / single session) in the environment specific to testing team (Test environment). This testing should ensure that correct numbers of rows (validated records) are transferred to the target from the source.

Integration testing is also used to verify initialization and incremental mappings (sessions) functionality along with the pre-session and post-session scripts for dependencies and the usage/consumption of relative indicator files to control dependencies across multiple work streams (modules). During integration testing error-handling processes, proper functionality of mapping variables and the appropriate business requirements can be validated.

  • Access to the required folders on the network.
  • Implementation Checklist for move from development to test.
  • All unit testing completed and summarized.
  • Data available in the test environment.
  • Migration to the test environment from the development environment.

Next ⇒ ETL Testing Part 3

Software Testing Methods,Types and Levels

Software Testing Methods:

In a software development life cycle (SDLC), a project is split into modules (also known as components or unit). This helps the BAs, SMEs, Developers and team and testers to work efficiently on that unit. In Data Models also, the entire project is split as subject areas (units). This will help the data modeling team to generate sql code for each subject area and share it with DBA team, print out for each subject area, and for understanding the business needs also.

In Software Testing Life Cycle unit testing, integration testing, system testing and acceptance called levels of testing:


  • Telecommunication: When you subscribe with a service provider for phone facilities: Service Request, Service Order, Tickets are three different modules and data flows between them.
  • Home Mortgage: When you a buy a home in Loan: In USA, Loan Origination, Appraisal, Underwriting, Loan Approval, Loan Disbursement are different modules and data flows between them. After the payment is done usually banks pledge the loan with Fannie Mae or Freddie Mac, where data flows between systems.
  • Retail Transactions: When something is bought and when you pay for that, data flows from one system to another system. From your bank, payment gateways (,, or payment system (PayPal) help to transfer the money to another system in a secured way.

Step1 – Unit Testing:

The testing is conducted by the developer whether functions related to the module are properly working.

Step2 – Integration Testing:

This is mainly used for checking the data flow between the entities or modules or Systems (Business to Business (B2B) transactions or Business to Customer (B2C)) transactions. This testing is conducted by the Testers.

Step3 – System Testing:

This testing is used mainly to check whether all functional and non-functional behavior of the system is working properly.

Step4 – Acceptance Testing:

This testing is done by the development team and users who use the application.

  • Alpha Testing: It is done by the developers or tester in a development environment.
  • Beta Testing: It is done by the client (customer) in their premises i.e. outside the development environment. BAs, SMEs test it and they share their feedback to development team. If there are any defects it will be rectified by development team.
  • User Acceptance Testing: This is the final testing done by the client (Business Users – BAs and SMEs) and they sign off. Then the product is released to actual users.

Other Testing Methods:

Regression Testing:

Whenever there are any updates (addition, deletion, modification), regression testing is done to whether the system behaves in a proper ways.

Example: Assume a table has composite primary keys and its primary keys are migrated to several child tables. When there is a need to delete one of the columns of the composite primary key, then that column will be deleted in the child tables also. To check whether there is any impact, again testing is done, which is called regression testing.

Smoke Testing:

There are several requirements in a project and each requirement has many functions. Build Team sets up the testing environment and before testing all functionalities, some basic functionalities are tested (smoke testing) and if it is okay, then detailed testing is done. If basic functionalities are not okay, then resources will be wasted in detailed testing. To avoid this smoke testing is done earlier.

White Box Testing:

Development Team writes code (source code) for different requirements. The tester understands and tests the source code to find out whether the programming logic, syntax is correct to meet the expectations of the system.

Black Box Testing:

Only functional behavior of the system is tested by the tester. There is no need to understand the source code.

Installation Testing:

Companies develop new products, then releases patch, versions etc to the customers. A customer, who already has the product, should upgrade their version to the latest updates. This testing focuses on the different problems that may arise when a product or an application is installed/uninstalled/re-installed/upgraded.