Top Banner
PATTERNS OF A “GOOD” TEST AUTOMATION FRAMEWORK, LOCATORS & DATA! Anand Bagmar Test Practice Lead
43

Patterns of a "Good" Test Automation Framework, Locators & Data

Jan 08, 2017

Download

Technology

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: Patterns of a "Good" Test Automation Framework, Locators & Data

PATTERNS OF A “GOOD” TEST AUTOMATION FRAMEWORK, LOCATORS & DATA!

Anand Bagmar Test Practice Lead

Page 2: Patterns of a "Good" Test Automation Framework, Locators & Data

@BagmarAnand about.me/anand.bagmar

ABOUT ME

Page 3: Patterns of a "Good" Test Automation Framework, Locators & Data

Test Automation Principle

Page 4: Patterns of a "Good" Test Automation Framework, Locators & Data

Code Quality

Page 5: Patterns of a "Good" Test Automation Framework, Locators & Data

What is a Design Pattern?

Page 6: Patterns of a "Good" Test Automation Framework, Locators & Data
Page 7: Patterns of a "Good" Test Automation Framework, Locators & Data

Have you heard-of or used any

Patterns for Test Automation?

Page 8: Patterns of a "Good" Test Automation Framework, Locators & Data

COMMON PATTERNS USED IN TEST AUTOMATION

¨ Page-Object

¨ Business Layer

¨ Singleton

¨ Composition

¨ Factory

¨ Builder

Page 9: Patterns of a "Good" Test Automation Framework, Locators & Data

Test Automation Framework Patterns

Page 10: Patterns of a "Good" Test Automation Framework, Locators & Data

Case Study

Page 11: Patterns of a "Good" Test Automation Framework, Locators & Data
Page 12: Patterns of a "Good" Test Automation Framework, Locators & Data

Code sample - #1

Page 13: Patterns of a "Good" Test Automation Framework, Locators & Data
Page 14: Patterns of a "Good" Test Automation Framework, Locators & Data

Page-Object Pattern

Page 15: Patterns of a "Good" Test Automation Framework, Locators & Data
Page 16: Patterns of a "Good" Test Automation Framework, Locators & Data

PAGE OBJECT PATTERN

Model pages in code

Simulates user actions

One place change

Reduces code duplication

Snippets of page

Page 17: Patterns of a "Good" Test Automation Framework, Locators & Data

AUTOMATION FRAMEWORK WITH PAGE OBJECTS

Page 18: Patterns of a "Good" Test Automation Framework, Locators & Data

Code sample - #2

Page 19: Patterns of a "Good" Test Automation Framework, Locators & Data

As the framework evolves ….

Page 20: Patterns of a "Good" Test Automation Framework, Locators & Data

AUTOMATION FRAMEWORK WITH PAGE OBJECTS

Page 21: Patterns of a "Good" Test Automation Framework, Locators & Data

Code sample - #3

Page 22: Patterns of a "Good" Test Automation Framework, Locators & Data

LIMITATIONS OF PAGE-OBJECT PATTERN

¨ Test intent gets polluted

¨ Duplication of Test intent & implementation

¨  Intent becomes Imperative

¨ Maintenance challenges

¨ Scaling challenges

Page 23: Patterns of a "Good" Test Automation Framework, Locators & Data

Business-Layer

Page-Object Pattern

Page 24: Patterns of a "Good" Test Automation Framework, Locators & Data

BUSINESS-LAYER PAGE-OBJECT PATTERN

Page 25: Patterns of a "Good" Test Automation Framework, Locators & Data

Code sample - #4

Page 26: Patterns of a "Good" Test Automation Framework, Locators & Data

ADVANTAGES OF BUSINESS-LAYER PAGE-OBJECT PATTERN

¨ Validate what is important - Business requirements

¨ Test Pyramid remains sane

¨ Abstraction layers allow separation-of-concerns

¨ Changes are isolated

¨ Maintenance & Scaling becomes ‘easier’

Page 27: Patterns of a "Good" Test Automation Framework, Locators & Data

Test Data Patterns

Page 28: Patterns of a "Good" Test Automation Framework, Locators & Data

Why do we need to think differently about Test Data?

Page 29: Patterns of a "Good" Test Automation Framework, Locators & Data

CRITERIA FOR TEST DATA

¨ Data is complex

¨ Needs to mimic “real” data

¨ Needs to be unique

¨ Data can be nested

¨ Though specified as static, may need to be Dynamic

¨ Data can be shared and reused

Page 30: Patterns of a "Good" Test Automation Framework, Locators & Data

DIFFERENT WAYS TO SPECIFY TEST DATA

¨  In Test implementation

¨  In Test specification / intent

¨  In code … separate data structures / classes / etc.

¨ External files

Page 31: Patterns of a "Good" Test Automation Framework, Locators & Data

TEST DATA SPECIFICATION EXAMPLES

¨ Excel

¨ CSV

¨ Property

¨ XML

¨ YAML

¨ Database

¨  Json

Page 32: Patterns of a "Good" Test Automation Framework, Locators & Data

Code sample - #5

Page 33: Patterns of a "Good" Test Automation Framework, Locators & Data

CRITERIA FOR SELECTION

¨ Easy to specify

¨ Easy to read and consume (by test framework)

¨ Ability to override specified data, easily

¨ Usable

Page 34: Patterns of a "Good" Test Automation Framework, Locators & Data

TIPS FOR IMPLEMENTATION

¨ Consistent way to specify test data

¨ Read the data – as Business Entities

¨ Override as appropriate

¨ Create DSL to give meaning to data

¨ Use in test implementation

¨  Implement Test Data Entity Utilities – Build, Equals, Copy, Find, etc.

Page 35: Patterns of a "Good" Test Automation Framework, Locators & Data

Locators’ Patterns

Page 36: Patterns of a "Good" Test Automation Framework, Locators & Data

DIFFERENT WAYS TO SPECIFY ELEMENT LOCATORS

¨  In Page-Objects

¨  In separate files, per Page-Object

¨  In external files / locator files

Page 37: Patterns of a "Good" Test Automation Framework, Locators & Data

Advantages of using Patterns for Test Automation

Page 38: Patterns of a "Good" Test Automation Framework, Locators & Data

ADVANTAGES OF PATTERNS

¨ Well known, well understood

¨ Tried & tested solutions for common problems

¨ Reduces complexity

¨ Language neutral

¨ Aid in communication

Page 39: Patterns of a "Good" Test Automation Framework, Locators & Data

ADVANTAGES OF PATTERNS IN TEST AUTOMATION

Saves time & effort (eventually)

Single ownership

Test Automation Code is of Production Quality!

Single point of change

Easy to – - Implement - Maintain - Debug - Scale

Page 40: Patterns of a "Good" Test Automation Framework, Locators & Data

WHICH IS THE “BEST” PATTERN TO USE ?

Page 41: Patterns of a "Good" Test Automation Framework, Locators & Data

It DEPENDS! on the

Context!

Page 42: Patterns of a "Good" Test Automation Framework, Locators & Data

REFERENCES

Page Objects – Google

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

Page Objects – Martin Fowler

http://martinfowler.com/bliki/PageObject.html

Perils of Page-Object Pattern – Anand Bagmar

http://essenceoftesting.blogspot.in/2014/09/perils-of-page-object-pattern.html

Test Design Consideration

http://docs.seleniumhq.org/docs/06_test_design_considerations.jsp

Page 43: Patterns of a "Good" Test Automation Framework, Locators & Data

[email protected] [email protected]

@BagmarAnand

about.me/anand.bagmar

THANK YOU