Top Banner
34

Test Automation Framework

Dec 31, 2015

Download

Documents

ahmed-odom

Test Automation Framework. Overview and Strategy Manjula Perera, 24.05.2012. Contents. Software Framework The Easy Way The Better Way Introduction PageObject Pattern Automation Framework Approaches Data/Table Driven Framework Keyword Driven Framework Hybrid Framework - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Test  Automation Framework
Page 2: Test  Automation Framework

Test Automation Framework

Overview and StrategyManjula Perera, 24.05.2012

Page 3: Test  Automation Framework

Test Automation Framework l 24/05/20123

Contents

1. Software Framework2. The Easy Way3. The Better Way

Introduction PageObject Pattern

4. Automation Framework ApproachesData/Table Driven FrameworkKeyword Driven FrameworkHybrid FrameworkGeneric Architecture

5. Guidelines and Lessons LearntTest OrganizationTest Writing StyleBrowser Updates

Page 4: Test  Automation Framework

Test Automation Framework l 24/05/20124

Software Framework What is a software framework?

1

Page 5: Test  Automation Framework

Test Automation Framework l 24/05/20125

Software FrameworkThe definition and key components

A software framework is a universal, reusable software platform used to develop applications, products and solutions (Wikipedia, 2012).

Software Frameworks include,

○ Support Programs

○ Compilers

○ Code Libraries

○ APIs

○ A tool set to integrate different components

Page 6: Test  Automation Framework

Test Automation Framework l 24/05/20126

Software FrameworkFramework 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.

Page 7: Test  Automation Framework

Test Automation Framework l 24/05/20127

The Easy WayWhat is the easy way to automate?

2

Page 8: Test  Automation Framework

Test Automation Framework l 24/05/20128

The easy wayRecords 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.

Page 9: Test  Automation Framework

Test Automation Framework l 24/05/20129

The easy wayPros 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.

Page 10: Test  Automation Framework

Test Automation Framework l 24/05/201210

The Better WayWhat could be a better way of automating?

3

Page 11: Test  Automation Framework

Test Automation Framework l 24/05/201211

The better wayIntroduction

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

Page 12: Test  Automation Framework

The PageClient view of the page

PageObjectsExtracted page objects

Test Automation Framework l 24/05/201212

The better wayPageObject pattern

Page 13: Test  Automation Framework

Test Automation Framework l 24/05/201213

The better wayPageObject class

Page 14: Test  Automation Framework

Test Automation Framework l 24/05/201214

The better wayDos 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

Page 15: Test  Automation Framework

Test Automation Framework l 24/05/201215

The better wayPros 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

Page 16: Test  Automation Framework

Test Automation Framework l 24/05/201216

Automation Framework ApproachesWhat are the available automation frameworks?

4

Page 17: Test  Automation Framework

Test Automation Framework l 24/05/201217

Automation Framework ApproachesData/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

Page 18: Test  Automation Framework

Test Automation Framework l 24/05/201218

Automation Framework ApproachesData/Table Driven Framework

Page 19: Test  Automation Framework

Test Automation Framework l 24/05/201219

Automation Framework ApproachesKeyword Driven Framework

Keyword driven framework is an action based test method used in planning and

implementation of automation.

Page 20: Test  Automation Framework

Test Automation Framework l 24/05/201220

Automation Framework ApproachesHybrid Framework

A mix of Data driven and Keyword driven frameworks.

Page 21: Test  Automation Framework

Test Automation Framework l 24/05/201221

Automation Framework ApproachesGeneric 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.

Test Automation FrameworkTest Automation Framework

(MSTest) Test Execution Engine(MSTest) Test Execution Engine

Functional TestsFunctional Tests

Domain

Engine

Utils

Utils

Selenium Web Driver APISelenium Web Driver API

Page 22: Test  Automation Framework

Test Automation Framework l 24/05/201222

Guidelines and Lessons LearntSome important points to keep in mind

5

Page 23: Test  Automation Framework

Test Automation Framework l 24/05/201223

Automation Framework ApproachesGuidelines 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

Page 24: Test  Automation Framework

Test Automation Framework l 24/05/201224

Automation Framework ApproachesGuidelines 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

Page 25: Test  Automation Framework

Test Automation Framework l 24/05/201225

Functional test organizationPhysical 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

Page 26: Test  Automation Framework

Test Automation Framework l 24/05/201226

Functional test organizationTest 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

Page 27: Test  Automation Framework

Test Automation Framework l 24/05/201227

Functional test writing styleBehavior 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>

Page 28: Test  Automation Framework

Test Automation Framework l 24/05/201228

Functional test writing styleBehavior Driven Development Style Tests

Page 29: Test  Automation Framework

Test Automation Framework l 24/05/201229

Functional test writing styleBehavior 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.

Page 30: Test  Automation Framework

Test Automation Framework l 24/05/201230

Browser UpgradesWhat if the browser upgrades automatically?

– Have a portable version of the browser– Package it with your framework– Starts when the test suite starts

Page 31: Test  Automation Framework

Test Automation Framework l 24/05/201231

A Possible ApproachCan we automate the automation tests?

Page 32: Test  Automation Framework

Test Automation Framework l 24/05/201232

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.

Page 33: Test  Automation Framework

Test Automation Framework l 24/05/201233

References

http://code.google.com/p/selenium/wiki/PageObjects

http://knowledgeinbox.com/articles/automation/frameworks/guidelines-for-automation-framework-design/

http://qaselenium.blogspot.com/2010/11/selenium-automation-framework-design.html

http://en.wikipedia.org/wiki/Software_framework

Page 34: Test  Automation Framework

Thank You