Question { TCS, 172430 }
what is qtp automation frame work,what is the use of that
frame work?
Answer
Automation frame work is a set of procedures
designed by Automation Testers or their seniors to do a task
in an effective,efficient and an optimized way.
Broadly categorized Framework are :
1) Key Word Driven Testing:Most of the companies follow
keyword framework
The Keyword Driven framework consists of the basic
components given below
1. Control File
2. Test Case File
3. Startup Script
4. Driver Script
5. Utility Script
1. Control File a)Consists details of all the Test scenarios
to be automated b)User will be able to select a specific
scenario to execute based on turning on or off a flag in the
Control File c) Control File is in the form of an excel
worksheet and contains columns for Scenario ID,Execute
(Y/N),Object Repository Path, Test Case File Path
2. Test Case File a)Contains the detailed steps to be
carried out for the execution of a test case b) It is also
in the form of an excel sheet and contains columns for
Keyword, Object Name, Parameter
3. Startup Script a) The Starup script is utilised for the
initialization and reads the control files b) It then calls
the driver script to execute all the scenarios marked for
execution in the control file
4. Driver Script a) It Reads the Test Case files. Checks the
keywords and calls the appropriate utility script functions
based on specific keyword b) Error Handling is taken care of
in the driver script.
5. Utility Scripts a) Perform generic tasks that can be used
across applications. It should not be application dependent
Advantage of Framework.
The main advantage of this framework is the low cost for
maintenace. If there is change to any test case then only
the Test Case File needs to be updated and the Driver Script
and Startup script will remain the same.
No need to update the scripts in case of changes to the
application.
ALSO
Keyword-driven testing is a Software testing technique that
separates much of the programming work from the actual test
steps so that the test steps can be developed earlier and
can often be maintained with only minor updates, even when
the application or testing needs change significantly.
Keyword-driven testing (also: table-driven testing,
action-word testing) is a software testing methodology.
Although keyword testing can be used for manual testing, it
is a technique particularly well suited to automated
testing[1]. The advantages for automated tests are the
reusability and therefore ease of maintenance of tests that
have been created at a high level of abstraction.
Methodology
The keyword-driven testing methodology divides test creation
into two stages: the Planning Stage, and the Implementation
Stage.
Planning Stage
Examples of keywords
A simple keyword (one action on one object), e.g. entering a
username into a textfield.
Object
Action
Data
Textfield (username)
Enter text
A more complex keyword (a combination of other keywords in a
meaningful unit), e.g. logging in.
Object
Action
Data
Textfield (domain)
Enter text
Textfield (username)
Enter text
Textfield (password)
Enter text
Button (login)
Click
One left click
Implementation Stage
The implementation stage differs depending on the tool or
framework used. Often, automation engineers implement a
framework that provides keywords like “check” and “enter”
[1]. Testers or test designers (who don’t have to know how
to program) write test cases based on the keywords defined
in the planning stage that have been implemented by the
engineers. The test is executed using a driver that reads
the keywords and executes the corresponding code.
Other methodologies use an all-in-one implementation stage.
Instead of separating the tasks of test design and test
engineering, the test design is the test automation.
Keywords, such as “enter” or “check” are created using tools
in which the necessary code has already been written. This
removes the necessity for extra engineers in the test
process, because the implementation for the keywords is
already a part of the tool. Tools such as GUIdancer and
Worksoft Certify use this approach.
Benefits
Although this methodology requires more planning and a
longer initial time-investment than going directly to the
test creation stage and recording a test, it does make the
test creation and test maintenance stages more efficient and
keeps the structure of individual tests more readable and
easier to modify. The more abstract keywords are, the more
reusable they are, and therefore the easier a test is to
maintain. As well as reducing the cost and time spent
maintaining and updating tests, the modular structure of
keyword-driven testing means that new tests can easily be
created from pre-existing modules.
Another advantage is the reduction in technical know-how
required for the test automation process. In the first
approach, technical know-how is only required by the
engineers that implement the keywords. In the second
approach, even this is not required, which means that the
test team is capable of entirely automating tests, even
without programming knowledge.
2) Data-driven Testing:
Data-driven testing is a framework where test input and
output values are read from data files (datapools, ODBC
sources, csv files, Excel files, DAO objects, ADO objects,
and such) and are loaded into variables in captured or
manually coded scripts. In this framework, variables are
used for both input values and output verification values.
Navigation through the program, reading of the data files,
and logging of test status and information are all coded in
the test script.
In the testing of software or programs, several
methodologies exist in dictating how this testing will be
performed. Each of these methods exist because they differ
in their effort required to establish initially and then to
subsequently maintain. This article aims to explain the
data-driven method which is part of the automated testing
disciplines.
[edit] Methodology Overview
Data-driven testing is a methodology used in Test automation
where test scripts are executed and verified based on the
data values stored in one or more central data sources or
databases. These databases can range from datapools, ODBC
sources, csv files, Excel files, DAO objects, ADO objects,
etc. Data-driven testing is the establishment of several
interacting test scripts together with their related data
results in a framework used for the methodology. In this
framework, variables are used for both input values and
output verification values: navigation through the program,
reading of the data sources, and logging of test status and
information are all coded in the test script. Thus, the
logic executed in the script is also dependent on the data
values.
This is similar to Keyword-driven testing in that the test
case is contained in the data values and not in the test
script; the script is just a "driver" or delivery mechanism
for the data. Unlike in keyword-driven testing, though, the
navigation data isn't contained in the test script. In
data-driven testing, only test data is contained in the data
source.
3) Modularity-driven testing
The test script modularity framework requires the creation
of small, independent scripts that represent modules,
sections, and functions of the application-under-test. These
small scripts are then used in a hierarchical fashion to
construct larger tests, realizing a particular test case.
Test Script Modularity Framework
The test script modularity framework requires the creation
of small, independent scripts that represent modules,
sections, and functions of the application-under-test. These
small scripts are then used in a hierarchical fashion to
construct larger tests, realizing a particular test case.
Of all the frameworks, this one should be the simplest to
grasp and master. It is a well-known programming strategy to
build an abstraction layer in front of a component to hide
the component from the rest of the application. This
insulates the application from modifications in the
component and provides modularity in the application design.
The test script modularity framework applies this principle
of abstraction or encapsulation in order to improve the
maintainability and scalability of automated test suites.
4)Hybrid
The hybrid Test_Automation_Framework is what most frameworks
evolve into over time and multiple projects. The most
successful automation frameworks generally accommodate both
Keyword-driven_testing as well as Data-driven_testing. This
allows data driven scripts to take advantage of the powerful
libraries and utilities that usually accompany a keyword
driven architecture. The framework utilities can make the
data driven scripts more compact and less prone to failure
than they otherwise would have been. The utilities can also
facilitate the gradual and manageable conversion of existing
scripts to keyword driven equivalents when and where that
appears desirable. On the other hand, the framework can use
scripts to perform some tasks that might be too difficult to
re-implement in a pure keyword driven approach, or where the
keyword driven capabilities are not yet in place.
The Framework
The framework is defined by the Core Data Driven Engine, the
Component Functions, and the Support Libraries (see adjacent
picture) . While the Support Libraries provide generic
routines useful even outside the context of a keyword driven
framework, the core engine and component functions are
highly dependent on the existence of all three elements. The
test execution starts with the LAUNCH TEST(1) script. This
script invokes the Core Data Driven Engine by providing one
or more High-Level Test Tables to CycleDriver(2).
CycleDriver processes these test tables invoking the
SuiteDriver(3) for each Intermediate-Level Test Table it
encounters. SuiteDriver processes these intermediate-level
tables invoking StepDriver(4) for each Low-Level Test Table
it encounters. As StepDriver processes these low-level
tables it attempts to keep the application in synch with the
test. When StepDriver encounters a low-level command for a
specific component, it determines what Type of component is
involved and invokes the corresponding Component Function(5)
module to handle the task.
5)Linear
I hope this will help us to know about Automation Framework
in a detailed manner.
Regards
Soumitro