Selenium, Cucumber & Mobile Automation –  Online Tutorials

Leadership and Management Questions

As a manager, lead, director, VP, architect and/or a stake-holder, what questions do I think about when embarking on implementing Automation and Continuous Delivery.

Technical Questions

Test Automation skill sets are broadly measured across programming languages, across libraries and across frameworks and across software development models.

Filtered Gyan

There is no one-size fits all solution. There are debates over language, stack, practices etc. Below are few trade-off discussions (Click the ‘+’ sign to expand)

Management FAQs

  • How do we put a structure around the jargon and how do NOT end up comparing apples and oranges?
  • How do I make a case for budgeting a Test Automation solution?
  • How much money do I put in and what is the justification for the ROI?
  • What are the skill sets (existing) and what staffing needs?
  • What is the process and what are the technologies?
  • How do I measure the progress (aka. what metrics) and pivot and reset the direction if diverging?
  • How do I get employees excited about the change (organizational change)?
  • How to identify adopters, nay-sayers and staff?
  • In-sourcing vs. Out-sourcing vs. Vendors
  • Marketing messages and communication across the organization
  • Showing support and buy-in for the process and technical practices
  • Alignment from Business stake-holders

Technical FAQs

  • Programming languages can be Java, Ruby, C#, groovy, vbscript, php and so on.
  • Some of the libraries can be Selenium, Cucumber, testNG, Watij, Apachi-poi and so on.
  • Frameworks can be Data-Driven, Keyword-driven, Page-object, Hybrid and so on
  • Development models can be waterfall, spiral, Agile, TDD, BDD, ATDD and so on
  • Cloud Solutions like Sauce Labs that can do both Selenium based Web Automation and Appium based Mobile (device and simulator) automation
  • Windows or *nix based environment
  • API testing (SOAP or REST) and Tools
  • Service Virtualization with tools like IBM Test Virtualization, HP SV, Parasoft and whole lot of open source solutions
  • Test Data Handling – Obfuscate data, ingestion scripts, reset test data etc.

Gyan FAQs

  • If you are a Java shop, it is a good idea to select Java Stack (Selenium-java, cucumber-jvm, testNG and so on)
  • If you are following ATDD and expect developers to help testers as they go through learning curve, again choose the stack that your source code is already written in. What your developers would be most comfortable with.
  • If you prefer that testers with no programming background be converted to automation engineers and that they would maintain the scripts over time, please bear in mind that Test Automation is a development project. It is going to take a significant amount of time and resources to get to self-service mode. Ruby might be a good stack to start in this case
  • If you are a high-tech shop with highly-skilled engineers and you don’t really differentiate dev and testing, pick JS + Node stack or you actually don’t really need much advice from this website :)
  • If you are .NET shop, again there is NUnit,C# Selenium and so on.
  • If you plan to introduce more open source in your .NET shop, choose either Java or Ruby or JS stack (it really pays dividends in long run)
  • Whatever said above, there should be leadership support and buy-in. Things will seem slow in the beginning
  • Hire Consultants, but please have success criteria well-defined in terms of your success metrics “continuously” tracked.

BASIC TUTORIAL

INTERMEDIATE TUTORIAL

ADVANCED TUTORIAL

FRAMEWORK & BEYOND

Slice and Dice Tests

  • Tag Scenarios
  • OR’g and AND’g tags
  • Execution from Command line
  • Rake Power!

Test Results and Reports

  • HTML report
  • embed Screenshots
  • Archiving reports
  • Integration with ALM

Best Practices

  • Tracking your error!
  • Ruby Debugger
  • Connecting the Dots.

Test Data Handling

  • Data Driven with Scenario Outlines
  • CRUD operations with Excel
  • CRUD operations with YAML
  • CRUD operations with JSON
  • Database operations and SQL
  • Generate Test Data automagically

Special Cases

  • PDF to Text
  • XML & HTML parsing using Nokogiri
  • Download online file
  • Ajax & Java Script Handling
  • Find Elements using Chaining

Selenium GRID

  • Set up Selenium GRID
  • Launch IE, Chrome and Firefox Nodes
  • Configuration parameters for HUB and Nodes
  • Desired Capabilities and Remote WebDriver
  • Execute a simple Selenium script on GRID
  • Pass Browser as Parameter to Script
  • Introduction to Sauce Labs

Best Practices and Tips

  • Real Data vs. Expected Data
  • GRID configuration settings
  • General Tips and Tricks

Optimization Techniques

  • Parallel Testing
  • Deep Dive into Cucumber Tags
  • Headless Testing
  • Speed up your Tests

Cucumber and Selenium Tips

  • Cucumber Transformations
  • Cucumber Matchers
  • Cucumber Capture Groups
  • Ruby Class vs. Module
  • Ruby Mixins

Best Practices Continued..

  • Thick Client Automation
  • Code quality Analysis – Cucumber and Ruby
  • Technical Debt Discussion

Test Automation Frameworks

  • Keyword Driven Framework
  • Data Driven Framework
  • Page Object Design pattern
  • Hybrid Framework
  • MRI vs. JRuby
  • Switching Ruby runtime to JRuby

Sauce Labs - Cloud

  • Integration with Sauce Labs
  • Sauce Connect
  • Dashboard, Logs , videos and reports
  • Debugging Scripts and Logs

CI/CD/CT

  • Continuous Integration Server
  • Integration with CI Server
  • Jenkins Job Set up + Selenium plugin
  • Continuous Feedback loop with Cucumber, Ruby and Selenium

More Best Practices...

  • Scheduling a CI job
  • Patterns for Continuous Testing
  • Sneak Peek into Appium (Mobile Automation)

Selenium

RubyMine

Cucumber

Sauce Labs

event_228023392
Set Up Selenium, Write Selenium in Ruby, Selenium GRID, Watir API
RubyMine1
RubyMine IDE, Cucumber gherkin scenarios, Ruby , Accelerating script writing, tips and tricks
Cucumber
Behavior Driven development, Acceptance test driven development, scenarios, scenario outline, background, hooks, , capture groups, transformations
saucelabs-logo-small
Integration with Sauce Labs, Cross Browser test automation, Desired Capabilities, Sauce Cloud and capabilities, Interactive session vs. Test Automation

iOS

Android

Calabash

Appium

iOS_images
iPhone, iPad and iOS Simulators – Mobile Automation concepts, tips and tricks, set up using Xcode. Understand UI Automation, Xcodebuild concepts, command line tools, Accessibility Elements. Mobile App Automation in the Cloud using Xamarin and Sauce Labs
googleandroid
Android App Mobile Automation using Calabash , Appium, Emulators and AVD’s. Real Device app automation – Sauce Labs
calabash_1
Calabash enables you to write and execute automated acceptance tests of mobile apps.
appium_1
Appium is an open source test automation framework for use with native and hybrid mobile apps. It drives iOS and Android apps using the WebDriver JSON wire protocol.

We believe in Acceptance Test Driven Development and Continuous Test Automation

ATDD, CI/CD are becoming the norms in most companies. Test Automation is not only important and critical, but it is mandatory for efficient feedback loop

  • It is very difficult to find good trainers online especially when there are so many websites and searching always confuses me. I talked to seleniumframework trainer (Naresh) and I was convinced that this team could understand what my expectations are. They in fact helped me not just on the training, but also directed me towards their rich network of students. I am very grateful to the team for providing such a high quality training and being available to answer queries, however tough they seemed Keep up the good work Guys!
    Prashanth
  • I came with a lot of apprehension to this course if I would ever be able to learn basics. The course starts from the very basics and gradually increases pace. The trainers like Pradeep have immense expertise on various tools and softwares, that they can vary their pace based on the skill level of the student. I felt the classes were initially slow, however when I started doing the practice exercises is when I could see the learning I was going through. The last few exercises were very tough and I hope I would be able to solve them in real time projects   -Tracy
    Tracy
  • I was very surprised when Ruby was chosen. However, I am completely convinced now that with its simplicity , Ruby wins over many other programming languages especially for test Automation. Pradeep was extremely knowledgeable and always connected real time experiences in how decisions are made. I was very impressed when Pradeep explained the pros and cons of programming language choice for Selenium. Can't thank you enough for helping me get an automation engineer job!   Cheers, Megan
    Megan
  • Thank you for explaining all the details patiently.a I haven't found any training course so engaging and giving a holistic picture at the same time deep-dive into code. I came in with manual testing background, however I feel confident about Selenium Automation testing. Thank you very much   - Chris
    Chris