mobile test automation framework : presented by shankar garg

25
3/10/14

Upload: discuss-agile

Post on 14-Aug-2015

37 views

Category:

Engineering


0 download

TRANSCRIPT

3/10/14

3/10/14

Mobile Test Automation Framework

Shankar Garg

Senior Consultant - Testing

• Problem Statement

• Features of Test Automation Framework

• Tech stack

• Demo 1

• Did we still miss something?

• Demo 2

• Final Solution3/10/14

• Back in the day, one bad customer experience would spread via word-of-mouth and reach few Customers.

• Thanks to Social Media platforms like Twitter , Facebook etc. however, that same word-of-mouth now travels at the speed of light and reaches million users.

• The other major difference is App Store ratings. Imagine if a poor review were stamped directly on the packing of a product.

• These Social Media Ratings and Likes can prove to be a make or break for the brand and product.

3/10/14

Why Quality is important

3/10/14

Current Mobile Landscape

• Frequent app releases:

• Ease of upgrading apps over the air

• Increased user expectations about quicker releases (for bug fixes and new features)

• OS updates like Android M and iOS 9.

3/10/14

Challenges for Mobile Test Teams

• Mobile Test Teams have to repeat the entire test cycle for each of the following:

• Multiple OS – Android and iOS

• Multiple Hardware – Samsung, Apple

• Lot of Regression Testing.

• Test teams are continuously tasked with testing entire applications faster and more often.

Solution – Mobile Test Automation

3/10/14

• Appium is Mobile Test Automation Tool for android and iOS.

• Appium has made life easy for Mobile Automation Teams.

• Appium has enabled test teams to use the same code to test on • Multiple OS

• Multiple hardware

3/10/14

Challenges for Automation Teams

• Appium is for mobile automation only

• What about Test Framework?

• Maintainability

• Reusability

3/10/14

What about Agile Testing ?With the advent of Agile practices, Behavior Driven Development/Testing has also gained more popularity.

Behavior Driven Development

3/10/14

Mobile Test Automation Framework -Features

• Non Technical people can help in Test Automation.

• Requirements are directly converted into Test cases ( to eliminate difference in understanding of Dev and QA)

• Supports multiple OS i.e. iOS, Android etc. ( Same tool can be used to write test case for iOS and Android)

• Inter portability of same test cases on Multiple platform ( Same test case can be run for iOS and Android).

• Maintainability - How easy it is to change/update a test case

• Re-usability - How easy it is to use existing code to write new test cases

3/10/14

What’s the Solution:• No tool alone can solve the problem mentioned

till now.

• What is needed is, the combination of tools which can address these problems when combined together.

3/10/14

Tech Stack• Java• Maven• Appium• Cucumber• GitHub• Jenkins

3/10/14

Why Cucumber?• Cucumber Enables Non Technical team members to help

in Test Automation (by writing feature files).

• Cucumber can be implemented in multiple languages. i.e. Java, Ruby and JavaScript.

• Cucumber can be used to implement projects in wide business areas like enterprise web, Mobile, Web Services.

• Cucumber is very easy to install, implement and learn.

3/10/14

Why Appium?• Support for multiple platforms iOS, Android and Firefox

OS.

• Support for Native, Web and Hybrid Applications.

• Can be implemented in multiple languages Java, PHP, Python, Ruby, C# etc.

• No Additional Library added to AUT.

• Can be implemented with any Testing Framework i.e. JUnit, TestNG, Cucumber etc.

3/10/14

Demo• Application Under Test

• Feature File

• pom.xml

• Glue Code

• Appium Code

• Hooks

3/10/14

What we have achieved• Non Technical people can help in Test Automation.

• Requirements are directly converted into Test cases ( to eliminate difference in understanding of Dev and QA)

• Supports multiple OS i.e. iOS, Android etc. ( Same tool can be used to write test case for iOS and Android)

• Inter portability of same test cases on Multiple platform ( Same test case can be run for iOS and Android).

• Maintainability ( How easy it is to change/update a test case)

• Re-usability ( How easy it is to use existing code to write new test cases)

3/10/14

Is there a problem still?• Locators :are spread across file and if some one needs to

change a locator then he will have to make changes at multiple places.

• we face a risk of some locators not being updated at all.

• To know at what all places the particular locator was defined is the biggest challenge.

• Scope :There is no scope defined for a file, it may contain function for entire application or for some part only. if a new team member joins, then he will face hard time finding a function already defined.

3/10/14

Page Objects:• Framework design approach for maintaining &

accessing components & controls spread across test scenarios.

• Page Object creates a DSL for our tests.

• if something changes on the page we don't need to change the test, we just need to update the object that represents the page.

3/10/14

Page Objects - Guidelines• Each Page object Scope will be limited to one

page of the application only.

• All locators related to that page will be defined in the page object ( all locators will be grouped at one place, possibly on the Top so that it is easy to find and update these).

• All behaviors associated to a page will be described in the page object as functions.

3/10/14

Demo – Page Objects

Page Objects –Benefits

3/10/14

• The beauty of these files is that just by looking at the code, you can relate for which part of the application these files belong to.

• How easy it becomes to change and at the same time how easy it is to add new functionality.

3/10/14

What we have achieved• Non Technical people can help in Test Automation.

• Requirements are directly converted into Test cases ( to eliminate difference in understanding of Dev and QA)

• Supports multiple OS i.e. iOS, Android etc. ( Same tool can be used to write test case for iOS and Android)

• Inter portability of same test cases on Multiple platform ( Same test case can be run for iOS and Android).

• Maintainability ( How easy it is to change/update a test case)

• Re-usability ( How easy it is to use existing code to write new test cases)

3/10/14

Thank You!!

3/10/14