Advantage of Test Automation framework
- Reusability of code
- Maximum coverage
- Recovery scenario
- Low-cost maintenance
- Minimal manual intervention
- Easy Reporting
Test Automation Frameworks:
- Module Based Testing Framework
- Library Architecture Testing Framework
- Data Driven Testing Framework
- Keyword Driven Testing Framework
- Hybrid Testing Framework
- Behavior Driven Development Framework
#1) Module Based Testing Framework
Module based
Testing Framework is based on one of the popularly known OOPs concept –
Abstraction. The framework divides the entire “Application Under Test” into a
number of logical and isolated modules. For each module, we create a separate
and independent test script. Thus, when these test scripts took together builds
a larger test script representing more than one modules.
These modules are
separated by an abstraction layer in such a way that the changes made in the
sections of the application doesn’t yield affects on this module.
#2)
Library Architecture Testing Framework
The
Library Architecture Testing Framework is fundamentally and foundationally
built on Module Based Testing Framework with some additional advantages.
Instead of dividing the application under test into test scripts, we segregate
the application into functions or rather common functions can be used by the
other parts of the application as well. Thus we create a common library
constituting of common functions for the application under test. Therefore,
these libraries can be called from the test scripts whenever required.
The
basic fundamental behind the framework is to determine the common steps and
group them into functions under a library and call those functions in the test
scripts whenever required.
Example: The login steps can be combined
into a function and kept into a library. Thus all the test scripts those
require to login the application can call that function instead of writing the
code all over again.
#3) Data
Driven Testing Framework
While
automating or testing any application, at times it may be required to test the
same functionality multiple times with the different set of input data. Thus,
in such cases, we can’t let the test data embedded in the test script. Hence it
is advised to retain test data into some external database outside the test
scripts.
Data
Driven Testing Framework helps the user segregate the test script logic and the
test data from each other. It lets the user store the test data into an
external database. The external databases can be property files, xml files,
excel files, text files, CSV files, ODBC repositories etc. The data is
conventionally stored in “Key-Value” pairs. Thus, the key can be used to access
and populate the data within the test scripts.
Note: The test data stored in an external file can belong to the
matrix of expected value as well as the matrix of input values.
Example:
Let
us understand the above mechanism with the help of an example.
Let
us consider the “Gmail – Login” Functionality.
Step 1: First and the foremost step are to
create an external file that stores the test data (Input data and Expected
Data).
Step 2: The next step is to populate the test data into
Automation test Script. For this purpose, several API’s can be used to read the
test data.
The above method helps to read the test data and the below test
step helps the user to type in the test data on the GUI.
element.sendKeys(obj_value.get(obj_index));
#4)
Keyword Driven Testing Framework
The
Keyword driven testing framework is an extension to Data driven Testing
Framework in a sense that it not only segregates the test data from the
scripts, it also keeps the certain set of code belonging to the test script
into an external data file.
These
set of code are known as Keywords and hence the framework is so named. Keywords
are self-guiding as to what actions need to be performed on the application.
The
keywords and the test data are stored in a tabular like structure and thus it
is also popularly regarded as Table driven Framework. Take a notice that
keywords and test data are entities independent of the automation tool being
used.
Example Test case of Keyword Driven Test Framework
In the above example, keywords like login, clicking and verify
Link are defined within the code.
Depending upon the nature of application keywords can be derived. And all the keywords can be reused multiple times in a single test case. Locator column contains the locator value that is used to identify the web elements on the screen or the test data that needs to be supplied.
Depending upon the nature of application keywords can be derived. And all the keywords can be reused multiple times in a single test case. Locator column contains the locator value that is used to identify the web elements on the screen or the test data that needs to be supplied.
All
the required keywords are designed and placed in the base code of the
framework.
#5)
Hybrid Testing Framework
As
the name suggests, the Hybrid Testing Framework is a combination of more than
one above mentioned frameworks. The best thing about such a setup is that it
leverages the benefits of all kinds of associated frameworks.
Example of Hybrid Framework
Test sheet would contain both the keywords and the Data.
In the above example, keyword column contains all the required keywords used in the particular test case and data column drives all the data required in the test scenario. If any step does not need any input then it can be left empty.
#6) Behavior Driven Development Framework
Behavior Driven Development framework allows automation of functional validations in easily readable and understandable format to Business Analysts, Developers, Testers, etc. Such frameworks do not necessarily require the user to be acquainted with the programming language. There are different tools available for BDD like cucumber, Jbehave etc. Details of BDD framework are discussed later in Cucumber tutorial. We have also discussed details on Gherkin language to write test cases in Cucumber.
Example of Hybrid Framework
Test sheet would contain both the keywords and the Data.
In the above example, keyword column contains all the required keywords used in the particular test case and data column drives all the data required in the test scenario. If any step does not need any input then it can be left empty.
#6) Behavior Driven Development Framework
Behavior Driven Development framework allows automation of functional validations in easily readable and understandable format to Business Analysts, Developers, Testers, etc. Such frameworks do not necessarily require the user to be acquainted with the programming language. There are different tools available for BDD like cucumber, Jbehave etc. Details of BDD framework are discussed later in Cucumber tutorial. We have also discussed details on Gherkin language to write test cases in Cucumber.
Components of Automation Testing Framework
Though the above pictorial representation of a framework is
self-explanatory we would still highlight a few points.
1.
Object Repository: Object
Repository acronym as OR is constituted of the set of locators types associated
with web elements.
2.
Test Data: The
input data with which the scenario would be tested and it can be the expected
values with which the actual results would be compared.
3.
Configuration File/Constants/ Environment
Settings: The file stores the information regarding the application URL,
browser-specific information etc. It is generally the information that remains
static throughout the framework.
4.
Generics/ Program logics/ Readers: These
are the classes that store the functions which can be commonly used across the
entire framework.
5.
Build tools and Continuous Integration: These
are the tools that aids to the capabilities of the framework to generate test
reports, email notifications and logging information.
Conclusion
The
frameworks illustrated above are the most popular frameworks used by the
testing fraternity. There are various other frameworks also in the place. For
all the further tutorials we would base on the Data Driven Testing Framework.
In this tutorial, we discussed the basics of an Automation
Framework. We also discussed the types of frameworks available in the market.
tags;
#selenium, #testautomationframework, #framework, #automation, #testing, #softwaretesting
#selenium, #testautomationframework, #framework, #automation, #testing, #softwaretesting
No comments:
Post a Comment