Selenium Frequently Asked Questions & Answers Part-4



Ques.76. What is a data driven framework?
Ans. A data driven framework is one in which the test data is put in external files like csv, excel etc separated from test logic written in test script files. The test data drives the test cases, i.e. the test methods run for each set of test data values. 


Ques.77. What is a keyword driven framework?
Ans. A keyword driven framework is one in which the actions are associated with keywords and kept in external files e.g. an action of launching a browser will be associated with keyword - launchBrowser(), action to write in a textbox with keyword - writeInTextBox(webElement, textToWrite) etc.
The code to perform the action based on a keyword specified in external file is implemented in the framework itself.

Selenium Frequently Asked Questions & Answers Part-3



Ques.51. How to verify tooltip text using selenium?
Ans. Webelements have an attribute of type 'title'. By fetching the value of 'title' attribute we can verify the tooltip text in selenium.


String toolTipText = element.getAttribute("title");

Ques.52. How to locate a link using its text in selenium?
Ans. Using linkText() and partialLinkText() we can locate a link.
The difference between the two is linkText matches the complete string passed as parameter to the link texts. Whereas partialLinkText matches the string parameter partially with the link texts.


WebElement link1 = driver.findElement(By.linkText(“pavantestingtools"));
WebElement link2 = driver.findElement(By.partialLinkText(“testingtools"));  

Selenium Frequently Asked Questions & Answers Part-2



Ques.26. How can we clear a text written in a textbox?
Ans. Using clear() method we can delete the text written in a textbox.


driver.findElement(By.id("elementLocator")).clear(); 

Ques.27. How to check a checkBox in selenium?

Ans. The same click() method used for clicking buttons or radio buttons can be used for checking checkbox as well.


Ques.28. How can we submit a form in selenium?
Ans. Using submit() method we can submit a form in selenium.


driver.findElement(By.id("form1")).submit(); 

Also, the click() method can be used for the same purpose.

Selenium Frequently Asked Questions & Answers Part-1




Ques.1. What is Selenium?
Ans. Selenium is a robust test automation suite that is used for automating web based applications. It supports multiple browsers, programming languages and platforms.

Ques.2. What are different forms of selenium?
Ans. Selenium comes in four forms-
Selenium WebDriver - Selenium WebDriver is used to automate web applications using browser's native methods.
Selenium IDE - A Firefox plugin that works on record and play back principle.
Selenium RC - Selenium Remote Control(RC) is officially deprecated by selenium and it used to work on javascript to automate the web applications.
Selenium Grid - Allows selenium tests to run in parallel across multiple machines.


Re-Testing & Regression Testing

Re-Testing: After a defect is detected and fixed, the software should be retested to confirm that the original defect has been successfully removed. This is called Confirmation Testing or Re-Testing
Regression testing:  Testing your software application when it undergoes a code change to ensure that the new code has not affected other parts of the software.

Retesting:

In this type of testing, the tester re tests the application which was earlier reported as a bug and now fixed by the developer. This bug can be due to functionality issues as well as design issues. Retesting the functionality of a button which was previously not working or testing the alignment issues of a page etc can be listed as examples for retesting.

Regression testing is done to test whether the changes made on the site have any impact on other modules which were earlier working fine. New requirement change, implementation of new functionality are some of the scenarios where regression testing is effective. Regression testing can be automated using effective automated tools such as Selenium, Quick Test Professional etc.

Regression testing:
Refer the given example for further understanding:
For example, we have a image uploading field which supports only certain image formats say JPG, PNG etc. Suppose one of the image formats failed (say JPG) and the developer fixed it. Testing the functionality, after fixing this bug is retesting. Here, testing and ensuring whether this new change (fixes) has not altered the working of other fields on that page is regression testing.

Smoke Vs Sanity Testing


Smoke and Sanity testing are the most misunderstood topics in Software Testing. There is enormous amount of literature on the subject, but most of them are confusing. The following article makes an attempt to address the confusion.

what is a Software Build?

 If you are developing a simple computer program which consists of only one source code file, you merely need to compile and link this one file, to produce an executable file. This process is very simple.

What is Exploratory testing in software testing?


  • As its name implies, exploratory testing is about exploring, finding out about the software, what it does, what it doesn’t do, what works and what doesn’t work. The tester is constantly making decisions about what to test next and where to spend the (limited) time. This is an approach that is most useful when there are no or poor specifications and when time is severely limited.
  • Exploratory testing is a hands-on approach in which testers are involved in minimum planning and maximum test execution.

Adhoc Testing


Ad hoc Testing, also known as Random Testing or Monkey Testing, is a method of software testingwithout any planning and documentation. The tests are conducted informally and randomly without any formal expected results.

Adhoc testing is an informal testing type with an aim to break the system. This testing is usually an unplanned activity . It does not follow any test design techniques to create test cases. In fact is does not create test cases altogether! This testing is primarily performed if the knowledge of testers in the system under test is very high. Testers randomly test the application without any test cases or any business requirement document.

User Acceptance Testing (UAT)


What is User Acceptance Testing?
User Acceptance testing is the software testing process where system tested for acceptability & validates the end to end business flow. Such type of testing executed by client in separate environment (similar to production environment) & confirm whether system meets the requirements as per requirement specification or not.
UAT is performed after System Testing is done and all or most of the major defects have been fixed. This testing is to be conducted in the final stage of Software Development Life Cycle (SDLC) prior to system being delivered to a live environment. UAT users or end users are concentrating on end to end scenarios & typically involves running a suite of tests on the completed system.
The Acceptance testing is “black box” tests, means UAT users doesn’t aware of internal structure of the code, they just specify the input to the system & check whether systems respond with correct result.

Gray Box Testing


Gray Box Testing is a software testing method which is a combination of Black Box Testing method andWhite Box Testing method. In Black Box Testing, the internal structure of the item being tested is unknown to the tester and in White Box Testing the internal structure in known. In Gray Box Testing, the internal structure is partially known. This involves having access to internal data structures and algorithms for purposes of designing the test cases, but testing at the user, or black-box level.

Gray Box Testing is named so because the software program, in the eyes of the tester is like a gray/ semi-transparent box; inside which one can partially see.

EXAMPLE
An example of Gray Box Testing would be when the codes for two units/ modules are studied (White Box Testing method) for designing test cases and actual tests are conducted using the exposed interfaces (Black Box Testing method).

What is Compatibility testing in software testing?


  • It is a type of non-functional testing.
  • Compatibility testing is a type of software testing used to ensure compatibility of the system/application/website built with various other objects such as other web browsers, hardware platforms, users (in case if it’s very specific type of requirement, such as a user who speaks and can read only a particular language), operating systems etc. This type of testing helps find out how well a system performs in a particular environment that includes hardware, network, operating system and other software etc.
  • It is basically the testing of the application or the product built with the computing environment.
  • It tests whether the application or the software product built is compatible with the hardware, operating system, database or other system software or not.

What is Security testing in software testing?



  • It is a type of non-functional testing.
  • Security testing is basically a type of software testing that’s done to check whether the application or the product is secured or not. It checks to see if the application is vulnerable to attacks, if anyone hack the system or login to the application without any authorization.
  • It is a process to determine that an information system protects data and maintains functionality as intended.

What is Recovery testing in software?


  • It is a type of non-functional testing.
  • Recovery testing is done in order to check how fast and better the application can recover after it has gone through any type of crash or hardware failure etc.

What is Performance testing in software?


  • It is  a type of non-functional testing.
  • Performance testing is testing that is performed, to determine how fast some aspect of a system performs under a particular workload.
  • It can serve different purposes like it can demonstrate that the system meets performance criteria.
  • It can compare two systems to find which performs better. Or it can measure what part of the system or workload causes the system to perform badly.

What is Non-functional testing ?


In non-functional testing the quality characteristics of the component or system is tested. Non-functional refers to aspects of the software that may not be related to a specific function or user action such as scalability or security. Eg. How many people can log in at once? Non-functional testing is also performed at all levels like functional testing.
Non-functional testing includes:

Cookies & Sessions testing


COOKIE: 

A cookie keep information in the user’s browser until it is deleted from there. We can store almost anything in browser cookies. The problem with cookies are that anyone can block or delete cookie content at any time, so if any application is dependent on browser cookie then that application would not work if cookie is deleted or blocked.

SESSION:

Sessions are implemented by using cookies, the actual data is not in the browser; it is stored in the user's session record on the server. They work instead like a token allowing access and passing information while the user has their browser open. The main problem with session is that as soon as we close the browser we lose the session and all the information get lost.

Database Testing


Why do we test a database?

Below, we will briefly see why the following aspects of a DB should be validated:
1) Data Mapping: In the software systems, data often travels back and forth from the UI (user interface) to the backend DB and vice versa. So following are the aspects to look for:
  • To check whether the fields in the UI/Front end forms and mapped consistently with the corresponding DB table (and also the fields within).  Typically this mapping information is defined in the requirements documents.
  • Whenever a certain action is performed in the front end of an application, a corresponding CRUD (Create, Retrieve, Update and delete) action gets invoked at the back end. A tester will have to check if the right action is invoked and the invoked action in itself is successful or not.

Error handling testing


  • The main objective of the Error handling testing techniques is to ensure that the applications are capable to handling incorrect Transactions.
  • The application is smart enough to identify the incorrect transactions and approximate decision need to take and intimate the end user.

Input domain testing (ECP, BVA)


Boundary value analysis and Equivalence Class Partitioning both are test case design techniques in black box testing. In this article we are covering “What is Boundary value analysis and equivalence partitioning & its simple examples”.

What is Equivalence Class Partitioning?

Equivalence partitioning is a Test Case Design Technique to divide the input data of software into different equivalence data classes. Test cases are designed for equivalence data class. The equivalence partitions are frequently derived from the requirements specification for input data that influence the processing of the test object. A use of this method reduces the time necessary for testing software using less and effective test cases.

What is functionality testing in software?


Functionality testing is performed to verify that a software application performs and functions correctly according to design specifications. During functionality testing we check the core application functions, text input, menu functions and installation and setup on localized machines, etc.
 The following is needed to be checked during the functionality testing:
  • Installation and setup on localized machines running localized operating systems and local code pages.

GUI Testing


GUI Testing is nothing but testing the design of the application.

Verifying the User interface of the application means how the front end design, colors,  fonts, font sizes, Labels, Text format, Text boxes, Captions, Radio Buttons, buttons, list boxes, Alignments, icons, links, popup, content, tabbing is provided to move between the objects, background, foreground etc  are displayed as specified.
GUI testing is functional testing - ensuring that all interactions, navigation, links, pop-ups, content, etc all work as required.

CONTENTS:-


Black Box Testing


Black Box Testing, also known as Behavioral Testing, is a software testing method in which the internal structure/ design/ implementation of the item being tested is not known to the tester. These tests can be functional or non-functional, though usually functional.

This method is named so because the software program, in the eyes of the tester, is like a black box; inside which one cannot see. This method attempts to find errors in the following categories:

White Box Testing


White Box Testing (also known as Clear Box Testing, Open Box Testing, Glass Box Testing, Transparent Box Testing, Code-Based Testing or Structural Testing) is a software testing method in which the internal structure/ design/ implementation of the item being tested is known to the tester. The tester chooses inputs to exercise paths through the code and determines the appropriate outputs. Programming know-how and the implementation knowledge is essential. White box testing is testing beyond the user interface and into the nitty-gritty of a system.

What are Software Testing Levels?


Testing levels are basically to identify missing areas and prevent overlap and repetition between the development life cycle phases. In software development life cycle models there are defined phases like requirement gathering and analysis, design, coding or implementation, testing and deployment.  Each phase goes through the testing. Hence there are various levels of testing. The various levels of testing are:
  1. Unit testing: It is basically done by the developers to make sure that their code is working fine and meet the user specifications. They test their piece of code which they have written like classes, functions, interfaces and procedures.

Review, Inspection & Walkthrough


The main review types that come under the static testing are mentioned below:
 1.    Walkthrough:
  • It is not a formal process
  • It is led by the authors
  • Author guide the participants through the document according to his or her thought process to achieve a common understanding and to gather feedback.
  • Useful for the people if they are not from the software discipline, who are not used to or cannot easily understand software development process.
  • Is especially useful for higher level documents like requirement specification, etc.

Static Testing Vs Dynamic Testing


Static Testing 
  • Static testing is the testing of the software work products manually, or with a set of tools, but they are not executed.
  • It starts early in the Life cycle and so it is done during the verification process.
  • It does not need computer as the testing of program is done without executing the program. For example:  reviewing, walk through, inspection, etc.
  • Most static testing techniques can be used to ‘test’ any form of document including source code, design documents and models, functional specifications and requirement specifications.

What is Verification in software testing? or What is software verification?


  • It makes sure that the product is designed to deliver all functionality to the customer.
  • Verification is done at the starting of the development process. It includes reviews and meetings, walkthroughs, inspection, etc. to evaluate documents, plans, code, requirements and specifications.
  • Suppose you are building a table. Here the verification is about checking all the parts of the table, whether all the four legs are of correct size or not. If one leg of table is not of the right size it will imbalance the end product.Similar behavior is also noticed in case of the software product or application. If any feature of software product or application is not up to the mark or if any defect is found then it will result into the failure of the end product. Hence, verification is very important. It takes place at the starting of the development process.

Quality Assurance vs Quality Control – What is the Difference?


What is Quality?
Quality is meeting the requirement, expectation and needs of the customer being free from defects, lacks and substantial variants. There are standards needs to follow to satisfy the customer requirements.
What is Assurance?
Assurance is provided by organization management, it means giving a positive declaration on a product which obtains confidence for the outcome. It gives a security that the product will work without any glitches as per the expectations or requests.
Recommended Reading => Does Quality Assurance Remove Need for Quality Control?

What is Quality Assurance?

What is Spiral model- advantages, disadvantages and when to use it?


The spiral model is similar to the incremental model, with more emphasis placed on risk analysis. The spiral model has four phases: Planning, Risk Analysis, Engineering and Evaluation. A software project repeatedly passes through these phases in iterations (called Spirals in this model). The baseline spiral, starting in the planning phase, requirements are gathered and risk is assessed. Each subsequent spirals builds on the baseline spiral.
Planning Phase: Requirements are gathered during the planning phase. Requirements like ‘BRS’ that is ‘Bussiness Requirement Specifications’ and ‘SRS’ that is ‘System Requirement specifications’.
Risk Analysis: In the risk analysis phase, a process is undertaken to identify risk and alternate solutions.  A prototype is produced at the end of the risk analysis phase. If any risk is found during the risk analysis then alternate solutions are suggested and implemented.
Engineering Phase: In this phase software is developed, along with testing at the end of the phase. Hence in this phase the development and testing is done.
Evaluation phase: This phase allows the customer to evaluate the output of the project to date before the project continues to the next spiral.
Advantages of Spiral model:
  • High amount of risk analysis hence, avoidance of Risk is enhanced.
  • Good for large and mission-critical projects.
  • Strong approval and documentation control.
  • Additional Functionality can be added at a later date.
  • Software is produced early in the software life cycle.
Disadvantages of Spiral model:
  • Can be a costly model to use.
  • Risk analysis requires highly specific expertise.
  • Project’s success is highly dependent on the risk analysis phase.
  • Doesn’t work well for smaller projects.
 When to use Spiral model:
  • When costs and risk evaluation is important
  • For medium to high-risk projects
  • Long-term project commitment unwise because of potential changes to economic priorities
  • Users are unsure of their needs
  • Requirements are complex
  • New product line
  • Significant changes are expected (research and exploration)

What is Agile model – advantages, disadvantages and when to use it?


Agile development model is also a type of Incremental model. Software is developed in incremental, rapid cycles. This results in small incremental releases with each release building on previous functionality. Each release is thoroughly tested to ensure software quality is maintained. It is used for time critical applications.  Extreme Programming (XP) is currently one of the most well known agile development life cycle model.
Advantages of Agile model:
  • Customer satisfaction by rapid, continuous delivery of useful software.
  • People and interactions are emphasized rather than process and tools. Customers, developers and testers constantly interact with each other.
  • Working software is delivered frequently (weeks rather than months).
  • Face-to-face conversation is the best form of communication.
  • Close, daily cooperation between business people and developers.
  • Continuous attention to technical excellence and good design.
  • Regular adaptation to changing circumstances.
  • Even late changes in requirements are welcomed
Disadvantages of Agile model:
  • In case of some software deliverables, especially the large ones, it is difficult to assess the effort required at the beginning of the software development life cycle.
  • There is lack of emphasis on necessary designing and documentation.
  • The project can easily get taken off track if the customer representative is not clear what final outcome that they want.
  • Only senior programmers are capable of taking the kind of decisions required during the development process. Hence it has no place for newbie programmers, unless combined with experienced resources.
When to use Agile model:
  • When new changes are needed to be implemented. The freedom agile gives to change is very important. New changes can be implemented at very little cost because of the frequency of new increments that are produced.
  • To implement a new feature the developers need to lose only the work of a few days, or even only hours, to roll back and implement it.
  • Unlike the waterfall model in agile model very limited planning is required to get started with the project. Agile assumes that the end users’ needs are ever changing in a dynamic business and IT world. Changes can be discussed and features can be newly effected or removed based on feedback. This effectively gives the customer the finished system they want or need.
  • Both system developers and stakeholders alike, find they also get more freedom of time and options than if the software was developed in a more rigid sequential way. Having options gives them the ability to leave important decisions until more or better data or even entire hosting programs are available; meaning the project can continue to move forward without fear of reaching a sudden standstill.

What is Iterative model- advantages, disadvantages and when to use it?


An iterative life cycle model does not attempt to start with a full specification of requirements. Instead, development begins by specifying and implementing just part of the software, which can then be reviewed in order to identify further requirements. This process is then repeated, producing a new version of the software for each cycle of the model.
For example:

What is RAD model- advantages, disadvantages and when to use it?


RAD model is Rapid Application Development model. It is a type of incremental model. In RAD model the components or functions are developed in parallel as if they were mini projects. The developments are time boxed, delivered and then assembled into a working prototype.  This can quickly give the customer something to see and use and to provide feedback regarding the delivery and their requirements.
The phases in the rapid application development (RAD) model are:
Business modeling: The information flow is identified between various business functions.
Data modeling: Information gathered from business modeling is used to define data objects that are needed for the business.
Process modeling: Data objects defined in data modeling are converted to achieve the business information flow to achieve some specific business objective. Description are identified and created for CRUD of data objects.
Application generation: Automated tools are used to convert process models into code and the actual system.
Testing and turnover: Test new components and all the interfaces.
Advantages of the RAD model:
  • Reduced development time.
  • Increases reusability of components
  • Quick initial reviews occur
  • Encourages customer feedback
  • Integration from very beginning solves a lot of integration issues.
Disadvantages of RAD model:
  • Depends on strong team and individual performances for identifying business requirements.
  • Only system that can be modularized can be built using RAD
  • Requires highly skilled developers/designers.
  • High dependency on modeling skills
  • Inapplicable to cheaper projects as cost of modeling and automated codegeneration is very high.
 When to use RAD model:
  • RAD should be used when there is a need to create a system that can be modularized in 2-3 months of time.
  • It should be used if there’s high availability of designers for modeling and the budget is high enough to afford their cost along with the cost of automated code generating tools.
  • RAD SDLC model should be chosen only if resources with high business knowledge are available and there is a need to produce the system in a short span of time (2-3 months).

What is Incremental model- advantages, disadvantages and when to use it?


In incremental model the whole requirement is divided into various builds. Multiple development cycles take place here, making the life cycle a “multi-waterfall” cycle.  Cycles are divided up into smaller, more easily managed modules.  Each module passes through the requirements, design, implementation and testing phases. A working version of software is produced during the first module, so you have working software early on during the software life cycle. Each subsequent release of the module adds function to the previous release. The process continues till the complete system is achieved.
In the diagram above when we work incrementally we are adding piece by piece but expect that each piece is fully finished. Thus keep on adding the pieces until it’s complete. As in the image above a person has thought of the application. Then he started building it and in the first iteration the first module of the application or product is totally ready and can be demoed to the customers. Likewise in the second iteration the other module is ready and integrated with the first module. Similarly, in the third iteration the whole product is ready and integrated. Hence, the product got ready step by step.
Advantages of Incremental model:
  • Generates working software quickly and early during the software life cycle.
  • This model is more flexible – less costly to change scope and requirements.
  • It is easier to test and debug during a smaller iteration.
  • In this model customer can respond to each built.
  • Lowers initial delivery cost.
  • Easier to manage risk because risky pieces are identified and handled during it’d iteration.
Disadvantages of Incremental model:
  • Needs good planning and design.
  • Needs a clear and complete definition of the whole system before it can be broken down and built incrementally.
  • Total cost is higher than waterfall.
When to use the Incremental model:
  • This model can be used when the requirements of the complete system are clearly defined and understood.
  • Major requirements must be defined; however, some details can evolve with time.
  • There is a need to get a product to the market early.
  • A new technology is being used
  • Resources with needed skill set are not available
  • There are some high risk features and goals.

What is V-model- advantages, disadvantages and when to use it?


V- model means Verification and Validation model. Just like the waterfall model, the V-Shaped life cycle is a sequential path of execution of processes. Each phase must be completed before the next phase begins.  Testing of the product is planned in parallel with a corresponding phase of development.
The various phases of the V-model are as follows:
Requirements like BRS and SRS begin the life cycle model just like the waterfall model. But, in this model before development is started, a system test plan is created.  The test plan focuses on meeting the functionality specified in the requirements gathering.
The high-level design (HLD) phase focuses on system architecture and design. It provide overview of solution, platform, system, product and service/process. An integration test plan is created in this phase as well in order to test the pieces of the software systems ability to work together.
The low-level design (LLD) phase is where the actual software components are designed. It defines the actual logic for each and every component of the system. Class diagram with all the methods and relation between classes comes under LLD. Component tests are created in this phase as well.
The implementation phase is, again, where all coding takes place. Once coding is complete, the path of execution continues up the right side of the V where the test plans developed earlier are now put to use.
Coding: This is at the bottom of the V-Shape model. Module design is converted into code by developers.
Advantages of V-model:
  • Simple and easy to use.
  • Testing activities like planning, test designing happens well before coding. This saves a lot of time. Hence higher chance of success over the waterfall model.
  • Proactive defect tracking – that is defects are found at early stage.
  • Avoids the downward flow of the defects.
  • Works well for small projects where requirements are easily understood.
Disadvantages of V-model:
  • Very rigid and least flexible.
  • Software is developed during the implementation phase, so no early prototypes of the software are produced.
  • If any changes happen in midway, then the test documents along with requirement documents has to be updated.
When to use the V-model:
  • The V-shaped model should be used for small to medium sized projects where requirements are clearly defined and fixed.
  • The V-Shaped model should be chosen when ample technical resources are available with needed technical expertise.
High confidence of customer is required for choosing the V-Shaped model approach. Since, no prototypes are produced, there is a very high risk involved in meeting customer expectations.

What is Waterfall model- advantages, disadvantages and when to use it?


The Waterfall Model was first Process Model to be introduced. It is also referred to as a linear-sequential life cycle model.  It is very simple to understand and use.  In a waterfall model, each phase must be completed fully before the next phase can begin. This type of model is basically used for the for the project which is small and there are no uncertain requirements. At the end of each phase, a review takes place to determine if the project is on the right path and whether or not to continue or discard the project. In this model the testing starts only after the development is complete. In waterfall model phases do not overlap.
Advantages of waterfall model:
  • This model is simple and easy to understand and use.
  • It is easy to manage due to the rigidity of the model – each phase has specific deliverables and a review process.
  • In this model phases are processed and completed one at a time. Phases do not overlap.
  • Waterfall model works well for smaller projects where requirements are very well understood.
 Disadvantages of waterfall model:
  • Once an application is in the testing stage, it is very difficult to go back and change something that was not well-thought out in the concept stage.
  • No working software is produced until late during the life cycle.
  • High amounts of risk and uncertainty.
  • Not a good model for complex and object-oriented projects.
  • Poor model for long and ongoing projects.
  • Not suitable for the projects where requirements are at a moderate to high risk of changing.
When to use the waterfall model:
  • This model is used only when the requirements are very well known, clear and fixed.
  • Product definition is stable.
  • Technology is understood.
  • There are no ambiguous requirements
  • Ample resources with required expertise are available freely
  • The project is short.
Very less customer enter action is involved during the development of the product. Once the product is ready then only it can be demoed to the end users. Once the product is developed and if any failure occurs then the cost of fixing such issues are very high, because we need to update everywhere from document till the logic.

What are the Software Development Models?


The development models are the various processes or methodologies that are being selected for the development of the project depending on the project’s aims and goals. There are many development life cycle models that have been developed in order to achieve different required objectives. The models specify the various stages of the process and the order in which they are carried out.
 The selection of model has very high impact on the testing that is carried out. It will define the what, where and when of our planned testing, influence regression testing and largely determines which test techniques to use.

ETL testing Fundamentals


Comprehensive testing of a data warehouse at every point throughout the ETL (extract, transform, and load) process is becoming increasingly important as more data is being collected and used for strategic decision-making. Data warehouse or ETL testing is often initiated as a result of mergers and acquisitions, compliance and regulations, data consolidation, and the increased reliance on data-driven decision making (use of Business Intelligence tools, etc.). ETL testing is commonly implemented either manually or with the help of a tool (functional testing tool, ETL tool, proprietary utilities). Let us understand some of the basic ETL concepts.

BI / Data Warehousing testing projects can be conjectured to be divided into ETL (Extract – Transform – Load) testing and henceforth the report testing.

Extract Transform Load is the process to enable businesses to consolidate their data while moving it from place to place (i.e.) moving data from source systems into the data warehouse. The data can arrive from any source:

Followers