SlideShare a Scribd company logo
1 of 25
Download to read offline
© Copyright 2015 Coveros, Inc. All rights reserved.
Compatibility Testing Your
Web Apps
Tips and Tricks for Debugging Locally
Before you go to the Cloud
October 1st
Max Saperstone
© Copyright 2015 Coveros, Inc. All rights reserved.
Agenda
● Introduction
● Initial Tests
● How Sites are built
● Testing Techniques
● How Coveros Can Help
● Questions
© Copyright 2015 Coveros, Inc. All rights reserved.
Introduction
© Copyright 2015 Coveros, Inc. All rights reserved.
Max Saperstone
Max Saperstone has been working as a Software and Test Engineer for almost a
decade, with a focus on Test Automation and the CI/CD process. He specializes
in open source tools, including the Selenium Tool Suite, JMeter, AutoIT,
Cucumber, and Chef. Max has lead several testing automation efforts, including
developing an automated suite focusing on web-based software to operate over
several applications for Kronos Federal. He also headed a project with Delta
Dental, developing an automated testing structure to run Cucumber tests over
multiple test interfaces and environments, while also developing a system to
keep test data ‘ageless.’ He recently released a new testing architecture for
SecureCI™ to allow testing of multiple interfaces, custom reporting, and minimal
test upkeep. After completing an implementation of the Active Authentication for
android devices, he is currently deep in the mobile testing world, working with
open source tools such as Robotium and Selendroid.
Max has spoken at multiple conferences including StarEast, StarWest, Mobile
Dev and Test, and AgileDC
© Copyright 2015 Coveros, Inc. All rights reserved.
What is Selenium IDE
● Selenium IDE is a complete integrated development
environment (IDE) for Selenium tests
● It is implemented as a Firefox Add-On
● It allows recording, editing, and debugging tests
● Scripts are recorded in Selenese, a special test scripting
language for Selenium
● Selenese provides commands for performing actions in a
browser (click a link, select an option), and for retrieving
data from the resulting pages
© Copyright 2015 Coveros, Inc. All rights reserved.
Selenium IDE Features
● Easy record and playback
● (Semi) Intelligent field selection will use IDs, names, or
XPath as needed
● Autocomplete for all common Selenium commands
● Walk through tests
● Debug and set breakpoints
● Save tests as HTML, Ruby scripts, or any other format
● Support for Selenium user-extensions.js file
● Easy customization through plugins
© Copyright 2015 Coveros, Inc. All rights reserved.
Initial Tests
© Copyright 2015 Coveros, Inc. All rights reserved.
What Went Wrong
● Many Tests Failed
● Upon Analysis, it was Android and iPhone tests
● Amazon Test
○ Different titles appeared
● Coveros Test
○ ‘Search’ button wasn’t present
● Google
○ ‘I’m Feeling Lucky’ button wasn’t present
● GoogleSearch
○ Without the ‘I’m Feeling Lucky’ button, the search can’t be performed
● Target
○ We were forwarded to a completely separate site
© Copyright 2015 Coveros, Inc. All rights reserved.
How Sites are Built
© Copyright 2015 Coveros, Inc. All rights reserved.
Non-Responsive Site
A non-responsive web application is one that responds the
same way all devices. The same information is displayed on
a laptop’s web browser as it would on a mobile device.
Advantages
● Less Expensive
● Less Complex
● The mobile web world is changing really fast
● Easier to design tests
Disadvantages
● Information may be harder to read
● Buttons and links may be more difficult to click
© Copyright 2015 Coveros, Inc. All rights reserved.
Separate Sites
Having a separate Mobile Site is an approach that is also
used to provide a better mobile experience by redirecting
mobile users to a separate site optimized for mobile use
Advantages
● Better mobile experience
● Less complex site design
Disadvantages
● SEO penalties
● Dual code maintenance
● Links don’t transfer
© Copyright 2015 Coveros, Inc. All rights reserved.
Responsive Site
Responsive Web design is an approach that suggests that
an app should respond to the user’s behavior and
environment based on screen size, platform and orientation
Advantages
● The app is easy to use with all interfaces
● Design looks good on any interface
● Don’t have to redesign the site for each new device
Disadvantages
● May suffer from performance issues
● More expensive to design, develop and test
© Copyright 2015 Coveros, Inc. All rights reserved.
Types of Responsive Sites
There are two ways to design a responsive web app
Responsive Design Website
● Responsive design sites adapt the layout to the available
view
● Utilize HTML5, CSS3, and Javascript
Dynamic Serving Website
● Dynamic serving allows the server to respond with
different HTML (and content) from the same URL
● Based on the user-agent passed to the server device
specific information will be returned
© Copyright 2015 Coveros, Inc. All rights reserved.
Types of Responsive Sites (cont.)
Responsive Design Website Advantages
● Makes it easier for users to share and link to your content
with a single URL
● Requires less engineering time to maintain multiple
pages for the same content
● Less resource intensive on server
Dynamic Serving Website Advantages
● Only one URL, no need for redirection
● Browsers don’t need to use HTML5
● Doesn’t require powerful client devices for CSS and JS
© Copyright 2015 Coveros, Inc. All rights reserved.
Testing Techniques
© Copyright 2015 Coveros, Inc. All rights reserved.
Techniques for Simulating Different Devices
● Desktop browsers like Chrome and Firefox have many
tools to effectively use user-agents to simulate multiple
mobile browser types with little or no cost
○ Chrome ‘device mode’
○ User Agent Switchers
● Simulation does not mimic hardware or software of
mobile device, just displays similar data
● Use Selenium IDE’s ‘find’ button to see how elements
change
○ When changing screen size
○ When changing user-agent
© Copyright 2015 Coveros, Inc. All rights reserved.
Techniques for Fixing Tests Locally
● Create functional tests following unit testing best practices
○ Test as small pieces as possible
○ Don’t include loops or conditional statements
● Avoid using XPath and CSS for locators based on
structure
○ Only use XPath or CSS when elements change id and class between
sites (typical with dynamic serving)
● Use Regular Expressions when needed for asserts
● When testing workflows, create ones that work for all sites
● When testing if elements exist/are visible, create separate
mobile and desktop tests
● TestNG might be more helpful for specifying different
browsers for each test
© Copyright 2015 Coveros, Inc. All rights reserved.
Debugging and Testing Workflow
● Start in Selenium IDE
○ Write/Record tests in
Selenium IDE
○ Execute tests in Selenium
IDE
○ Note issues, debug, and fix
○ Resize browser to smaller
window
○ Re-run tests in Selenium IDE
○ Note issues, debug, and fix
○ Set user-agent switcher to
mobile device
○ Re-run tests in Selenium IDE
○ Note issues, debug, and fix
○ Export tests to language of
choice
● Test from IDE
○ Execute tests in IDE
○ Note issues, debug, and fix
○ Resize browser to smaller
window
○ Re-run tests in IDE
○ Note issues, debug, and fix
○ Set to profile with user-agent
switcher set for mobile device
○ Re-run tests in IDE
○ Note issues, debug, and fix
● Test in the Cloud
○ Emulators can be more
simply used than simulators
○ Utilize frameworks already
established for cloud provider
© Copyright 2015 Coveros, Inc. All rights reserved.
Re-Run Tests
© Copyright 2015 Coveros, Inc. All rights reserved.
Sample Code - Locally Simulating
/**
* Constructs a new instance of the test. The constructor requires four
* string parameters, which represent the device, device size, and browser
* with the user agent switcher.
* @param device
* @param width
* @param height
* @param profile
*/
public LocalSimulationTest(String device, int width, int height, String profile) {
super();
this.device = device;
this.width = width;
this.height = height;
this.profile = profile;
}
© Copyright 2015 Coveros, Inc. All rights reserved.
Sample Code - Locally Simulating
/**
* @return a LinkedList containing arrays representing the browser
* combinations the test should be run against. The values in the array are used
* as part of the invocation of the test constructor
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
@ConcurrentParameterized.Parameters
public static LinkedList browsers() {
LinkedList browsers = new LinkedList();
browsers.add(new String[]{"desktop", "1920", "1080", "DESKTOP"});
browsers.add(new String[]{"iphone4", "320", "480", "IPHONE"});
browsers.add(new String[]{"iphone6p", "414", "736", "IPHONE"});
browsers.add(new String[]{"galaxys4", "480", "640", "ANDROID"});
return browsers;
}
© Copyright 2015 Coveros, Inc. All rights reserved.
Sample Code - Locally Simulating
/**
* Constructs a new {@link FirefoxDriver} instance which is configured to use
* the capabilities defined by the {@link #device}. {@link #width}, {@link
* #height} and {@link #profile} instance variables will determine how to
* configure our simulator to have everything run smoothly locally.
* @throws Exception if an error occurs during the creation of the {@link
* FirefoxDriver} instance.
*/
@Before
public void setUp() throws Exception {
//Load our local profile for firefox browser
ProfilesIni profileIni = new ProfilesIni();
FirefoxProfile ffprofile = profileIni.getProfile(profile);
this.driver = new FirefoxDriver(ffprofile);
//Resize the current window to the given dimension
Dimension d = new Dimension(Integer.valueOf(width),Integer.valueOf(height));
this.driver.manage().window().setSize(d);
}
© Copyright 2015 Coveros, Inc. All rights reserved.
Wrap-Up
© Copyright 2015 Coveros, Inc. All rights reserved.
About Coveros
● Coveros helps organizations accelerate the delivery of secure,
reliable software
● Our consulting services:
○ Agile software development
○ Application security
○ Software quality assurance
○ Software process improvement
● Our key markets:
○ Financial services
○ Healthcare
○ Defense
○ Critical Infrastructure
Development Capabilities
© Copyright 2015 Coveros, Inc. All rights reserved.
Questions
Max Saperstone
max.saperstone@coveros.com

More Related Content

What's hot

Create Disposable Test Environments with Vagrant and Puppet
Create Disposable Test Environments with Vagrant and PuppetCreate Disposable Test Environments with Vagrant and Puppet
Create Disposable Test Environments with Vagrant and PuppetGene Gotimer
 
Web Application Security Testing: Kali Linux Is the Way to Go
Web Application Security Testing: Kali Linux Is the Way to GoWeb Application Security Testing: Kali Linux Is the Way to Go
Web Application Security Testing: Kali Linux Is the Way to GoGene Gotimer
 
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...Denim Group
 
IoT Software Testing Challenges: The IoT World Is Really Different
IoT Software Testing Challenges: The IoT World Is Really DifferentIoT Software Testing Challenges: The IoT World Is Really Different
IoT Software Testing Challenges: The IoT World Is Really DifferentTechWell
 
Rapid software testing and conformance with static code analysis
Rapid software testing and conformance with static code analysisRapid software testing and conformance with static code analysis
Rapid software testing and conformance with static code analysisRogue Wave Software
 
Scale security for a dollar or less
Scale security for a dollar or lessScale security for a dollar or less
Scale security for a dollar or lessMohammed A. Imran
 
Implementing an Application Security Pipeline in Jenkins
Implementing an Application Security Pipeline in JenkinsImplementing an Application Security Pipeline in Jenkins
Implementing an Application Security Pipeline in JenkinsSuman Sourav
 
DevSecOps and the CI/CD Pipeline
 DevSecOps and the CI/CD Pipeline DevSecOps and the CI/CD Pipeline
DevSecOps and the CI/CD PipelineJames Wickett
 
Strengthen and Scale Security for a dollar or less
Strengthen and Scale Security for a dollar or lessStrengthen and Scale Security for a dollar or less
Strengthen and Scale Security for a dollar or lessMohammed A. Imran
 
Application Asset Management with ThreadFix
 Application Asset Management with ThreadFix Application Asset Management with ThreadFix
Application Asset Management with ThreadFixDenim Group
 
How to Get Started with DevSecOps
How to Get Started with DevSecOpsHow to Get Started with DevSecOps
How to Get Started with DevSecOpsCYBRIC
 
Simplify Dev with Complicated Security Tools
Simplify Dev with Complicated Security ToolsSimplify Dev with Complicated Security Tools
Simplify Dev with Complicated Security ToolsKevin Fealey
 
DevSecOps-OWASP Indonesia Day 2017
DevSecOps-OWASP Indonesia Day 2017DevSecOps-OWASP Indonesia Day 2017
DevSecOps-OWASP Indonesia Day 2017Suman Sourav
 
NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)
NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)
NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)Hui (Henry) Chen
 
Code Quality - Security
Code Quality - SecurityCode Quality - Security
Code Quality - Securitysedukull
 
Scale DevSecOps with your Continuous Integration Pipeline
Scale DevSecOps with your Continuous Integration PipelineScale DevSecOps with your Continuous Integration Pipeline
Scale DevSecOps with your Continuous Integration PipelineDevOps.com
 
Connect Ops and Security with Flexible Web App and API Protection
Connect Ops and Security with Flexible Web App and API ProtectionConnect Ops and Security with Flexible Web App and API Protection
Connect Ops and Security with Flexible Web App and API ProtectionDevOps.com
 

What's hot (19)

Create Disposable Test Environments with Vagrant and Puppet
Create Disposable Test Environments with Vagrant and PuppetCreate Disposable Test Environments with Vagrant and Puppet
Create Disposable Test Environments with Vagrant and Puppet
 
Web Application Security Testing: Kali Linux Is the Way to Go
Web Application Security Testing: Kali Linux Is the Way to GoWeb Application Security Testing: Kali Linux Is the Way to Go
Web Application Security Testing: Kali Linux Is the Way to Go
 
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
 
IoT Software Testing Challenges: The IoT World Is Really Different
IoT Software Testing Challenges: The IoT World Is Really DifferentIoT Software Testing Challenges: The IoT World Is Really Different
IoT Software Testing Challenges: The IoT World Is Really Different
 
Continuous testing
Continuous testing Continuous testing
Continuous testing
 
Rapid software testing and conformance with static code analysis
Rapid software testing and conformance with static code analysisRapid software testing and conformance with static code analysis
Rapid software testing and conformance with static code analysis
 
Scale security for a dollar or less
Scale security for a dollar or lessScale security for a dollar or less
Scale security for a dollar or less
 
Implementing an Application Security Pipeline in Jenkins
Implementing an Application Security Pipeline in JenkinsImplementing an Application Security Pipeline in Jenkins
Implementing an Application Security Pipeline in Jenkins
 
DevSecOps and the CI/CD Pipeline
 DevSecOps and the CI/CD Pipeline DevSecOps and the CI/CD Pipeline
DevSecOps and the CI/CD Pipeline
 
Strengthen and Scale Security for a dollar or less
Strengthen and Scale Security for a dollar or lessStrengthen and Scale Security for a dollar or less
Strengthen and Scale Security for a dollar or less
 
Application Asset Management with ThreadFix
 Application Asset Management with ThreadFix Application Asset Management with ThreadFix
Application Asset Management with ThreadFix
 
How to Get Started with DevSecOps
How to Get Started with DevSecOpsHow to Get Started with DevSecOps
How to Get Started with DevSecOps
 
Securing Apache Web Servers
Securing Apache Web ServersSecuring Apache Web Servers
Securing Apache Web Servers
 
Simplify Dev with Complicated Security Tools
Simplify Dev with Complicated Security ToolsSimplify Dev with Complicated Security Tools
Simplify Dev with Complicated Security Tools
 
DevSecOps-OWASP Indonesia Day 2017
DevSecOps-OWASP Indonesia Day 2017DevSecOps-OWASP Indonesia Day 2017
DevSecOps-OWASP Indonesia Day 2017
 
NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)
NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)
NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)
 
Code Quality - Security
Code Quality - SecurityCode Quality - Security
Code Quality - Security
 
Scale DevSecOps with your Continuous Integration Pipeline
Scale DevSecOps with your Continuous Integration PipelineScale DevSecOps with your Continuous Integration Pipeline
Scale DevSecOps with your Continuous Integration Pipeline
 
Connect Ops and Security with Flexible Web App and API Protection
Connect Ops and Security with Flexible Web App and API ProtectionConnect Ops and Security with Flexible Web App and API Protection
Connect Ops and Security with Flexible Web App and API Protection
 

Similar to Testing Web Apps Locally Before Going to the Cloud

Practical Software Testing Tools
Practical Software Testing ToolsPractical Software Testing Tools
Practical Software Testing ToolsDr Ganesh Iyer
 
Module-1_Getting-Started_with_selenium_and_Java_basics.pdf
Module-1_Getting-Started_with_selenium_and_Java_basics.pdfModule-1_Getting-Started_with_selenium_and_Java_basics.pdf
Module-1_Getting-Started_with_selenium_and_Java_basics.pdfdevika266518
 
Building Creative Product Extensions with Experience Manager
Building Creative Product Extensions with Experience ManagerBuilding Creative Product Extensions with Experience Manager
Building Creative Product Extensions with Experience Managerconnectwebex
 
Advanced Strategies for Testing Responsive Web
Advanced Strategies for Testing Responsive WebAdvanced Strategies for Testing Responsive Web
Advanced Strategies for Testing Responsive WebPerfecto by Perforce
 
Building Creative Product Extensions with Experience Manager
Building Creative Product Extensions with Experience ManagerBuilding Creative Product Extensions with Experience Manager
Building Creative Product Extensions with Experience ManagerJustin Edelson
 
Using Selenium To Test Mobile? Meet Appium!
Using Selenium To Test Mobile? Meet Appium!Using Selenium To Test Mobile? Meet Appium!
Using Selenium To Test Mobile? Meet Appium!Sauce Labs
 
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptxMulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptxAlfonso Martino
 
ganesh[5+ years] exp _Resume
ganesh[5+ years] exp _Resumeganesh[5+ years] exp _Resume
ganesh[5+ years] exp _Resumeganesh r
 
5 Best Automation Testing Tools to Speed up Testing.pdf
5 Best Automation Testing Tools to Speed up Testing.pdf5 Best Automation Testing Tools to Speed up Testing.pdf
5 Best Automation Testing Tools to Speed up Testing.pdfSerena Gray
 
Webinar: Automate Your Environment Provisioning for Mobile App Development
Webinar: Automate Your Environment Provisioning for Mobile App Development Webinar: Automate Your Environment Provisioning for Mobile App Development
Webinar: Automate Your Environment Provisioning for Mobile App Development Skytap Cloud
 
International journal of applied sciences and innovation vol 2015 - no 1 - ...
International journal of applied sciences and innovation   vol 2015 - no 1 - ...International journal of applied sciences and innovation   vol 2015 - no 1 - ...
International journal of applied sciences and innovation vol 2015 - no 1 - ...sophiabelthome
 
Using DevOps to Improve Software Quality in the Cloud
Using DevOps to Improve Software Quality in the CloudUsing DevOps to Improve Software Quality in the Cloud
Using DevOps to Improve Software Quality in the CloudTechWell
 
Introduction+to+AngularJS+with+logo+from+digital+ocean.pdf
Introduction+to+AngularJS+with+logo+from+digital+ocean.pdfIntroduction+to+AngularJS+with+logo+from+digital+ocean.pdf
Introduction+to+AngularJS+with+logo+from+digital+ocean.pdfahmadfaisal744721
 
XebiaLabs Demo: Application Release Automation with Deployit
XebiaLabs Demo: Application Release Automation with DeployitXebiaLabs Demo: Application Release Automation with Deployit
XebiaLabs Demo: Application Release Automation with DeployitXebiaLabs
 
Using Eclipse EMF/GEF to develop an offline designer for identity manager
Using Eclipse EMF/GEF to develop an offline designer for identity managerUsing Eclipse EMF/GEF to develop an offline designer for identity manager
Using Eclipse EMF/GEF to develop an offline designer for identity managerEclipse Day India
 
17 Ways to Save Time on Manual Cross Browser Testing
17 Ways to Save Time on Manual Cross Browser Testing17 Ways to Save Time on Manual Cross Browser Testing
17 Ways to Save Time on Manual Cross Browser TestingSarah Elson
 
Let's banish "it works on my machine"
Let's banish "it works on my machine"Let's banish "it works on my machine"
Let's banish "it works on my machine"Stephanie Locke
 
Python selenium
Python seleniumPython selenium
Python seleniumDucat
 

Similar to Testing Web Apps Locally Before Going to the Cloud (20)

Practical Software Testing Tools
Practical Software Testing ToolsPractical Software Testing Tools
Practical Software Testing Tools
 
Module-1_Getting-Started_with_selenium_and_Java_basics.pdf
Module-1_Getting-Started_with_selenium_and_Java_basics.pdfModule-1_Getting-Started_with_selenium_and_Java_basics.pdf
Module-1_Getting-Started_with_selenium_and_Java_basics.pdf
 
Building Creative Product Extensions with Experience Manager
Building Creative Product Extensions with Experience ManagerBuilding Creative Product Extensions with Experience Manager
Building Creative Product Extensions with Experience Manager
 
Advanced Strategies for Testing Responsive Web
Advanced Strategies for Testing Responsive WebAdvanced Strategies for Testing Responsive Web
Advanced Strategies for Testing Responsive Web
 
Building Creative Product Extensions with Experience Manager
Building Creative Product Extensions with Experience ManagerBuilding Creative Product Extensions with Experience Manager
Building Creative Product Extensions with Experience Manager
 
Using Selenium To Test Mobile? Meet Appium!
Using Selenium To Test Mobile? Meet Appium!Using Selenium To Test Mobile? Meet Appium!
Using Selenium To Test Mobile? Meet Appium!
 
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptxMulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
 
ganesh[5+ years] exp _Resume
ganesh[5+ years] exp _Resumeganesh[5+ years] exp _Resume
ganesh[5+ years] exp _Resume
 
5 Best Automation Testing Tools to Speed up Testing.pdf
5 Best Automation Testing Tools to Speed up Testing.pdf5 Best Automation Testing Tools to Speed up Testing.pdf
5 Best Automation Testing Tools to Speed up Testing.pdf
 
Webinar: Automate Your Environment Provisioning for Mobile App Development
Webinar: Automate Your Environment Provisioning for Mobile App Development Webinar: Automate Your Environment Provisioning for Mobile App Development
Webinar: Automate Your Environment Provisioning for Mobile App Development
 
Selenium
SeleniumSelenium
Selenium
 
International journal of applied sciences and innovation vol 2015 - no 1 - ...
International journal of applied sciences and innovation   vol 2015 - no 1 - ...International journal of applied sciences and innovation   vol 2015 - no 1 - ...
International journal of applied sciences and innovation vol 2015 - no 1 - ...
 
Using DevOps to Improve Software Quality in the Cloud
Using DevOps to Improve Software Quality in the CloudUsing DevOps to Improve Software Quality in the Cloud
Using DevOps to Improve Software Quality in the Cloud
 
Selenium
SeleniumSelenium
Selenium
 
Introduction+to+AngularJS+with+logo+from+digital+ocean.pdf
Introduction+to+AngularJS+with+logo+from+digital+ocean.pdfIntroduction+to+AngularJS+with+logo+from+digital+ocean.pdf
Introduction+to+AngularJS+with+logo+from+digital+ocean.pdf
 
XebiaLabs Demo: Application Release Automation with Deployit
XebiaLabs Demo: Application Release Automation with DeployitXebiaLabs Demo: Application Release Automation with Deployit
XebiaLabs Demo: Application Release Automation with Deployit
 
Using Eclipse EMF/GEF to develop an offline designer for identity manager
Using Eclipse EMF/GEF to develop an offline designer for identity managerUsing Eclipse EMF/GEF to develop an offline designer for identity manager
Using Eclipse EMF/GEF to develop an offline designer for identity manager
 
17 Ways to Save Time on Manual Cross Browser Testing
17 Ways to Save Time on Manual Cross Browser Testing17 Ways to Save Time on Manual Cross Browser Testing
17 Ways to Save Time on Manual Cross Browser Testing
 
Let's banish "it works on my machine"
Let's banish "it works on my machine"Let's banish "it works on my machine"
Let's banish "it works on my machine"
 
Python selenium
Python seleniumPython selenium
Python selenium
 

More from Coveros, Inc.

Which Development Metrics Should I Watch?
Which Development Metrics Should I Watch?Which Development Metrics Should I Watch?
Which Development Metrics Should I Watch?Coveros, Inc.
 
System Event Monitoring for Active Authentication
System Event Monitoring for Active AuthenticationSystem Event Monitoring for Active Authentication
System Event Monitoring for Active AuthenticationCoveros, Inc.
 
Better Security Testing: Using the Cloud and Continuous Delivery
Better Security Testing: Using the Cloud and Continuous Delivery Better Security Testing: Using the Cloud and Continuous Delivery
Better Security Testing: Using the Cloud and Continuous Delivery Coveros, Inc.
 
Create Disposable Test Environments with Vagrant and Puppet
Create Disposable Test Environments with Vagrant and Puppet Create Disposable Test Environments with Vagrant and Puppet
Create Disposable Test Environments with Vagrant and Puppet Coveros, Inc.
 
Continuous Delivery in a Legacy Shop - One Step at a Time
Continuous Delivery in a Legacy Shop - One Step at a Time Continuous Delivery in a Legacy Shop - One Step at a Time
Continuous Delivery in a Legacy Shop - One Step at a Time Coveros, Inc.
 
DevOps in a Regulated and Embedded Environment (AgileDC)
DevOps in a Regulated and Embedded Environment (AgileDC) DevOps in a Regulated and Embedded Environment (AgileDC)
DevOps in a Regulated and Embedded Environment (AgileDC) Coveros, Inc.
 
Tests Your Pipeline Might Be Missing
 Tests Your Pipeline Might Be Missing Tests Your Pipeline Might Be Missing
Tests Your Pipeline Might Be MissingCoveros, Inc.
 
Testing in a Continuous Delivery Pipeline - Better, Faster, Cheaper
Testing in a Continuous Delivery Pipeline - Better, Faster, Cheaper Testing in a Continuous Delivery Pipeline - Better, Faster, Cheaper
Testing in a Continuous Delivery Pipeline - Better, Faster, Cheaper Coveros, Inc.
 
Web Application Security Testing: Kali Linux Is the Way to Go
Web Application Security Testing: Kali Linux Is the Way to Go Web Application Security Testing: Kali Linux Is the Way to Go
Web Application Security Testing: Kali Linux Is the Way to Go Coveros, Inc.
 

More from Coveros, Inc. (9)

Which Development Metrics Should I Watch?
Which Development Metrics Should I Watch?Which Development Metrics Should I Watch?
Which Development Metrics Should I Watch?
 
System Event Monitoring for Active Authentication
System Event Monitoring for Active AuthenticationSystem Event Monitoring for Active Authentication
System Event Monitoring for Active Authentication
 
Better Security Testing: Using the Cloud and Continuous Delivery
Better Security Testing: Using the Cloud and Continuous Delivery Better Security Testing: Using the Cloud and Continuous Delivery
Better Security Testing: Using the Cloud and Continuous Delivery
 
Create Disposable Test Environments with Vagrant and Puppet
Create Disposable Test Environments with Vagrant and Puppet Create Disposable Test Environments with Vagrant and Puppet
Create Disposable Test Environments with Vagrant and Puppet
 
Continuous Delivery in a Legacy Shop - One Step at a Time
Continuous Delivery in a Legacy Shop - One Step at a Time Continuous Delivery in a Legacy Shop - One Step at a Time
Continuous Delivery in a Legacy Shop - One Step at a Time
 
DevOps in a Regulated and Embedded Environment (AgileDC)
DevOps in a Regulated and Embedded Environment (AgileDC) DevOps in a Regulated and Embedded Environment (AgileDC)
DevOps in a Regulated and Embedded Environment (AgileDC)
 
Tests Your Pipeline Might Be Missing
 Tests Your Pipeline Might Be Missing Tests Your Pipeline Might Be Missing
Tests Your Pipeline Might Be Missing
 
Testing in a Continuous Delivery Pipeline - Better, Faster, Cheaper
Testing in a Continuous Delivery Pipeline - Better, Faster, Cheaper Testing in a Continuous Delivery Pipeline - Better, Faster, Cheaper
Testing in a Continuous Delivery Pipeline - Better, Faster, Cheaper
 
Web Application Security Testing: Kali Linux Is the Way to Go
Web Application Security Testing: Kali Linux Is the Way to Go Web Application Security Testing: Kali Linux Is the Way to Go
Web Application Security Testing: Kali Linux Is the Way to Go
 

Recently uploaded

Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 

Recently uploaded (20)

Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 

Testing Web Apps Locally Before Going to the Cloud

  • 1. © Copyright 2015 Coveros, Inc. All rights reserved. Compatibility Testing Your Web Apps Tips and Tricks for Debugging Locally Before you go to the Cloud October 1st Max Saperstone
  • 2. © Copyright 2015 Coveros, Inc. All rights reserved. Agenda ● Introduction ● Initial Tests ● How Sites are built ● Testing Techniques ● How Coveros Can Help ● Questions
  • 3. © Copyright 2015 Coveros, Inc. All rights reserved. Introduction
  • 4. © Copyright 2015 Coveros, Inc. All rights reserved. Max Saperstone Max Saperstone has been working as a Software and Test Engineer for almost a decade, with a focus on Test Automation and the CI/CD process. He specializes in open source tools, including the Selenium Tool Suite, JMeter, AutoIT, Cucumber, and Chef. Max has lead several testing automation efforts, including developing an automated suite focusing on web-based software to operate over several applications for Kronos Federal. He also headed a project with Delta Dental, developing an automated testing structure to run Cucumber tests over multiple test interfaces and environments, while also developing a system to keep test data ‘ageless.’ He recently released a new testing architecture for SecureCI™ to allow testing of multiple interfaces, custom reporting, and minimal test upkeep. After completing an implementation of the Active Authentication for android devices, he is currently deep in the mobile testing world, working with open source tools such as Robotium and Selendroid. Max has spoken at multiple conferences including StarEast, StarWest, Mobile Dev and Test, and AgileDC
  • 5. © Copyright 2015 Coveros, Inc. All rights reserved. What is Selenium IDE ● Selenium IDE is a complete integrated development environment (IDE) for Selenium tests ● It is implemented as a Firefox Add-On ● It allows recording, editing, and debugging tests ● Scripts are recorded in Selenese, a special test scripting language for Selenium ● Selenese provides commands for performing actions in a browser (click a link, select an option), and for retrieving data from the resulting pages
  • 6. © Copyright 2015 Coveros, Inc. All rights reserved. Selenium IDE Features ● Easy record and playback ● (Semi) Intelligent field selection will use IDs, names, or XPath as needed ● Autocomplete for all common Selenium commands ● Walk through tests ● Debug and set breakpoints ● Save tests as HTML, Ruby scripts, or any other format ● Support for Selenium user-extensions.js file ● Easy customization through plugins
  • 7. © Copyright 2015 Coveros, Inc. All rights reserved. Initial Tests
  • 8. © Copyright 2015 Coveros, Inc. All rights reserved. What Went Wrong ● Many Tests Failed ● Upon Analysis, it was Android and iPhone tests ● Amazon Test ○ Different titles appeared ● Coveros Test ○ ‘Search’ button wasn’t present ● Google ○ ‘I’m Feeling Lucky’ button wasn’t present ● GoogleSearch ○ Without the ‘I’m Feeling Lucky’ button, the search can’t be performed ● Target ○ We were forwarded to a completely separate site
  • 9. © Copyright 2015 Coveros, Inc. All rights reserved. How Sites are Built
  • 10. © Copyright 2015 Coveros, Inc. All rights reserved. Non-Responsive Site A non-responsive web application is one that responds the same way all devices. The same information is displayed on a laptop’s web browser as it would on a mobile device. Advantages ● Less Expensive ● Less Complex ● The mobile web world is changing really fast ● Easier to design tests Disadvantages ● Information may be harder to read ● Buttons and links may be more difficult to click
  • 11. © Copyright 2015 Coveros, Inc. All rights reserved. Separate Sites Having a separate Mobile Site is an approach that is also used to provide a better mobile experience by redirecting mobile users to a separate site optimized for mobile use Advantages ● Better mobile experience ● Less complex site design Disadvantages ● SEO penalties ● Dual code maintenance ● Links don’t transfer
  • 12. © Copyright 2015 Coveros, Inc. All rights reserved. Responsive Site Responsive Web design is an approach that suggests that an app should respond to the user’s behavior and environment based on screen size, platform and orientation Advantages ● The app is easy to use with all interfaces ● Design looks good on any interface ● Don’t have to redesign the site for each new device Disadvantages ● May suffer from performance issues ● More expensive to design, develop and test
  • 13. © Copyright 2015 Coveros, Inc. All rights reserved. Types of Responsive Sites There are two ways to design a responsive web app Responsive Design Website ● Responsive design sites adapt the layout to the available view ● Utilize HTML5, CSS3, and Javascript Dynamic Serving Website ● Dynamic serving allows the server to respond with different HTML (and content) from the same URL ● Based on the user-agent passed to the server device specific information will be returned
  • 14. © Copyright 2015 Coveros, Inc. All rights reserved. Types of Responsive Sites (cont.) Responsive Design Website Advantages ● Makes it easier for users to share and link to your content with a single URL ● Requires less engineering time to maintain multiple pages for the same content ● Less resource intensive on server Dynamic Serving Website Advantages ● Only one URL, no need for redirection ● Browsers don’t need to use HTML5 ● Doesn’t require powerful client devices for CSS and JS
  • 15. © Copyright 2015 Coveros, Inc. All rights reserved. Testing Techniques
  • 16. © Copyright 2015 Coveros, Inc. All rights reserved. Techniques for Simulating Different Devices ● Desktop browsers like Chrome and Firefox have many tools to effectively use user-agents to simulate multiple mobile browser types with little or no cost ○ Chrome ‘device mode’ ○ User Agent Switchers ● Simulation does not mimic hardware or software of mobile device, just displays similar data ● Use Selenium IDE’s ‘find’ button to see how elements change ○ When changing screen size ○ When changing user-agent
  • 17. © Copyright 2015 Coveros, Inc. All rights reserved. Techniques for Fixing Tests Locally ● Create functional tests following unit testing best practices ○ Test as small pieces as possible ○ Don’t include loops or conditional statements ● Avoid using XPath and CSS for locators based on structure ○ Only use XPath or CSS when elements change id and class between sites (typical with dynamic serving) ● Use Regular Expressions when needed for asserts ● When testing workflows, create ones that work for all sites ● When testing if elements exist/are visible, create separate mobile and desktop tests ● TestNG might be more helpful for specifying different browsers for each test
  • 18. © Copyright 2015 Coveros, Inc. All rights reserved. Debugging and Testing Workflow ● Start in Selenium IDE ○ Write/Record tests in Selenium IDE ○ Execute tests in Selenium IDE ○ Note issues, debug, and fix ○ Resize browser to smaller window ○ Re-run tests in Selenium IDE ○ Note issues, debug, and fix ○ Set user-agent switcher to mobile device ○ Re-run tests in Selenium IDE ○ Note issues, debug, and fix ○ Export tests to language of choice ● Test from IDE ○ Execute tests in IDE ○ Note issues, debug, and fix ○ Resize browser to smaller window ○ Re-run tests in IDE ○ Note issues, debug, and fix ○ Set to profile with user-agent switcher set for mobile device ○ Re-run tests in IDE ○ Note issues, debug, and fix ● Test in the Cloud ○ Emulators can be more simply used than simulators ○ Utilize frameworks already established for cloud provider
  • 19. © Copyright 2015 Coveros, Inc. All rights reserved. Re-Run Tests
  • 20. © Copyright 2015 Coveros, Inc. All rights reserved. Sample Code - Locally Simulating /** * Constructs a new instance of the test. The constructor requires four * string parameters, which represent the device, device size, and browser * with the user agent switcher. * @param device * @param width * @param height * @param profile */ public LocalSimulationTest(String device, int width, int height, String profile) { super(); this.device = device; this.width = width; this.height = height; this.profile = profile; }
  • 21. © Copyright 2015 Coveros, Inc. All rights reserved. Sample Code - Locally Simulating /** * @return a LinkedList containing arrays representing the browser * combinations the test should be run against. The values in the array are used * as part of the invocation of the test constructor */ @SuppressWarnings({ "rawtypes", "unchecked" }) @ConcurrentParameterized.Parameters public static LinkedList browsers() { LinkedList browsers = new LinkedList(); browsers.add(new String[]{"desktop", "1920", "1080", "DESKTOP"}); browsers.add(new String[]{"iphone4", "320", "480", "IPHONE"}); browsers.add(new String[]{"iphone6p", "414", "736", "IPHONE"}); browsers.add(new String[]{"galaxys4", "480", "640", "ANDROID"}); return browsers; }
  • 22. © Copyright 2015 Coveros, Inc. All rights reserved. Sample Code - Locally Simulating /** * Constructs a new {@link FirefoxDriver} instance which is configured to use * the capabilities defined by the {@link #device}. {@link #width}, {@link * #height} and {@link #profile} instance variables will determine how to * configure our simulator to have everything run smoothly locally. * @throws Exception if an error occurs during the creation of the {@link * FirefoxDriver} instance. */ @Before public void setUp() throws Exception { //Load our local profile for firefox browser ProfilesIni profileIni = new ProfilesIni(); FirefoxProfile ffprofile = profileIni.getProfile(profile); this.driver = new FirefoxDriver(ffprofile); //Resize the current window to the given dimension Dimension d = new Dimension(Integer.valueOf(width),Integer.valueOf(height)); this.driver.manage().window().setSize(d); }
  • 23. © Copyright 2015 Coveros, Inc. All rights reserved. Wrap-Up
  • 24. © Copyright 2015 Coveros, Inc. All rights reserved. About Coveros ● Coveros helps organizations accelerate the delivery of secure, reliable software ● Our consulting services: ○ Agile software development ○ Application security ○ Software quality assurance ○ Software process improvement ● Our key markets: ○ Financial services ○ Healthcare ○ Defense ○ Critical Infrastructure Development Capabilities
  • 25. © Copyright 2015 Coveros, Inc. All rights reserved. Questions Max Saperstone max.saperstone@coveros.com