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

More Related Content

What's hot

Jmeter Performance Testing
Jmeter Performance TestingJmeter Performance Testing
Jmeter Performance TestingAtul Pant
 
Cucumber ppt
Cucumber pptCucumber ppt
Cucumber ppt
Qwinix Technologies
 
Test automation process
Test automation processTest automation process
Test automation process
Bharathi Krishnamurthi
 
Software testing basic concepts
Software testing basic conceptsSoftware testing basic concepts
Software testing basic conceptsHưng Hoàng
 
End to end test automation with cypress
End to end test automation with cypressEnd to end test automation with cypress
End to end test automation with cypress
Kushan Shalindra Amarasiri - Technical QE Specialist
 
Defects in software testing
Defects in software testingDefects in software testing
Defects in software testing
sandeepsingh2808
 
Introduction to Integration Testing With Cypress
Introduction to Integration Testing With CypressIntroduction to Integration Testing With Cypress
Introduction to Integration Testing With Cypress
Erez Cohen
 
Cypress first impressions
Cypress first impressionsCypress first impressions
Cypress first impressions
Hans Emmel
 
How to Get Started with Cypress
How to Get Started with CypressHow to Get Started with Cypress
How to Get Started with Cypress
Applitools
 
Cypress Testing.pptx
Cypress Testing.pptxCypress Testing.pptx
Cypress Testing.pptx
JasmeenShrestha
 
Automated testing with Cypress
Automated testing with CypressAutomated testing with Cypress
Automated testing with Cypress
Yong Shean Chong
 
Cucumber & gherkin language
Cucumber & gherkin languageCucumber & gherkin language
Cucumber & gherkin language
selvanathankapilan
 
Software Testing 101
Software Testing 101Software Testing 101
Software Testing 101
QA Hannah
 
End to end test automation with cypress
End to end test automation with cypressEnd to end test automation with cypress
End to end test automation with cypress
PankajSingh184960
 
Basics in software testing
Basics in software testingBasics in software testing
Basics in software testing
TOPS Technologies
 
Getting Ready for UAT
Getting Ready for UATGetting Ready for UAT
Getting Ready for UAT
Project Management Solutions
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
Steve Mactaggart
 
Introduction to Bdd and cucumber
Introduction to Bdd and cucumberIntroduction to Bdd and cucumber
Introduction to Bdd and cucumber
Nibu Baby
 
BDD with Cucumber
BDD with CucumberBDD with Cucumber
BDD with Cucumber
Knoldus Inc.
 
Introduction to Automation Testing
Introduction to Automation TestingIntroduction to Automation Testing
Introduction to Automation Testing
Archana Krushnan
 

What's hot (20)

Jmeter Performance Testing
Jmeter Performance TestingJmeter Performance Testing
Jmeter Performance Testing
 
Cucumber ppt
Cucumber pptCucumber ppt
Cucumber ppt
 
Test automation process
Test automation processTest automation process
Test automation process
 
Software testing basic concepts
Software testing basic conceptsSoftware testing basic concepts
Software testing basic concepts
 
End to end test automation with cypress
End to end test automation with cypressEnd to end test automation with cypress
End to end test automation with cypress
 
Defects in software testing
Defects in software testingDefects in software testing
Defects in software testing
 
Introduction to Integration Testing With Cypress
Introduction to Integration Testing With CypressIntroduction to Integration Testing With Cypress
Introduction to Integration Testing With Cypress
 
Cypress first impressions
Cypress first impressionsCypress first impressions
Cypress first impressions
 
How to Get Started with Cypress
How to Get Started with CypressHow to Get Started with Cypress
How to Get Started with Cypress
 
Cypress Testing.pptx
Cypress Testing.pptxCypress Testing.pptx
Cypress Testing.pptx
 
Automated testing with Cypress
Automated testing with CypressAutomated testing with Cypress
Automated testing with Cypress
 
Cucumber & gherkin language
Cucumber & gherkin languageCucumber & gherkin language
Cucumber & gherkin language
 
Software Testing 101
Software Testing 101Software Testing 101
Software Testing 101
 
End to end test automation with cypress
End to end test automation with cypressEnd to end test automation with cypress
End to end test automation with cypress
 
Basics in software testing
Basics in software testingBasics in software testing
Basics in software testing
 
Getting Ready for UAT
Getting Ready for UATGetting Ready for UAT
Getting Ready for UAT
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
 
Introduction to Bdd and cucumber
Introduction to Bdd and cucumberIntroduction to Bdd and cucumber
Introduction to Bdd and cucumber
 
BDD with Cucumber
BDD with CucumberBDD with Cucumber
BDD with Cucumber
 
Introduction to Automation Testing
Introduction to Automation TestingIntroduction to Automation Testing
Introduction to Automation Testing
 

Viewers also liked

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!
 

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...
 
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
 
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...
 
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
 
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
 
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
 
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...
 
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
 
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
 
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
 
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
 
[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
 
[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
 
[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
 
Building an effective mobile testing strategy
Building an effective mobile testing strategyBuilding an effective mobile testing strategy
Building an effective mobile testing strategy
 
[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
 
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
 
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
 
Getting Started with Android Development
Getting Started with Android DevelopmentGetting Started with Android Development
Getting Started with Android Development
 
Pyunit
PyunitPyunit
Pyunit
 

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

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 appHeaderLabs .
 
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 validationH 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
 

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...
 
Introduce cucumber
Introduce cucumberIntroduce cucumber
Introduce cucumber
 
iOS and Android apps automation
iOS and Android apps automationiOS and Android apps automation
iOS and Android apps automation
 
[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...
 
Test automation
Test  automationTest  automation
Test automation
 
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
 
Watir web automated tests
Watir web automated testsWatir web automated tests
Watir web automated tests
 
Unit3.pptx
Unit3.pptxUnit3.pptx
Unit3.pptx
 
Write Tests in End Users’ Lingo
Write Tests in End Users’ LingoWrite Tests in End Users’ Lingo
Write Tests in End Users’ Lingo
 
RubyBarCamp “Полезные gems и plugins”
RubyBarCamp “Полезные gems и plugins”RubyBarCamp “Полезные gems и plugins”
RubyBarCamp “Полезные gems и plugins”
 
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
 
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
 
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
 
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
 
Web 5 | JavaScript Events
Web 5 | JavaScript EventsWeb 5 | JavaScript Events
Web 5 | JavaScript Events
 
Android testing calabash
Android testing calabashAndroid testing calabash
Android testing calabash
 
Open microsoft visual studio/tutorialoutlet
Open microsoft visual studio/tutorialoutletOpen microsoft visual studio/tutorialoutlet
Open microsoft visual studio/tutorialoutlet
 
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
 
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)
 

More from Ho Chi Minh City Software Testing Club

[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
 

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
 
[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
 
[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
 
[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...
 
[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
 
[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
 
[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
 
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 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" ...
 
[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
 
[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
 

Recently uploaded

E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
Google
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
Roshan Dwivedi
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 

Recently uploaded (20)

E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 

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 "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
  • 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 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
  • 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 "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
  • 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 "Test1c@infodation.vn" 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