Test Automation Framework

Overview and Strategy



Presented By
Quontra Solutions

IT Courses Online Training With Placement
Support. Attend Free Demo .

Email: info@quontrasolutions.com
Contact: +1 (404)-900-9988
Web: www.quontrasolutions.com
2
Contents
1. Software Framework
2. The Easy Way
3. The Better Way
Introduction
PageObject Pattern
4. Automation Framework Approaches
Data/Table Driven Framework
Keyword Driven Framework
Hybrid Framework
Generic Architecture
5. Guidelines and Lessons Learnt
Test Organization
Test Writing Style
Browser Updates


3
Software Framework
What is a software framework?
4
Software Framework
The definition and key
components
 A software framework is a universal, reusable software platform used to develop applications,
products and solutions.
 Software Frameworks include,

 Support Programs
 Compilers
 Code Libraries
 APIs
 A tool set to integrate different components
5
Software Framework
Framework properties
 A Software framework contain key distinguishing features that separate them from normal
libraries.

 They are,

 Inversion of Control (IOC) the overall program's flow of control is not dictated by
the caller, but by the framework.
 Default behaviour must actually be some useful behavior and not a series of
instructions.
 Extensibility can be extended by the user usually by selective overriding or
specialized by user code providing specific functionality.
 Non modifiable framework code is not allowed to be modified.
6
The Easy Way
What is the easy way to
automate?
7
The easy way - Records all user
activities and play back
 Typically a software testing suite will allow the
tester to use the SUT as a user would, through
the browser.

 In the background the testing suite records all
of the clicks and key presses and discards any
context.

 Later, the recorded events are played back and
various assertions are made to ensure the
output matches that which is expected.

8
The easy way
Pros and Cons
Pros
 Easy and does not required highly skilled software
developers
 Large portions of the application can be covered quickly

Cons
 Small changes to the SUT cause massive disruption in
the tests
 Entire suites of tests can be rendered useless resulting in
reduce testing coverage for extended periods of time
 Test maintenance becomes hard
 Tests begin to stagnate
 Team confidence, in the tests, is reduced.
9
The Better Way
What could be a better way of
automating?
10
The better way
Introduction
 Treat automated testing as software development.

 Tests should be created with the same concern for
software design principles such as,

 Reduced coupling
 High cohesion
 Proper separation of concerns
 Maintainability
 Reusability
11
The better way
PageObject class


12
The better way
Dos and Don’ts
 In PageObjects,

 The public methods represent the services that the page
offers
 Try not to expose the internals of the page
 Generally don't make assertions
 Methods return other PageObjects
 Need not represent an entire page
 Different results for the same action are modeled as
different methods
13
The better way
Pros and Cons
Pros
 Selenium WebDriver supports
 Increased maintainability
 Increase test stability
 Readable tests
 Tests are easy to author

Cons
 Larger up-front cost for creating PageObjects
 More skill is required to create PageObjects
14
Automation Framework
Approaches
What are the available automation
frameworks?
15
Automation Framework
Approaches
Data/Table Driven Framework
 Data driven is the design of possible inputs what may given by the end user. This would cover
maximum probabilities of an input data. It can be a spread sheet or a DB. We have to connect
and pass the values to the respective field or element.

 Take advantage of tester’s familiarity with test case creation using tables and matrices
 Accommodate localization projects
 Recognize the importance of patterns in test cases
 Enable testers to catalog test cases with Excel spreadsheets
 Enable testers to specify expected results in spreadsheets
16
Automation Framework
Approaches
Data/Table Driven Framework
17
Automation Framework
Approaches
Keyword Driven Framework
 Keyword driven framework is an action based test method used in planning and implementation
of automation.
18
Automation Framework
Approaches
Hybrid Framework
 A mix of Data driven and Keyword driven frameworks.
19
Automation Framework
Approaches
Generic Architecture
 A Test Automation Framework should have a multi-
tiered architecture. It should consists of the following
tiers.

 Engine Components in this tier are completely
responsible for interacting with the WebDriver
interfaces.
 Domain This tier is meant to contain only page
objects that work against the engine.
 Utils This tier is meant to contain very generic,
reusable functionality across all the other tiers.
 Functional Tests This tier will contain tests that
are built on top of MSTest to create actual test
scenarios by using page objects in the Domain.
20
Test Automation Framework
(MSTest) Test Execution Engine
Functional Tests
Domain
Engine
U
t
i
l
s


Selenium Web Driver API
Guidelines and Lessons Learnt
Some important points to keep in
mind
21
Automation Framework Approaches
Guidelines for Automation framework design
• Selection of a framework
• Don’t reinvent the wheel - Make use of Selenium WebDriver functionalities
• Reusability
• Support of different application versions
• Support of script versioning
• Different environment for development and production
• Externally Configurable
• Minimal changes required for any object changes
• Execution - Individual, batch, only failed etc
• Status monitoring
• Reporting
• Minimum dependency on Automation tool for changes
22
Automation Framework
Approaches
Guidelines for Automation
framework design
• Easy debugging
• Logging - Errors, warnings, etc
• Easy to Use
• Flexible - Should not impact existing test if changes are required
• Performance impacts
• Coding Standards
23
Functional test organization
Physical file organization
 Test script files (.cs files) are organized into
a folder structure much similar to the web
application’s page structure.

 Reasons to select this approach:
 Easy access to tests
 Testing a section of the application is easy


24
Functional test organization
Test class naming convention
 Test class name should start with the
containing folder name.

 Reasons to select this approach:
 Easy to group tests based on test class
 Testing a section of the application is easy


25

Functional test writing style
Behavior Driven Development Style
Tests
 It is important to be able to break down a
test scenario into the components of a
behavior driven test to ensure clarity. Very
concisely the test writer should be able to
dictate a test scenario as:
 Given <a precondition>
 When <an action takes place>
 Then <expected outcome should be
present>


26
Functional test writing style
Behavior Driven Development
Style Tests


27
Functional test writing style
Behavior Driven Development
Style Tests
 Reasons for selecting this approach:
 This style of test writing allows for a test case to be easily
verbalized and comparable to the system requirements
being validated.

 Since this effort is heavily focused on UI automation, it
makes sense to capture test cases dictating every
behavior of the system and the user.






28
Browser Upgrades
What if the browser upgrades
automatically?
 Have a portable version of the browser
 Package it with your framework
 Starts when the test suite starts


29
Summary

 Automation should be considered as a development
project and not just record and playback of events. Starting
automated testing with a good framework ensures low
maintenance. Guidelines discussed in this paper can be
used as input for developing requirements for a framework.

30
Thank You
31