ETL Testing – Part 3

System Testing:

This environment integrates the various components and runs as a single unit. This should include sequences of events that enable those different components to run as a single unit and validate the data flow.

  • Verify all the required functionality in the validation environment.
  • Run end-to-end system test.
  • Record initialization and incremental load statistics.
  • Perform and mitigate performance of the entire system.
  • Verify error-handling processes are working as designed.
  • Finalized Implementation Checklist.
  • All integration testing complete.
  • Migration from the Test environment to the validation environment, as applicable.
  • Production configuration and data available.

Regression Testing:

Regression Testing is performed after the developer fixes a defect reported. This testing is to verify whether the identified defects are fixed and fixing of these defects does not introduce any other new defects in the system / application. This testing will also be performed when a Change Request is implemented on an existing production system. After the Change Request (CR) is approved, the testing team takes the impact analysis as input for designing the test cases for the CR.

  • Finalized Implementation Checklist.
  • All integration testing complete.

Performance Testing:

To determine the system performance under a particular workload / Service Level Agreement (SLA).Ensures system meets the performance criteria and it can detect bottle neck.

Types of Performance Testing are Load, Stress, Volume etc.


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.