SlideShare a Scribd company logo
1
A UNIVERSAL AUTOMATION
FRAMEWORK BASED ON BDD
CUCUMBER AND RUBY ON RAILS
SPEAKER: Anh Pham
INFOdation Viet Nam
AGENDA
2
Behavior-Driven Development
Automation Testing with Cucumber
BDD/Cucumber – Pros & Cons
Our Solutions: A Universal Test Automation
Framework
Demos
Future work
Q & A
3
Behavior Driven Development
Behavior Driven Development
4
Given When Then
to set up the
context where
the scenario
happens
to interact with
the system
somehow
to check that
the outcome of
that interaction
was what we
expected
An Example
Given I am on Amazon site
When I search for an Ipad
Then I should receive a list of Ipads
with various prices
5
Automation Testing With BDD Cucumber
Given(/^I am on the "([^"]*)" page$/) do |page|
visit(page)
end
And /^I set text on "(.*?)" with "(.*?)"$/ do |object,
text|
fill_in object, :with => text
end
Automation Testing With BDD
Cucumber
6
Feature: Login to the system
As a User role
I want to login into system with provided
username and password
Scenario: Verify that user can login system
Given I am on “localhost” page
When I set text on “UserName” with “usertest”
And I set text on “Password” with “Passwordtest”
And I click on “login” button
Then I verify that I am on “Dashboard” page
7
BDD/CUCUMBER – PROS & CONS
BDD/CUCUMBER - PROS
8
 BDD is FRIENDLY and UNDERSTANDABLE by non-
technical User.
 It is OPEN-SOURCE and large community supported.
 Multiple programing languages supported: Java,Ruby
Groovy, etc.
 Support on MULTIPLE PLATFORM, OS and different
browsers.
BDD/CUCUMBER - CONS
9
 Lacking of tool for managing Features, Scenario,
Report effectively.
 Need to set-up Ruby environment on each User’s PC.
 IN- COMPATIBILITY among Gem versions.
10
OUR SOLUTIONS – A Universal
Automation Framework Based BDD
Cucumber – Ruby on Rails - Appium
…Web and Web Services Testing
11
Feature: Login to the system
As a user, I want to login the system when I provide username and password.
Scenario: Verify user can login to the system successfully with valid account
Given I am on Login Page
When I login into system with username "testMYM2@gmail.com" and password "123456"
Then I am on Dashboard page
When /^I login into system with username "(.*)" and password "(.*)"$/ do |username, password|
step %{I set text on "textbox_username" with "#{username}"}
step %{I set text on "textbox_password" with "#{password}"}
step %{I click on "button_login"}
end
default_browser: chrome
wait_time: 30
test_page_address: http://mymethods.dev-infodation.com/
textbox_username: {xpath_selector: '//*[@id="login_user"]'}
textbox_password: {xpath_selector: '//*[@id="login_pass"]'}
And /^I click on "([^"]*)"$/ do |object|
execute_click(object)
end
When /^I send a POST XML request to "(.*?)" with the following file "(.*?)"$/ do |type, file|
file = Util.bind_with_dyn_vars(file)
url = Util.bind_with_dyn_vars($WS_URL)
# url=$WS_URL
data = File.read($test_data_dir + file)
$result=IFD_WS.send_XML_post_webservice(url,type,data)
end
def self.get_mysql_db_connection(schema)
begin
puts ("Connecting to database...");
data_source_schema = schema.downcase
return Mysql2::Client.new(host: $data_source_url, username: $data_source_username, password:
$data_source_password,database:data_source_schema);
rescue Exception => e
raise "Cannot connect to database [username: %s; password: %s, dbUrl: %s, dbName: %s] with error %s"
%
[$data_source_username, $data_source_password, $data_source_url,data_source_schema,
e.message]
end
end
Demo - Scenario Example
in BDD Format
12
Feature: Create a new user
In order to create new user account
As a User role
I want to create new user account
So that new user can be created successfully
Background: Clean up data before creating new user
Given I delete user email stc@demo.com if it is already existed on
database portal
Scenario: Create a new user
Given I am on Sign-up page
When I register new user name Anh Pham with email stc@demo.com
password 123456, password confirmation 123456
Then I verify user email stc@demo.com exists on database portal
…Web and Web Services Testing
13
Feature: Login to Bedder App
As a User role
I want to login into system with provided username and password
Scenario: Verify that user can login to Bedder mobile application
Given I have App running with appium
When I login to Bedder app with username "Test1c@infodation.vn" and password "111111"
Then I am on Dashboard Page
…Mobile Testing
14
JSON WIRE OVER HTTP
When /^I login to Bedder app with username "(.*)" and password "(.*)"$/ do |username, password|
step %{I input text "#{username}" on "bedder_signin_username"}
step %{I wait for 1 seconds}
step %{I input text "#{password}" on "bedder_signin_password"}
step %{I wait for 1 seconds}
step %{I click on "bedder_signin_login_button"}
end
And /^I input text "(.*)" on "(.*)"$/ do |text,object|
execute_settext(object,text)
end
And /^I click on "(.*)"$/ do |object|
execute_click object
end
def execute_click element
found_element = find_object element
if found_element != nil
startTime = Time.new.to_i
begin
sleep(1)
currentTime= Time.new.to_i
end while (currentTime - startTime) < $_CONFIG['Wait Time']
# selenium.execute_script('mobile: scroll', found_element)
found_element.click
else
put_log "nERROR: *** not found object: #{element}"
end
end
Demo - Scenario Example
in BDD Format
15
Feature: Login to Bedder App
As a User role
I want to login into system with provided username and password
Scenario: Verify that user can login to Bedder mobile
application
Given I have App running with appium
When I login to Bedder app with username
"Test1c@infodation.vn" and password "111111"
Then I am on Dashboard Page
…Mobile Testing
16
17
So, What Does This Universal Automation
Framework Resolve?
Universal Automation Framework
18
Universal Automation Framework
19
 Simplify the installation process and automation scripting.
 Quick adaptability when GUI elements changed.
 Ability to version Features, Scenarios and Reports.
 System deployment and Test management system
integrated.
20
Now, Let’s See The Architecture
Packaging Automation to RUBYGEM
Universal Automation Framework
21
22
Finally, It’s Universal...
Universal Automation Framework
23
Login to System
Define Features, Scenarios
Pull Code
Commit & Push code
Universal Automation Framework
24
Universal Automation Framework
25
Universal Automation Framework
26
27
Summary
Summary
Automation Framework (Core)
Portal System
Jan - 2016 Apr - 2016 Jun - 2016
Resource Allocation Man - days
Dev 1 70
Automation Tester 1 90
Total 2 160
28
29
Future Work
Future Work
Jira Integration
Confluence Integration
 Requirement Management
30
Q & A
31
© 2014 HCMC Software Testing Club
THANK YOU
Ad

More Related Content

What's hot (20)

Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)
Leonard Fingerman
 
Test Automation Framework using Cucumber BDD overview (part 1)
Test Automation Framework using Cucumber BDD overview (part 1)Test Automation Framework using Cucumber BDD overview (part 1)
Test Automation Framework using Cucumber BDD overview (part 1)
Mindfire Solutions
 
Domain-Driven Design with ASP.NET MVC
Domain-Driven Design with ASP.NET MVCDomain-Driven Design with ASP.NET MVC
Domain-Driven Design with ASP.NET MVC
Steven Smith
 
Deep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UKDeep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UK
José Paumard
 
REST APIs with Spring
REST APIs with SpringREST APIs with Spring
REST APIs with Spring
Joshua Long
 
QA Challenge Accepted 4.0 - Cypress vs. Selenium
QA Challenge Accepted 4.0 - Cypress vs. SeleniumQA Challenge Accepted 4.0 - Cypress vs. Selenium
QA Challenge Accepted 4.0 - Cypress vs. Selenium
Lyudmil Latinov
 
Introduction to selenium
Introduction to seleniumIntroduction to selenium
Introduction to selenium
Archana Krushnan
 
Performance Testing using Loadrunner
Performance Testingusing LoadrunnerPerformance Testingusing Loadrunner
Performance Testing using Loadrunner
hmfive
 
Behavior driven development (bdd)
Behavior driven development (bdd)Behavior driven development (bdd)
Behavior driven development (bdd)
Rohit Bisht
 
An Introduction To Automated API Testing
An Introduction To Automated API TestingAn Introduction To Automated API Testing
An Introduction To Automated API Testing
Sauce Labs
 
React workshop presentation
React workshop presentationReact workshop presentation
React workshop presentation
Bojan Golubović
 
Ppt of soap ui
Ppt of soap uiPpt of soap ui
Ppt of soap ui
pkslide28
 
Introdução ao React
Introdução ao ReactIntrodução ao React
Introdução ao React
Luiz Paulo dos Prazeres Júnior
 
REST API testing with SpecFlow
REST API testing with SpecFlowREST API testing with SpecFlow
REST API testing with SpecFlow
Aiste Stikliute
 
Maven ppt
Maven pptMaven ppt
Maven ppt
natashasweety7
 
Cross browser testing
Cross browser testingCross browser testing
Cross browser testing
Perfecto Mobile
 
Spring Framework - Core
Spring Framework - CoreSpring Framework - Core
Spring Framework - Core
Dzmitry Naskou
 
Cypress Automation
Cypress  AutomationCypress  Automation
Cypress Automation
Susantha Pathirana
 
Cypress e2e automation testing - day1 intor by: Hassan Hameed
Cypress e2e automation testing -  day1 intor by: Hassan HameedCypress e2e automation testing -  day1 intor by: Hassan Hameed
Cypress e2e automation testing - day1 intor by: Hassan Hameed
Hassan Muhammad
 
Api security-testing
Api security-testingApi security-testing
Api security-testing
n|u - The Open Security Community
 
Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)
Leonard Fingerman
 
Test Automation Framework using Cucumber BDD overview (part 1)
Test Automation Framework using Cucumber BDD overview (part 1)Test Automation Framework using Cucumber BDD overview (part 1)
Test Automation Framework using Cucumber BDD overview (part 1)
Mindfire Solutions
 
Domain-Driven Design with ASP.NET MVC
Domain-Driven Design with ASP.NET MVCDomain-Driven Design with ASP.NET MVC
Domain-Driven Design with ASP.NET MVC
Steven Smith
 
Deep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UKDeep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UK
José Paumard
 
REST APIs with Spring
REST APIs with SpringREST APIs with Spring
REST APIs with Spring
Joshua Long
 
QA Challenge Accepted 4.0 - Cypress vs. Selenium
QA Challenge Accepted 4.0 - Cypress vs. SeleniumQA Challenge Accepted 4.0 - Cypress vs. Selenium
QA Challenge Accepted 4.0 - Cypress vs. Selenium
Lyudmil Latinov
 
Performance Testing using Loadrunner
Performance Testingusing LoadrunnerPerformance Testingusing Loadrunner
Performance Testing using Loadrunner
hmfive
 
Behavior driven development (bdd)
Behavior driven development (bdd)Behavior driven development (bdd)
Behavior driven development (bdd)
Rohit Bisht
 
An Introduction To Automated API Testing
An Introduction To Automated API TestingAn Introduction To Automated API Testing
An Introduction To Automated API Testing
Sauce Labs
 
React workshop presentation
React workshop presentationReact workshop presentation
React workshop presentation
Bojan Golubović
 
Ppt of soap ui
Ppt of soap uiPpt of soap ui
Ppt of soap ui
pkslide28
 
REST API testing with SpecFlow
REST API testing with SpecFlowREST API testing with SpecFlow
REST API testing with SpecFlow
Aiste Stikliute
 
Spring Framework - Core
Spring Framework - CoreSpring Framework - Core
Spring Framework - Core
Dzmitry Naskou
 
Cypress e2e automation testing - day1 intor by: Hassan Hameed
Cypress e2e automation testing -  day1 intor by: Hassan HameedCypress e2e automation testing -  day1 intor by: Hassan Hameed
Cypress e2e automation testing - day1 intor by: Hassan Hameed
Hassan Muhammad
 

Viewers also liked (20)

A Novel Approach of Automation Test for Software Monitoring Solution - Tran S...
A Novel Approach of Automation Test for Software Monitoring Solution - Tran S...A Novel Approach of Automation Test for Software Monitoring Solution - Tran S...
A Novel Approach of Automation Test for Software Monitoring Solution - Tran S...
Ho Chi Minh City Software Testing Club
 
Agile Testing - Not Just Tester’s Story _ Dang Thanh Long
Agile Testing - Not Just Tester’s Story _ Dang Thanh LongAgile Testing - Not Just Tester’s Story _ Dang Thanh Long
Agile Testing - Not Just Tester’s Story _ Dang Thanh Long
Ho Chi Minh City Software Testing Club
 
The New Agile Testing Quadrants: Bringing Skilled Testers and Developers Toge...
The New Agile Testing Quadrants: Bringing Skilled Testers and Developers Toge...The New Agile Testing Quadrants: Bringing Skilled Testers and Developers Toge...
The New Agile Testing Quadrants: Bringing Skilled Testers and Developers Toge...
Ho Chi Minh City Software Testing Club
 
Analytical Risk-based and Specification-based Testing - Bui Duy Tam
Analytical Risk-based and Specification-based Testing - Bui Duy TamAnalytical Risk-based and Specification-based Testing - Bui Duy Tam
Analytical Risk-based and Specification-based Testing - Bui Duy Tam
Ho Chi Minh City Software Testing Club
 
Mobile Video Games Testing Principles - Benjamin Poirrier
Mobile Video Games Testing Principles - Benjamin PoirrierMobile Video Games Testing Principles - Benjamin Poirrier
Mobile Video Games Testing Principles - Benjamin Poirrier
Ho Chi Minh City Software Testing Club
 
Security testing-What can we do - Trinh Minh Hien
Security testing-What can we do - Trinh Minh HienSecurity testing-What can we do - Trinh Minh Hien
Security testing-What can we do - Trinh Minh Hien
Ho Chi Minh City Software Testing Club
 
Deliver Fast, Break Nothing Via Effective Building Developer and Tester Colla...
Deliver Fast, Break Nothing Via Effective Building Developer and Tester Colla...Deliver Fast, Break Nothing Via Effective Building Developer and Tester Colla...
Deliver Fast, Break Nothing Via Effective Building Developer and Tester Colla...
Ho Chi Minh City Software Testing Club
 
Test Design with Action-based Testing Methodology - Ngo Hoang Minh
Test Design with Action-based Testing Methodology - Ngo Hoang MinhTest Design with Action-based Testing Methodology - Ngo Hoang Minh
Test Design with Action-based Testing Methodology - Ngo Hoang Minh
Ho Chi Minh City Software Testing Club
 
Introduction to Back End Automation Testing - Nguyen Vu Hoang, Hoang Phi
Introduction to Back End Automation Testing - Nguyen Vu Hoang, Hoang PhiIntroduction to Back End Automation Testing - Nguyen Vu Hoang, Hoang Phi
Introduction to Back End Automation Testing - Nguyen Vu Hoang, Hoang Phi
Ho Chi Minh City Software Testing Club
 
Web API Test Automation Using Frisby & Node.js
Web API Test Automation Using Frisby  & Node.jsWeb API Test Automation Using Frisby  & Node.js
Web API Test Automation Using Frisby & Node.js
Ho Chi Minh City Software Testing Club
 
Common Web UI Problems Transforming Manual to Automation
Common Web UI Problems Transforming Manual to Automation Common Web UI Problems Transforming Manual to Automation
Common Web UI Problems Transforming Manual to Automation
Ho Chi Minh City Software Testing Club
 
[HCMC STC Jan 2015] Making IT Count – Agile Test Metrics
[HCMC STC Jan 2015] Making IT Count – Agile Test Metrics[HCMC STC Jan 2015] Making IT Count – Agile Test Metrics
[HCMC STC Jan 2015] Making IT Count – Agile Test Metrics
Ho Chi Minh City Software Testing Club
 
[HCMC STC Jan 2015] Practical Experiences In Test Automation
[HCMC STC Jan 2015] Practical Experiences In Test Automation[HCMC STC Jan 2015] Practical Experiences In Test Automation
[HCMC STC Jan 2015] Practical Experiences In Test Automation
Ho Chi Minh City Software Testing Club
 
[HCMC STC Jan 2015] FATS: A Framework For Automated Testing Scenarios
[HCMC STC Jan 2015] FATS: A Framework For Automated Testing Scenarios[HCMC STC Jan 2015] FATS: A Framework For Automated Testing Scenarios
[HCMC STC Jan 2015] FATS: A Framework For Automated Testing Scenarios
Ho Chi Minh City Software Testing Club
 
Building an effective mobile testing strategy
Building an effective mobile testing strategyBuilding an effective mobile testing strategy
Building an effective mobile testing strategy
Ho Chi Minh City Software Testing Club
 
[HCMC STC Jan 2015] Risk-Based Software Testing Approaches
[HCMC STC Jan 2015] Risk-Based Software Testing Approaches[HCMC STC Jan 2015] Risk-Based Software Testing Approaches
[HCMC STC Jan 2015] Risk-Based Software Testing Approaches
Ho Chi Minh City Software Testing Club
 
Why a Mobile Test Strategy is just Test Strategy
Why a Mobile Test Strategy is just Test StrategyWhy a Mobile Test Strategy is just Test Strategy
Why a Mobile Test Strategy is just Test Strategy
Ho Chi Minh City Software Testing Club
 
Key Factors To Ensure Test Automation Framework Success
Key Factors To Ensure Test Automation Framework SuccessKey Factors To Ensure Test Automation Framework Success
Key Factors To Ensure Test Automation Framework Success
Ho Chi Minh City Software Testing Club
 
Getting Started with Android Development
Getting Started with Android DevelopmentGetting Started with Android Development
Getting Started with Android Development
Edureka!
 
Pyunit
PyunitPyunit
Pyunit
Ikuru Kanuma
 
A Novel Approach of Automation Test for Software Monitoring Solution - Tran S...
A Novel Approach of Automation Test for Software Monitoring Solution - Tran S...A Novel Approach of Automation Test for Software Monitoring Solution - Tran S...
A Novel Approach of Automation Test for Software Monitoring Solution - Tran S...
Ho Chi Minh City Software Testing Club
 
The New Agile Testing Quadrants: Bringing Skilled Testers and Developers Toge...
The New Agile Testing Quadrants: Bringing Skilled Testers and Developers Toge...The New Agile Testing Quadrants: Bringing Skilled Testers and Developers Toge...
The New Agile Testing Quadrants: Bringing Skilled Testers and Developers Toge...
Ho Chi Minh City Software Testing Club
 
Deliver Fast, Break Nothing Via Effective Building Developer and Tester Colla...
Deliver Fast, Break Nothing Via Effective Building Developer and Tester Colla...Deliver Fast, Break Nothing Via Effective Building Developer and Tester Colla...
Deliver Fast, Break Nothing Via Effective Building Developer and Tester Colla...
Ho Chi Minh City Software Testing Club
 
Introduction to Back End Automation Testing - Nguyen Vu Hoang, Hoang Phi
Introduction to Back End Automation Testing - Nguyen Vu Hoang, Hoang PhiIntroduction to Back End Automation Testing - Nguyen Vu Hoang, Hoang Phi
Introduction to Back End Automation Testing - Nguyen Vu Hoang, Hoang Phi
Ho Chi Minh City Software Testing Club
 
Getting Started with Android Development
Getting Started with Android DevelopmentGetting Started with Android Development
Getting Started with Android Development
Edureka!
 
Ad

Similar to A Universal Automation Framework based on BDD Cucumber and Ruby on Rails - Pham Quoc Anh (20)

How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
Wim Selles
 
Introduce cucumber
Introduce cucumberIntroduce cucumber
Introduce cucumber
Bachue Zhou
 
iOS and Android apps automation
iOS and Android apps automationiOS and Android apps automation
iOS and Android apps automation
Sridhar Ramakrishnan
 
[Thong Nguyen & Trong Bui] Behavior Driven Development (BDD) and Automation T...
[Thong Nguyen & Trong Bui] Behavior Driven Development (BDD) and Automation T...[Thong Nguyen & Trong Bui] Behavior Driven Development (BDD) and Automation T...
[Thong Nguyen & Trong Bui] Behavior Driven Development (BDD) and Automation T...
Ho Chi Minh City Software Testing Club
 
Test automation
Test  automationTest  automation
Test automation
Kaushik Banerjee
 
How React Native Appium and me made each other shine
How React Native Appium and me made each other shineHow React Native Appium and me made each other shine
How React Native Appium and me made each other shine
Wim Selles
 
Watir web automated tests
Watir web automated testsWatir web automated tests
Watir web automated tests
Nexle Corporation
 
Unit3.pptx
Unit3.pptxUnit3.pptx
Unit3.pptx
AnamikaRai59
 
Write Tests in End Users’ Lingo
Write Tests in End Users’ LingoWrite Tests in End Users’ Lingo
Write Tests in End Users’ Lingo
IndicThreads
 
RubyBarCamp “Полезные gems и plugins”
RubyBarCamp “Полезные gems и plugins”RubyBarCamp “Полезные gems и plugins”
RubyBarCamp “Полезные gems и plugins”
apostlion
 
Transformando os pepinos do cliente no código de testes da sua aplicação
Transformando os pepinos do cliente no código de testes da sua aplicaçãoTransformando os pepinos do cliente no código de testes da sua aplicação
Transformando os pepinos do cliente no código de testes da sua aplicação
Rodrigo Urubatan
 
Parsing in ios to create an app
Parsing in ios to create an appParsing in ios to create an app
Parsing in ios to create an app
HeaderLabs .
 
20150812 4시간만에 따라해보는 windows 10 앱 개발
20150812  4시간만에 따라해보는 windows 10 앱 개발20150812  4시간만에 따라해보는 windows 10 앱 개발
20150812 4시간만에 따라해보는 windows 10 앱 개발
영욱 김
 
Html basics 11 form validation
Html basics 11 form validationHtml basics 11 form validation
Html basics 11 form validation
H K
 
6 Things You Didn't Know About Firebase Auth
6 Things You Didn't Know About Firebase Auth6 Things You Didn't Know About Firebase Auth
6 Things You Didn't Know About Firebase Auth
Peter Friese
 
Web 5 | JavaScript Events
Web 5 | JavaScript EventsWeb 5 | JavaScript Events
Web 5 | JavaScript Events
Mohammad Imam Hossain
 
Android testing calabash
Android testing calabashAndroid testing calabash
Android testing calabash
kellinreaver
 
Open microsoft visual studio/tutorialoutlet
Open microsoft visual studio/tutorialoutletOpen microsoft visual studio/tutorialoutlet
Open microsoft visual studio/tutorialoutlet
Mitchinson
 
I put on my mink and wizard behat
I put on my mink and wizard behatI put on my mink and wizard behat
I put on my mink and wizard behat
xsist10
 
Test-driven Development with Drupal and Codeception (DrupalCamp Brighton)
Test-driven Development with Drupal and Codeception (DrupalCamp Brighton)Test-driven Development with Drupal and Codeception (DrupalCamp Brighton)
Test-driven Development with Drupal and Codeception (DrupalCamp Brighton)
Cogapp
 
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
Wim Selles
 
Introduce cucumber
Introduce cucumberIntroduce cucumber
Introduce cucumber
Bachue Zhou
 
[Thong Nguyen & Trong Bui] Behavior Driven Development (BDD) and Automation T...
[Thong Nguyen & Trong Bui] Behavior Driven Development (BDD) and Automation T...[Thong Nguyen & Trong Bui] Behavior Driven Development (BDD) and Automation T...
[Thong Nguyen & Trong Bui] Behavior Driven Development (BDD) and Automation T...
Ho Chi Minh City Software Testing Club
 
How React Native Appium and me made each other shine
How React Native Appium and me made each other shineHow React Native Appium and me made each other shine
How React Native Appium and me made each other shine
Wim Selles
 
Write Tests in End Users’ Lingo
Write Tests in End Users’ LingoWrite Tests in End Users’ Lingo
Write Tests in End Users’ Lingo
IndicThreads
 
RubyBarCamp “Полезные gems и plugins”
RubyBarCamp “Полезные gems и plugins”RubyBarCamp “Полезные gems и plugins”
RubyBarCamp “Полезные gems и plugins”
apostlion
 
Transformando os pepinos do cliente no código de testes da sua aplicação
Transformando os pepinos do cliente no código de testes da sua aplicaçãoTransformando os pepinos do cliente no código de testes da sua aplicação
Transformando os pepinos do cliente no código de testes da sua aplicação
Rodrigo Urubatan
 
Parsing in ios to create an app
Parsing in ios to create an appParsing in ios to create an app
Parsing in ios to create an app
HeaderLabs .
 
20150812 4시간만에 따라해보는 windows 10 앱 개발
20150812  4시간만에 따라해보는 windows 10 앱 개발20150812  4시간만에 따라해보는 windows 10 앱 개발
20150812 4시간만에 따라해보는 windows 10 앱 개발
영욱 김
 
Html basics 11 form validation
Html basics 11 form validationHtml basics 11 form validation
Html basics 11 form validation
H K
 
6 Things You Didn't Know About Firebase Auth
6 Things You Didn't Know About Firebase Auth6 Things You Didn't Know About Firebase Auth
6 Things You Didn't Know About Firebase Auth
Peter Friese
 
Android testing calabash
Android testing calabashAndroid testing calabash
Android testing calabash
kellinreaver
 
Open microsoft visual studio/tutorialoutlet
Open microsoft visual studio/tutorialoutletOpen microsoft visual studio/tutorialoutlet
Open microsoft visual studio/tutorialoutlet
Mitchinson
 
I put on my mink and wizard behat
I put on my mink and wizard behatI put on my mink and wizard behat
I put on my mink and wizard behat
xsist10
 
Test-driven Development with Drupal and Codeception (DrupalCamp Brighton)
Test-driven Development with Drupal and Codeception (DrupalCamp Brighton)Test-driven Development with Drupal and Codeception (DrupalCamp Brighton)
Test-driven Development with Drupal and Codeception (DrupalCamp Brighton)
Cogapp
 
Ad

More from Ho Chi Minh City Software Testing Club (11)

[HCMC STC Jan 2015] Workshop Of Context-Driven Testing In Agile
[HCMC STC Jan 2015] Workshop Of Context-Driven Testing In Agile[HCMC STC Jan 2015] Workshop Of Context-Driven Testing In Agile
[HCMC STC Jan 2015] Workshop Of Context-Driven Testing In Agile
Ho Chi Minh City Software Testing Club
 
[HCMC STC Jan 2015] Developing an Offshore Context-Driven Testing Team
[HCMC STC Jan 2015] Developing an Offshore Context-Driven Testing Team[HCMC STC Jan 2015] Developing an Offshore Context-Driven Testing Team
[HCMC STC Jan 2015] Developing an Offshore Context-Driven Testing Team
Ho Chi Minh City Software Testing Club
 
[HCMC STC Jan 2015] Proving Our Worth Quantifying The Value Of Testing
[HCMC STC Jan 2015] Proving Our Worth  Quantifying The Value Of Testing[HCMC STC Jan 2015] Proving Our Worth  Quantifying The Value Of Testing
[HCMC STC Jan 2015] Proving Our Worth Quantifying The Value Of Testing
Ho Chi Minh City Software Testing Club
 
[HCMC STC Jan 2015] Choosing The Best Of The Plan-Driven And Agile Developmen...
[HCMC STC Jan 2015] Choosing The Best Of The Plan-Driven And Agile Developmen...[HCMC STC Jan 2015] Choosing The Best Of The Plan-Driven And Agile Developmen...
[HCMC STC Jan 2015] Choosing The Best Of The Plan-Driven And Agile Developmen...
Ho Chi Minh City Software Testing Club
 
[HCMC STC Jan 2015] Creating a Better Testing Future
[HCMC STC Jan 2015] Creating a Better Testing Future[HCMC STC Jan 2015] Creating a Better Testing Future
[HCMC STC Jan 2015] Creating a Better Testing Future
Ho Chi Minh City Software Testing Club
 
[HCMC STC Jan 2015] How To Work Effectively As a Tester in Agile Teams
[HCMC STC Jan 2015] How To Work Effectively As a Tester in Agile Teams[HCMC STC Jan 2015] How To Work Effectively As a Tester in Agile Teams
[HCMC STC Jan 2015] How To Work Effectively As a Tester in Agile Teams
Ho Chi Minh City Software Testing Club
 
[HCMC STC Jan 2015] Performing Target Test in UMTS Network
[HCMC STC Jan 2015] Performing Target Test in UMTS Network[HCMC STC Jan 2015] Performing Target Test in UMTS Network
[HCMC STC Jan 2015] Performing Target Test in UMTS Network
Ho Chi Minh City Software Testing Club
 
Selecting the Right Automated Testing tool
Selecting the Right Automated Testing tool Selecting the Right Automated Testing tool
Selecting the Right Automated Testing tool
Ho Chi Minh City Software Testing Club
 
Ho Chi Minh City Software Testing Conference 2014 "Stay on the cutting-edge" ...
Ho Chi Minh City Software Testing Conference 2014 "Stay on the cutting-edge" ...Ho Chi Minh City Software Testing Conference 2014 "Stay on the cutting-edge" ...
Ho Chi Minh City Software Testing Conference 2014 "Stay on the cutting-edge" ...
Ho Chi Minh City Software Testing Club
 
[Vu Van Nguyen] Value-based Software Testing an Approach to Prioritizing Tests
[Vu Van Nguyen]  Value-based Software Testing an Approach to Prioritizing Tests[Vu Van Nguyen]  Value-based Software Testing an Approach to Prioritizing Tests
[Vu Van Nguyen] Value-based Software Testing an Approach to Prioritizing Tests
Ho Chi Minh City Software Testing Club
 
[Vu Van Nguyen] Test Estimation in Practice
[Vu Van Nguyen]  Test Estimation in Practice[Vu Van Nguyen]  Test Estimation in Practice
[Vu Van Nguyen] Test Estimation in Practice
Ho Chi Minh City Software Testing Club
 
[HCMC STC Jan 2015] Developing an Offshore Context-Driven Testing Team
[HCMC STC Jan 2015] Developing an Offshore Context-Driven Testing Team[HCMC STC Jan 2015] Developing an Offshore Context-Driven Testing Team
[HCMC STC Jan 2015] Developing an Offshore Context-Driven Testing Team
Ho Chi Minh City Software Testing Club
 
[HCMC STC Jan 2015] Proving Our Worth Quantifying The Value Of Testing
[HCMC STC Jan 2015] Proving Our Worth  Quantifying The Value Of Testing[HCMC STC Jan 2015] Proving Our Worth  Quantifying The Value Of Testing
[HCMC STC Jan 2015] Proving Our Worth Quantifying The Value Of Testing
Ho Chi Minh City Software Testing Club
 
[HCMC STC Jan 2015] Choosing The Best Of The Plan-Driven And Agile Developmen...
[HCMC STC Jan 2015] Choosing The Best Of The Plan-Driven And Agile Developmen...[HCMC STC Jan 2015] Choosing The Best Of The Plan-Driven And Agile Developmen...
[HCMC STC Jan 2015] Choosing The Best Of The Plan-Driven And Agile Developmen...
Ho Chi Minh City Software Testing Club
 
[HCMC STC Jan 2015] How To Work Effectively As a Tester in Agile Teams
[HCMC STC Jan 2015] How To Work Effectively As a Tester in Agile Teams[HCMC STC Jan 2015] How To Work Effectively As a Tester in Agile Teams
[HCMC STC Jan 2015] How To Work Effectively As a Tester in Agile Teams
Ho Chi Minh City Software Testing Club
 
Ho Chi Minh City Software Testing Conference 2014 "Stay on the cutting-edge" ...
Ho Chi Minh City Software Testing Conference 2014 "Stay on the cutting-edge" ...Ho Chi Minh City Software Testing Conference 2014 "Stay on the cutting-edge" ...
Ho Chi Minh City Software Testing Conference 2014 "Stay on the cutting-edge" ...
Ho Chi Minh City Software Testing Club
 
[Vu Van Nguyen] Value-based Software Testing an Approach to Prioritizing Tests
[Vu Van Nguyen]  Value-based Software Testing an Approach to Prioritizing Tests[Vu Van Nguyen]  Value-based Software Testing an Approach to Prioritizing Tests
[Vu Van Nguyen] Value-based Software Testing an Approach to Prioritizing Tests
Ho Chi Minh City Software Testing Club
 

Recently uploaded (20)

Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdfMicrosoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
TechSoup
 
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
Andre Hora
 
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage DashboardsAdobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
BradBedford3
 
Societal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainabilitySocietal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainability
Jordi Cabot
 
Download YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full ActivatedDownload YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full Activated
saniamalik72555
 
Microsoft Excel Core Points Training.pptx
Microsoft Excel Core Points Training.pptxMicrosoft Excel Core Points Training.pptx
Microsoft Excel Core Points Training.pptx
Mekonnen
 
PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025
mu394968
 
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
Andre Hora
 
🌱 Green Grafana 🌱 Essentials_ Data, Visualizations and Plugins.pdf
🌱 Green Grafana 🌱 Essentials_ Data, Visualizations and Plugins.pdf🌱 Green Grafana 🌱 Essentials_ Data, Visualizations and Plugins.pdf
🌱 Green Grafana 🌱 Essentials_ Data, Visualizations and Plugins.pdf
Imma Valls Bernaus
 
Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025
mu394968
 
Odoo ERP for Education Management to Streamline Your Education Process
Odoo ERP for Education Management to Streamline Your Education ProcessOdoo ERP for Education Management to Streamline Your Education Process
Odoo ERP for Education Management to Streamline Your Education Process
iVenture Team LLP
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
Expand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchangeExpand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchange
Fexle Services Pvt. Ltd.
 
Apple Logic Pro X Crack FRESH Version 2025
Apple Logic Pro X Crack FRESH Version 2025Apple Logic Pro X Crack FRESH Version 2025
Apple Logic Pro X Crack FRESH Version 2025
fs4635986
 
Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AIScaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
danshalev
 
Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]
saniaaftab72555
 
Automation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath CertificateAutomation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath Certificate
VICTOR MAESTRE RAMIREZ
 
Landscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature ReviewLandscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature Review
Hironori Washizaki
 
Innovative Approaches to Software Dev no good at all
Innovative Approaches to Software Dev no good at allInnovative Approaches to Software Dev no good at all
Innovative Approaches to Software Dev no good at all
ayeshakanwal75
 
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdfMicrosoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
TechSoup
 
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
Andre Hora
 
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage DashboardsAdobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
BradBedford3
 
Societal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainabilitySocietal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainability
Jordi Cabot
 
Download YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full ActivatedDownload YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full Activated
saniamalik72555
 
Microsoft Excel Core Points Training.pptx
Microsoft Excel Core Points Training.pptxMicrosoft Excel Core Points Training.pptx
Microsoft Excel Core Points Training.pptx
Mekonnen
 
PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025
mu394968
 
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
Andre Hora
 
🌱 Green Grafana 🌱 Essentials_ Data, Visualizations and Plugins.pdf
🌱 Green Grafana 🌱 Essentials_ Data, Visualizations and Plugins.pdf🌱 Green Grafana 🌱 Essentials_ Data, Visualizations and Plugins.pdf
🌱 Green Grafana 🌱 Essentials_ Data, Visualizations and Plugins.pdf
Imma Valls Bernaus
 
Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025
mu394968
 
Odoo ERP for Education Management to Streamline Your Education Process
Odoo ERP for Education Management to Streamline Your Education ProcessOdoo ERP for Education Management to Streamline Your Education Process
Odoo ERP for Education Management to Streamline Your Education Process
iVenture Team LLP
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
Expand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchangeExpand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchange
Fexle Services Pvt. Ltd.
 
Apple Logic Pro X Crack FRESH Version 2025
Apple Logic Pro X Crack FRESH Version 2025Apple Logic Pro X Crack FRESH Version 2025
Apple Logic Pro X Crack FRESH Version 2025
fs4635986
 
Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AIScaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
danshalev
 
Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]
saniaaftab72555
 
Automation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath CertificateAutomation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath Certificate
VICTOR MAESTRE RAMIREZ
 
Landscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature ReviewLandscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature Review
Hironori Washizaki
 
Innovative Approaches to Software Dev no good at all
Innovative Approaches to Software Dev no good at allInnovative Approaches to Software Dev no good at all
Innovative Approaches to Software Dev no good at all
ayeshakanwal75
 

A Universal Automation Framework based on BDD Cucumber and Ruby on Rails - Pham Quoc Anh

  • 1. 1 A UNIVERSAL AUTOMATION FRAMEWORK BASED ON BDD CUCUMBER AND RUBY ON RAILS SPEAKER: Anh Pham INFOdation Viet Nam
  • 2. AGENDA 2 Behavior-Driven Development Automation Testing with Cucumber BDD/Cucumber – Pros & Cons Our Solutions: A Universal Test Automation Framework Demos Future work Q & A
  • 4. Behavior Driven Development 4 Given When Then to set up the context where the scenario happens to interact with the system somehow to check that the outcome of that interaction was what we expected An Example Given I am on Amazon site When I search for an Ipad Then I should receive a list of Ipads with various prices
  • 6. Given(/^I am on the "([^"]*)" page$/) do |page| visit(page) end And /^I set text on "(.*?)" with "(.*?)"$/ do |object, text| fill_in object, :with => text end Automation Testing With BDD Cucumber 6 Feature: Login to the system As a User role I want to login into system with provided username and password Scenario: Verify that user can login system Given I am on “localhost” page When I set text on “UserName” with “usertest” And I set text on “Password” with “Passwordtest” And I click on “login” button Then I verify that I am on “Dashboard” page
  • 8. BDD/CUCUMBER - PROS 8  BDD is FRIENDLY and UNDERSTANDABLE by non- technical User.  It is OPEN-SOURCE and large community supported.  Multiple programing languages supported: Java,Ruby Groovy, etc.  Support on MULTIPLE PLATFORM, OS and different browsers.
  • 9. BDD/CUCUMBER - CONS 9  Lacking of tool for managing Features, Scenario, Report effectively.  Need to set-up Ruby environment on each User’s PC.  IN- COMPATIBILITY among Gem versions.
  • 10. 10 OUR SOLUTIONS – A Universal Automation Framework Based BDD Cucumber – Ruby on Rails - Appium
  • 11. …Web and Web Services Testing 11 Feature: Login to the system As a user, I want to login the system when I provide username and password. Scenario: Verify user can login to the system successfully with valid account Given I am on Login Page When I login into system with username "[email protected]" and password "123456" Then I am on Dashboard page When /^I login into system with username "(.*)" and password "(.*)"$/ do |username, password| step %{I set text on "textbox_username" with "#{username}"} step %{I set text on "textbox_password" with "#{password}"} step %{I click on "button_login"} end default_browser: chrome wait_time: 30 test_page_address: http://mymethods.dev-infodation.com/ textbox_username: {xpath_selector: '//*[@id="login_user"]'} textbox_password: {xpath_selector: '//*[@id="login_pass"]'} And /^I click on "([^"]*)"$/ do |object| execute_click(object) end When /^I send a POST XML request to "(.*?)" with the following file "(.*?)"$/ do |type, file| file = Util.bind_with_dyn_vars(file) url = Util.bind_with_dyn_vars($WS_URL) # url=$WS_URL data = File.read($test_data_dir + file) $result=IFD_WS.send_XML_post_webservice(url,type,data) end def self.get_mysql_db_connection(schema) begin puts ("Connecting to database..."); data_source_schema = schema.downcase return Mysql2::Client.new(host: $data_source_url, username: $data_source_username, password: $data_source_password,database:data_source_schema); rescue Exception => e raise "Cannot connect to database [username: %s; password: %s, dbUrl: %s, dbName: %s] with error %s" % [$data_source_username, $data_source_password, $data_source_url,data_source_schema, e.message] end end
  • 12. Demo - Scenario Example in BDD Format 12 Feature: Create a new user In order to create new user account As a User role I want to create new user account So that new user can be created successfully Background: Clean up data before creating new user Given I delete user email [email protected] if it is already existed on database portal Scenario: Create a new user Given I am on Sign-up page When I register new user name Anh Pham with email [email protected] password 123456, password confirmation 123456 Then I verify user email [email protected] exists on database portal
  • 13. …Web and Web Services Testing 13
  • 14. Feature: Login to Bedder App As a User role I want to login into system with provided username and password Scenario: Verify that user can login to Bedder mobile application Given I have App running with appium When I login to Bedder app with username "[email protected]" and password "111111" Then I am on Dashboard Page …Mobile Testing 14 JSON WIRE OVER HTTP When /^I login to Bedder app with username "(.*)" and password "(.*)"$/ do |username, password| step %{I input text "#{username}" on "bedder_signin_username"} step %{I wait for 1 seconds} step %{I input text "#{password}" on "bedder_signin_password"} step %{I wait for 1 seconds} step %{I click on "bedder_signin_login_button"} end And /^I input text "(.*)" on "(.*)"$/ do |text,object| execute_settext(object,text) end And /^I click on "(.*)"$/ do |object| execute_click object end def execute_click element found_element = find_object element if found_element != nil startTime = Time.new.to_i begin sleep(1) currentTime= Time.new.to_i end while (currentTime - startTime) < $_CONFIG['Wait Time'] # selenium.execute_script('mobile: scroll', found_element) found_element.click else put_log "nERROR: *** not found object: #{element}" end end
  • 15. Demo - Scenario Example in BDD Format 15 Feature: Login to Bedder App As a User role I want to login into system with provided username and password Scenario: Verify that user can login to Bedder mobile application Given I have App running with appium When I login to Bedder app with username "[email protected]" and password "111111" Then I am on Dashboard Page
  • 17. 17 So, What Does This Universal Automation Framework Resolve?
  • 19. Universal Automation Framework 19  Simplify the installation process and automation scripting.  Quick adaptability when GUI elements changed.  Ability to version Features, Scenarios and Reports.  System deployment and Test management system integrated.
  • 20. 20 Now, Let’s See The Architecture
  • 21. Packaging Automation to RUBYGEM Universal Automation Framework 21
  • 23. Universal Automation Framework 23 Login to System Define Features, Scenarios Pull Code Commit & Push code
  • 28. Summary Automation Framework (Core) Portal System Jan - 2016 Apr - 2016 Jun - 2016 Resource Allocation Man - days Dev 1 70 Automation Tester 1 90 Total 2 160 28
  • 30. Future Work Jira Integration Confluence Integration  Requirement Management 30
  • 32. © 2014 HCMC Software Testing Club THANK YOU