Selenium Immersion Program

Total Page:16

File Type:pdf, Size:1020Kb

Selenium Immersion Program PROFESSIONAL SERVICES SELENIUM IMMERSION PROGRAM A FOUR WEEK INTENSIVE PROGRAM TO MAKE YOU SUCCESSFUL WITH SELENIUM TESTING The Sauce Labs Selenium Immersion Program is designed to provide enterprises with a comprehensive set of services to quickly activate, integrate and optimize their use of the Sauce Labs infrastructure in order to accelerate return on their investment. The services provided in this program include: analysis of the current and future states related to the customer’s web and mobile app development methodologies and test automation capabilities, creation of a strategic test automation plan, selection and implementation of the most appropriate test automation framework, a full week of formal Selenium training, on-site guidance and mentoring for up to twelve (12) customer staff on the Sauce Labs solution set, integration with the customer’s chosen continuous integration (CI) system, optimization techniques (including maximizing the benefits of test parallelization), Selenium script creation, as well as optimization and post-engagement summary with observations, recommended next steps, and industry best practices. This four-week immersion program will focus on the people, processes and technologies required to fast-track organizations into the world of continuous integration, with a focus on quality and test automation. BENEFITS • Significantly reduce time-to-production • Existing QA and Test Engineers will be re-skilled to drive new, modern CI-led software development lifecycle (SDLC) efforts • Framework and infrastructure that supports industry best practices • Significantly shorten build / release cycles • Faster path to optimized developer time • Significant improvements in code quality and consistency • Reduce bug identification and resolution time Learn more at saucelabs.com DELIVERABLES Upon completion of this engagement, the client organization will possess the following: • Up to twelve (12) staff members sufficiently skilled and experienced in advanced Selenium concepts, industry best practices (including test parallelization), CI optimization and the Sauce Labs solution set. • High-level document on the current state, desired state and delta in terms of the client’s test automation capabilities and infrastructure. • Fully configured Sauce Labs environment (account, Sauce Connect, etc.) • Fully implemented test automation framework that leverages the benefits of parallelism, based on one of the following: - Java - JUnit - Java – TestNG - Capybara – Rspec - Capybara – Cucumber - C# - NUnit • Above framework integrated with one of the following CI systems: - Hudson/Jenkins - Bamboo - Travis - Circle-CI - Team City • Suite of Selenium test scripts written in the client’s target programming language of choice (Java, JavaScript, Ruby, C# or Python) and optimized (number of scripts written will vary depending on complexity, duration, chosen framework, and the number and skill levels of client team members). ENGAGEMENT MANAGEMENT Engagement management provides end-to-end oversight and management to ensure successful service delivery and on-site mentoring. Sauce Labs’ engagement management adds dedicated resources that provide the following essential elements to your project: • Management focus and expertise • Quality control • Expectation management The Sauce Labs engagement manager will work to ensure your staff and environment are prepared for Sauce Labs (or partner) staff to work productively and efficiently so projects are completed on time, and with the highest quality levels. DURATION Four (4) weeks – mixture of on-site at client organization and off-site as mutually agreed and stipulated in SOW. Learn more at saucelabs.com ASSUMPTIONS AND PREREQUISITE • All client team members participating in the engagement must have the following minimum skills / experience set: - Basic understanding of a modern programming / scripting language • Fully configured source control system in place • Network open for use with Sauce Labs cloud services • Read / Write / Modify rights on source control system • VPN access to client network (if any off-site work is stipulated in the SOW) • Willingness to have target test automation framework (Java – JUnit, Java – TestNG, Capybara – Rspec, Capybara – Cucumber, C# - NUnit) installed and implemented (if not in place already). LOGISTICS A conference / meeting room, equipped with a modern projector and whiteboard with dry-erase markers and a printer should be reserved and available for the duration of the engagement. Participants should each bring a laptop with full network access. CUSTOMIZATIONS The Sauce Labs Professional Services team has the skills and expertise to handle or assist with customized implementations where needed. If there are extra implementation tasks, custom scripting, custom integrations, or any other technical services that will be useful to customer success with Sauce Labs beyond the scope of this engagement, our services team can set up a scoping call to fulfill these needs. DELIVERY TEAM Sauce Labs professional services may be delivered by Sauce Labs personnel or by highly skilled, fully vetted third party professional services partners. Sauce Labs will work closely with the client organization to select the appropriate partner for the engagement if appropriate, taking a number of things into consideration including geography, size and scope of the engagement, required knowledge of tool chain components, frameworks, programming languages and other factors. Sauce Labs personnel will fulfill the Engagement Management role and take total responsibility for end-to-end service delivery. Learn more at saucelabs.com GENERAL ENGAGEMENT FLOW AND TIMING* Week Key Activities 1 • Assessment of current and desired states, delta and key milestone definitions • Gain understanding of customer’s existing SDLC and development methodologies • Create high-level plan to reach desired state and map out key architectural constraints and tool- chain components • Identify test cases for automation • Walk through test case automation approach 2 • Select, install and configure test automation framework of choice • Set up Sauce Labs environment (including Sauce Connect) and other components of test automation infrastructure • Integrate test automation framework with CI system and configure for Sauce Labs. • Creation of test scripts (in parallel – on- or off-site, depending on SOW) 3 • Formal Selenium Training - Basic Selenium (day 1 & 2) - Advanced Selenium (days 3 & 4) - Configuration, integration, optimization, reporting 4 • Walk through Sauce Labs environment, including: - Filtering and sorting jobs / tests - Terminology - Account Administration - Setting up an Admin account - Explain account management capabilities - Allocating sub-accounts and VM concurrencies - Archives page - Tunnels page - API Page - Platform Configurator - Rest API • Optimize configuration, confirm successful triggering of test scripts, review results • Determine next, post-engagement activities and follow-up item. * The above flow and timing are rough approximations and may be changed, upon mutual agreement, to meet the specific needs of the client organization’s needs. © 2015 Sauce Labs, Inc. All rights reserved. Learn more at saucelabs.com.
Recommended publications
  • Automated Testing Clinic Follow-Up: Capybara-Webkit Vs. Poltergeist/Phantomjs | Engineering in Focus
    Automated Testing Clinic follow-up: capybara-webkit vs. polter... https://behindthefandoor.wordpress.com/2014/03/02/automated-... Engineering in Focus the Fandor engineering blog Automated Testing Clinic follow-up: capybara-webkit vs. poltergeist/PhantomJS with 2 comments In my presentation at the February Automated Testing SF meetup I (Dave Schweisguth) noted some problems with Fandor’s testing setup and that we were working to fix them. Here’s an update on our progress. The root cause of several of our problems was that some of the almost 100 @javascript scenarios in our Cucumber test suite weren’t running reliably. They failed occasionally regardless of environment, they failed more on slower CPUs (e.g. MacBook Pros only a couple of years old), when they failed they sometimes hung forever, and when we killed them they left behind webkit-server processes (we were using the capybara-webkit driver) which, if not cleaned up, would poison subsequent runs. Although we’ve gotten pretty good at fixing flaky Cucumber scenarios, we’d been stumped on this little handful. We gave up, tagged them @non_ci and excluded them from our build. But they were important scenarios, so we had to run them manually before deploying. (We weren’t going to just not run them: some of those scenarios tested our subscription process, and we would be fools to deploy a build that for all we knew wouldn’t allow new users to subscribe to Fandor!) That made our release process slower and more error-prone. It occurred to me that I could patch the patch and change our deployment process to require that the @non_ci scenarios had been run (by adding a git tag when those scenarios were run and checking for it when deploying), but before I could put that in to play a new problem appeared.
    [Show full text]
  • Bdd & Test Automation
    BDD & TEST AUTOMATION: HOW NOT TO SHOOT YOURSELF IN THE FOOT Mati Parv About the speaker Mati Parv Automation Engineer @ Proekspert [email protected] What this is about Introduction to BDD and related tools Retro-fitting automation: should you do it? How it worked out for us Automated UI testing in web applications Hands-on session Introduction: BDD What is BDD Behavior-Driven Development An "outside-in" methodology, starting from the outside by identifying business outcomes, drilling down into the feature set that will achieve these outcomes. Focuses on the "how" of the software, not the "why" Introduction: Cucumber Describe how the software should behave in plain text The descriptions are the documentation... ... and the tests... ... and the specification. Helps us deliver value, create software that matters Cucumber: Example Feature: Search courses In order to ensure better utilization of courses Potential students should be able to search for courses Scenario: Search by topic Given there are 240 courses which do not have the topic "BDD" And there are 2 courses A001, B205 that have the topic "BDD" When I search for "BDD" Then I should see the following courses: | Course code | | A001 | | B205 | What happened in our case? Retro-fitting automation to mature codebase Should you do it? When does it work? Use Cucumber as the testing tool Is it good enough? Downside: maintenance hell is easy to achieve What are the alternatives? Continue with manual testing? Not good enough! Use another tool? UI automation in web apps What's good Tests run in a web browser – headless or not Allows to emulate user behavior Can be part of a CI process Downsides Performance can suffer, especially in an actual browser Initial test writing can be time-consuming Hands-on session Setup Application under test http://bdd-workshop-ntd2013.herokuapp.com Prepared test template http://git.io/6wD9Jw Required toolset Ruby 1.9+ RSpec, Capybara, Selenium-Webdriver Template code from above git repository Questions? Thank you!.
    [Show full text]
  • Behavior-Driven Development and Cucumber
    Behavior-Driven Development and Cucumber CSCI 5828: Foundations of Software Engineering Lecture 09 — 02/14/2012 ! © Kenneth M. Anderson, 2012 1 Goals • Introduce concepts and techniques encountered in the first three chapters of the Cucumber textbook (I may also refer to it as the “testing” textbook) • Installing Cucumber • Behavior-Driven Development • Gherkin • Cucumber • It’s integration with ruby (other languages are also supported) © Kenneth M. Anderson, 2012 2 Side Note: Fred Brooks Appears Again • I like receiving confirmation that the information I put in front of you is important • At the start of Chapter 3 of the Cucumber book, take a look at the first citation: • “In his famous essay, No Silver Bullet [Bro95], Fred Brooks says: • ‘The hardest single part of building a software system is deciding precisely what to build.’” • They even reference The Mythical Man-Month on the same page! ! © Kenneth M. Anderson, 2012 3 Installing Cucumber (I) • If you would like to run the examples presented in lecture, you will need to install Cucumber • To do so, you will first need to install ruby • If you are on Linux or Mac OS X, the book recommends first installing rvm (Ruby Version Manager) • Instructions are here: <http://beginrescueend.com/> • Then use it to install ruby version 1.9.3-p0 • On Lion with XCode 4.2.1: “rvm install ruby-1.9.3-p0 --with-gcc=clang” • If you are on Windows, use the Ruby Installer • http://rubyinstaller.org/ © Kenneth M. Anderson, 2012 4 Installing Cucumber (II) • Once you have ruby installed, you may need to install
    [Show full text]
  • Analysis of Code Coverage Through Gui Test Automation and Back End Test Automation Mr Tarik Sheth1, Ms
    IJISET - International Journal of Innovative Science, Engineering & Technology, Vol. 3 Issue 3, March 2016. www.ijiset.com ISSN 2348 – 7968 Analysis Of Code Coverage Through Gui Test Automation And Back End Test Automation Mr Tarik Sheth1, Ms. Priyanka Bugade2 , Ms. Sneha, Pokharkar3 AMET University1, Thakur College of Science and Commerce2,3 ABSTRACT coverage measurement through GUI automation and back Software testing provides a means to reduce errors, cut end automation testing of the software covers all aspects of maintenance and overall software costs. Testing has become testing, a particular website or a web application..The most important parameter in the case of software purpose of this project is to invent our own test tool which development lifecycle (SDLC). Testing automation tools will give more sophisticated outcomes then the cucumber enables developers and testers to easily automate the entire tool which will be using .The outcome of our research tool process of testing in software development. It is to examine & should be more better then the testing tool which is already modify source code. The objective of the paper is to conduct available in the market that is cucumber tool.. [3]. The paper a comparative study of automated tools such as available in tries to investigate and evaluate the effect of automation market in Selenium and cucumber test tool. The aim of this testing such as GUI and back end testing. [4]. research paper is to evaluate and compare automated The problems with manual testing are, it is very time software testing tools to determine their usability and consuming process, not reusable, has no scripting facility, effectiveness.
    [Show full text]
  • Titus Fortner - Crafting a Test Framework
    Titus Fortner - Crafting a Test Framework Titus Fortner: Hello, everyone. My name is Titus Fortner and I'm excited to get to talk to you today about some things in test automation that I'm especially passionate about. Just a quick background about me, writing software is my third career. I started out in the navy as a nuclear engineer on a ballistic missile submarine. I do not recommend to that career path to anyone who enjoys sunlight or regular sleeping hours. When I left the military, I worked in a semiconductor manufacturing company for a few years. I could at least see the sky, but it still wasn't something I was especially excited about. I decided to pursue something that I thought I could be especially excited about and looked into a career as a software engineer. As with many of us, I think I just happened into the testing focus. On my first day at my first job as a software developer at a small startup, our manager came to us and said, "Hey, I need someone to figure out this Selenium thing." I said, "Sure, I'll figure it out," and I've been pretty happy with that decision ever since. I've since worked at five different companies as a software engineer and test. About a year ago, I joined Sauce Labs as a solution architect. It means I get to help various clients with their testing. One of my primary tasks is to provide automation framework assessments for our customers. This is all to say that I've seen many different approaches to frameworks from many different problem sets.
    [Show full text]
  • Advance Ruby on Rails Topics 1. Rspec, Automation Testing 2
    Advance Ruby on Rails Topics 1. Rspec, Automation Testing 2. Cucumber 3. Capybara 4. Mocks and Stubs 5. Action Mailer RAILS: RSPEC AND CAPYBARA BY EXAMPLE How to setup and use two popular gems used in tests in Rails: RSpec and Capybara. Post’s example based on TDD approach. Post based on example application to get context in testing and its purpose is a managing library with books. In this I focus only on the adding new books feature. Setup Project Ruby version: ruby 2.2.2p95 Rails version: rails 4.2.6 Let’s start by creating project: rails new my_app -d mysql 1 rails new my_app -d mysql / Postgres If you prefer to use NO-SQL database, use following command: rails new my_app 1 rails new my_app If you choose MySQL database, you need to setup database access: username and password. It’s better to keep this data secret, so I use config/ secrets.yml. Add to this file 2 key-value pairs and replace root and password_to_database: development: secret_key_base: 6904e69fc...118 database_username: root database_password: password_to_database Page !1 of !101 1 development: 2 secret_key_base: 6904e69fc...118 3 database_username: root 4 database_password: password_to_database Open config/database.yml and add just created secret keys: default: &default adapter: mysql2 encoding: utf8 pool: 5 username: <%= Rails.application.secrets[:database_username] %> password: <%= Rails.application.secrets[:database_password] %> socket: /var/run/mysqld/mysqld.sock 1 default: &default 2 adapter: mysql2 3 encoding: utf8 4 pool: 5 5 username: <%= Rails.application.secrets[:database_username] %> 6 password: <%= Rails.application.secrets[:database_password] %> 7 socket: /var/run/mysqld/mysqld.sock Before you push any changes to repository, tell GIT to ignore our secrets.
    [Show full text]
  • Behavior Driven Development
    Behavior Driven Development For Ruby on Rails Using Cucumber, Capybara, Rspec, Selenium-WebDriver, Rcov, Launchy, etc... James Mason, @bear454 Friday, June 18, 2010 SUSE Appliance Hack Week /me grumbles. Development Methodologies Extreme, Agile, Waterfall, Iterative, Formal, Rapid, Plan-Driven, Disciplined, etc. Development Methodologies Extreme, Agile, Waterfall, Iterative, Formal, Rapid, Plan-Driven, Disciplined, etc. ~= “Cowboy Coding” when compared to Test Driven Development Methodologies Compared Developer's QA's Methodology Role Role Write the code, test it. Read the developer's mind. Cowboy Maybe. Test everything. Write a test, Expand the test suite to handle TDD Code to passing. edge/corner cases and security. Hey a table! :P Methodologies Compared, cont'd Developer's QA's Methodology Role Role Write the code, test it. Read the developer's mind. Cowboy Maybe. Test everything. Write a test, Expand the test suite to handle TDD Code to passing. edge/corner cases and security. Describe a feature, BDD Same as TDD. Code to passing. “Its one of those circle-of-life things” Describe a Feature Refactor the Code Code to Passing Gherkin as a Second Language Feature: First Things First <= Name of the feature In order to test the cucumber stack <= Why? As a developer <= Who? I want to do something simple. <= What? Scenario: Hello World <= Like a test, many per Feature Given I am on the home page <= Set the stage Then I should see "Hello, World." <= Expectation Also: ● “When” interim activity before “Then” ● “Background” before each scenario. ● “And” same as the prior step ● @tags – sorting and behavior Given X, When Y, Then Z Set the stage, Perform some actions, Test an expectation.
    [Show full text]
  • Ruby on Rails Django
    glossarytech.com Ruby A Redis -backed library for creating background jobs, placing those jobs Resque on multiple queues, and processing them later. Active A Ruby library for working with Relational SQL Databases, like MySQL Record and Postgres . It provides an Object Relational Mapping . A security scanner. Checks Ruby on Rails applications for security Brakeman vulnerabilities. Looks at the source code of an application. Ensures Ruby applications run the same code on every machine. Tracks Bundler and installs the exact gems and versions that are needed. Remote server automation and deployment tool written in Ruby . Capistrano C apistrano automates the process of making a new version of an application available on one or more web servers. Automation library that provides a means for controlling a browser. Capybara S imulates scenarios for user stories and automates web application testing for behavior-driven software development. A dynamic, functional language designed for building scalable and maintainable applications. Leverages the Erlang VM, known for the Crystal r unning low-latency, distributed and fault-tolerant systems, while also being successfully used in web development and the embedded software domain. Embedded Ruby. A templating language that enables to embed Ruby ERB c ode in an HTML document, similar to ASP, JSP and PHP and other server-side scripting languages. Fast, simple event-processing library for Ruby programs. The most EventMachi p opular library for concurrent computing in the Ruby programming ne language. A software library for the Ruby . Provides factory methods to create test FactoryBot fixtures for automated software testing. REST -like API micro-framework for Ruby .
    [Show full text]
  • Capybara and Asynchronous Javascript
    www.allitebooks.com Application Testing with Capybara Confidently implement automated tests for web applications using Capybara Matthew Robbins BIRMINGHAM - MUMBAI www.allitebooks.com Application Testing with Capybara Copyright © 2013 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First published: September 2013 Production Reference: 1160913 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-78328-125-1 www.packtpub.com Cover Image by VigilancePrime (en.wikipedia) www.allitebooks.com Credits Author Project Coordinator Matthew Robbins Sherin Padayatty Reviewers Proofreaders Yavor Atanasov Clyde Jenkins Graham Lyons Christopher Smith Daniel Morrison Indexer Acquisition Editor Priya Subramani Aarthi Kumaraswamy Graphics Commissioning Editor Ronak Dhruv Poonam Jain Production Coordinator Technical Editors Arvindkumar Gupta Hardik B. Soni Krutika Parab Cover Work Arvindkumar Gupta Copy Editors Adithi Shetty Sayanee Mukherjee Alfida Paiva www.allitebooks.com About the Author Matthew Robbins is an experienced developer in test, having spent many years wrestling with commercially available test automation tools.
    [Show full text]
  • Testing Rails
    Testing Rails Josh Steiner Joël Quenneville Contents Introduction 1 Why test? ................................. 1 Test Driven Development ........................ 3 Characteristics of an Effective Test Suite ................. 8 Example Application ........................... 10 RSpec ................................... 11 Types of Tests 13 The Testing Pyramid ........................... 13 Feature Specs .............................. 15 Model Specs ............................... 33 Request Specs .............................. 38 View Specs ................................ 41 Controller Specs ............................. 43 Helper Specs ............................... 45 Mailer Specs ............................... 46 i CONTENTS ii Intermediate Testing 50 Testing in isolation ............................ 50 External services ............................. 61 Levels of Abstraction ........................... 68 JavaScript ................................. 73 Continuous Integration .......................... 78 Coverage Reports ............................ 79 Antipatterns 82 Slow tests ................................. 82 Intermittent Failures ........................... 85 Brittle Tests ................................ 88 Duplication ................................ 91 Testing Implementation Details ..................... 92 Let, Subject, and Before ......................... 95 Bloated Factories ............................. 100 Using Factories Like Fixtures ....................... 101 False Positives .............................. 103 Stubbing
    [Show full text]
  • Overview of Cucumber / Capybara
    Overview of Cucumber / Capybara ❖ What is BDD? ➢ The main focus is on the expected behavior of the application and it’s components. ➢ User stories created and maintained collaboratively by all stakeholders ❖ What are the benefits? ➢ Define verifiable, executable and unambiguous requirements ➢ Developing features that truly add business value ➢ Preventing defects rather than finding defects ➢ Bring QA involvement to the forefront, great for team dynamics ❖ Testing tool based on BDD written in Ruby. ❖ Tests are written in plain language called Gherkin based BDD style of Given, When, Then, which any layperson can understand. ❖ Tests are grouped into feature files with .feature extension. ➢ E.g. Feature: As a Myish user I should be able to login Scenario: Successful login Given I am on the Myish home page When I fill in email and password And I click login button Then I should be able to click on the profile ❖ Capybara is a web-based automation framework used for creating functional tests that simulate how users would interact with the application ❖ Capybara is library/gem built to be used on top of underlying web-based driver ❖ Offers user-friendly DSL ( Domain Specific Language ) ❖ Supported driver ➢ Rack::test ■ Default driver. No JavaScript support ➢ Selenium-Webdriver ■ Mostly used in web-based automation FW ➢ Capybara-Webkit ■ For true headless testing with JavaScript support ❖ Basic DSL : ➢Visit('page_url') # navigate to page ➢Click_link('id_of_link') # click link by id ➢Click_link('link_text') # click link by link text ➢Click_button('button_name') # fill text field ➢Fill_in('First Name', :with => 'John') # choose radio button ➢Choose('radio_button') # choose radio button ➢Check('checkbox') # check in checkbox ➢Uncheck('checkbox') # uncheck in checkbox ➢Select('option', :from=>'select_box') # select from dropdown ➢Attach_file('image', 'path_to_image') # upload file ❖ Java - JRE ❖ Ruby ❖ RubyGems installation – use “gem install <name of gem>” command.
    [Show full text]
  • Automation Script Development Using Capybara
    6 V May 2018 http://doi.org/10.22214/ijraset.2018.5121 International Journal for Research in Applied Science & Engineering Technology (IJRASET) ISSN: 2321-9653; IC Value: 45.98; SJ Impact Factor: 6.887 Volume 6 Issue V, May 2018- Available at www.ijraset.com Automation Script Development using Capybara Yesha N B1, Dr. Jitendranath Mungara2 1Student, B.E, Information Science and Engineering Department, NHCE, Bangalore, India 2Head of Department, Information Science and Engineering Department, NHCE, Bangalore, India Abstract: With the advent of technology and Software Development, testing has become a major activity and gained focus in the software development life cycle in order to produce and deliver quality software. Testing involves finding defects and errors in the early stages of the development process. Testing is very crucial and important activity that has to be carried out for detecting faults in the application. This paper focuses on Automation based testing for testing the Graphical User Interface of the application. One of the trending testing technologies called Capybara testing along with RSpec framework to test Ruby applications is discussed in detail. The Paper also briefs about the drawbacks of manual testing and the effectiveness of automation testing. Keywords: GUI, Capybara, RSpec, Web Driver, Web browser, Automation testing. I. INTRODUTION With the enhancement in software development and production in recent years, it has led to major concern over reliability and security of the application[2]. Software testing has become an important and crucial stage in the software development life cycle. Life critical applications needs to be highly available and accurate for it to be successful.
    [Show full text]