Enrich Your Automation With Visual Assertions

This talk is about a ruby gem I wrote for adding visual assertion with selenium as driver.

While we continuously implement new functionalities in our app, automated functional tests acts as safety net and gives us confidence. Still, there is something missing. Many times we get feedback like:
"Sign-In button has shifted and user have to scroll down to see it"
"We wanted to change background color of screen-X, it got changed for Screen-Y screen as well"
"Why has fonts of this link become so tiny?”
I am working on customer facing enterprise level Mobile apps of one of the biggest airline in the world. For us user experience is as important as functionality.
Our regression suit did not have capability to catch such issues. Moreover, we started building another airline app from the same codebase with only change in user interface of this new app. This means, change done for one app, affects another. Hence, it became really critical to enhance our automation with visual assertions.
To accomplish this, I worte my own gem called 'nakal'.http://rubygems.org/gems/nakal

This is going to be a Talk + Demonstration

 
8 favorite thumb_down thumb_up 0 comments visibility_off  Remove from Watchlist visibility  Add to Watchlist
 

Outline/structure of the Session

1) What is automated visual regression and why is it important. Some cases in which it is the only way
2) Why did it matter A LOT for us. A specific challenge we had in our Mobile test automation project and why functional automation could not suffice.
3) Idea of 'nakal' ruby gem.
4) A 10 min live Demo of visual verification on a sample app.
5) How I built it so easily! And how can you build similar tool for your preferred language and ecosystem.
6) Quick walkthrough and insights of some of the features like:
     a) No new tests! Existing tests can do the job
     b) Android and iOS support
     c) Masking an area which has dynamic values
     d) Implicit wait till matching is done
     e) Threshold for comparision
     f) Cucumber support

Learning Outcome

Why and when to go for automated visual regression. How to MakeYourOwn tool if you do not find anything suitable already existing

Target Audience

Test automation enthusiasts

schedule Submitted 1 year ago

Comments Subscribe to Comments

comment Comment on this Proposal

  • Priti Biyani
    Priti Biyani
    Consultant
    ThoughtWorks
    schedule 1 year ago
    Sold Out!
    90 Mins
    Case Study
    Intermediate

    These days we find most of the apps are being developed across different platform, iOS, android, windows and to keep the user base which uses web, mobile web and websites. 

    When apps are being developed for cross domains, most of the functionality provided by the app is very similar, varying thing is PLATFORM. 

     In rapid development cycle, where there are tools which allows you to write once and reuse across multiple platforms, makes development very faster. 
    But at the same time, if we have different automation suite for different platforms, it becomes very difficult to keep a pace with ongoing functionality. 
    This is the exact problem we faced, and the solution we came up with is "One Page to test them all! -A cross platform mobile automation framework! "

     

    Page Object Model

    Well, Page Object Model was again a natural fit for this framework. Most implementations of POM recommend different POMs for each platform. But we wanted to have a single Page Object Model for all the 3 platforms to ensure maximum code reuse and reduce overall time spent in adding new automation.
     

    Single Page Object Model across platforms

    This was complicated because we had native screens as well as webview screens and so it was not possible to use the same Page Object. To solve this, we introduced abstractions for the elements on the screen and encapsulated the respective native driver implementations.

    This also allowed us to implement common automation tasks in one place for e.g waiting for new pages to load, so that this code is not repeated across multiple step definitions and platforms. This helped us move to thinking in higher domain level concepts than in terms of low level UI interactions.

    So, in summary, we write our tests for one platform and run them for all with an abstraction layer in place.

     

     

  • Liked Sargis Sargsyan
    keyboard_arrow_down

    Sargis Sargsyan - Better Page Object Handling with Loadable Component Pattern

    45 Mins
    Talk
    Advanced

    One of the painful problems in Selenium automated testing is determining whether a HTML page has been loaded. This is especially the case when web application uses a JS  heavy framework such as the popular AngularJS.

    During this talk we will discuss how to handle Selenium Page Object pattern better with Loadable Component.

    The Loadable Component helps test case developers make sure that the page or a component of the page is loaded successfully. I will share my experience about the concept of the Loadable Component and Page Object patterns.

     

     

  • Liked Ankita Gupta
    keyboard_arrow_down

    Ankita Gupta / Jatin Makhija - Web Push Notification Automation Mystery Solved!

    45 Mins
    Demonstration
    Intermediate

    Push Notifications are the latest way of sending updates to our users. More and more Organisations are implementing Web Push Notifications along with emails and other notification systems.

    So the Big Question that arises is "How do we automate them?"

    We have come up with a library in various languages which can be integrated with your Automation suite and provide you everything you need about the notification triggered.

    You can easily then trigger and verify the push notification sent and ship out the product without worries :)

  • Liked Michal Vanek
    keyboard_arrow_down

    Michal Vanek / Filip Braun - Breaking down the barriers: Testing desktop apps with Selenium

    45 Mins
    Talk
    Intermediate

    Selenium was born for web-application testing. But have you ever thought it could be a great tool for testing Windows desktop apps too?

    Today, more and more desktop apps use a web-like approach to implement their UI. The methods vary from basic HTMLayout environment to complex designs in CEF (Chromium Embedded Framework). However traditional GUI automation tools seem to be a step behind or ignoring the trend completely. This situation calls for finding new ways of testing.

    In our talk we shall introduce to you a new way of utilizing Selenium for automated testing of desktop applications. No matter whether the HTML UI content is completely offline or loaded and updated dynamically, Selenium is able to access and navigate it just like in a web page. We’ll also show you how to build a small framework around it and plug it into your Continuous Integration process. All of this will be demonstrated using a real-life instance of Avast Antivirus for Windows.

     

  • Liked Adam Carmi
    keyboard_arrow_down

    Adam Carmi - Advanced Automated Visual Testing With Selenium

    Adam Carmi
    Adam Carmi
    Co-Founder and VP R&D
    Applitools
    schedule 1 year ago
    Sold Out!
    45 Mins
    Talk
    Beginner

    Automated visual testing is a major emerging trend in the dev / test community. In this talk you will learn what visual testing is and why it should be automated. We will take a deep dive into some of the technological challenges involved with visual test automation and show how modern tools address them. We will review available Selenium-based open-source and commercial visual testing tools, demo cutting edge technologies that enable running cross browser and cross device visual tests at large scale, and show how visual test automation fits in the development / deployment lifecycle.

    If you don’t know what visual testing is, if you think that Sikuli is a visual test automation tool, if you are already automating your visual tests and want to learn more on what else is out there, if you are on your way to implement Continuous Deployment or just interested in seeing how cool image processing algorithms can be, this talk is for you!

  • Liked Justin Ison
    keyboard_arrow_down

    Justin Ison - Appium Workshop

    Justin Ison
    Justin Ison
    Senior Software Engineer
    Microsoft
    schedule 1 year ago
    Sold Out!
    480 Mins
    Workshop
    Beginner
    This workshop will feature getting started with automating Android with Appium. We'll learn how to capture elements in Ruby using irb (interactive Ruby), writing a test with rspec. Once we have our tests established, we'll then go into setting up a mobile device grid. Running the tests in parallel, distributed, and capturing critical report data (logs, screenshots, and video). We will also run some examples against a cloud testing service.

     

  • Liked Luke Inman-Semerau
    keyboard_arrow_down

    Luke Inman-Semerau - Grid Workshop

    Luke Inman-Semerau
    Luke Inman-Semerau
    Lead Member Technical Staff
    Salesforce
    schedule 1 year ago
    Sold Out!
    480 Mins
    Workshop
    Advanced

    Selenium Grid can be a bit daunting to get up and running. Starting it is quite easy, but using it effectively requires pulling in third party tools. In this workshop we’ll cover how you would realistically run your grid, using modern tooling to run a grid with docker containers or in a cloud service like AWS or theoretically your own VM provisioning environment.

     

  • Pranathi Birudugadda
    Pranathi Birudugadda
    schedule 1 year ago
    Sold Out!
    45 Mins
    Demonstration
    Intermediate

    Responsive web design (RWD) is an approach to web design aimed at crafting sites to provide an optimal viewing and interaction experience like easy reading and navigation with a minimum of resizing, panning, and scrolling across a wide range of devices (from desktop computer monitors to mobile phones).

    Responsive web design is becoming more important as the amount of mobile traffic now accounts for more than half of total internet traffic. This trend is so prevalent that Google has begun to boost the ratings of sites that are mobile friendly if the search was made from a mobile device. This has the net effect of penalizing sites that are not mobile friendly.

    The responsive web design responds to the needs of the users and the devices they’re using. The layout changes based on the size and capabilities of the device and provides the enhanced user-experience by re-structuring the contents as per the end-user devices. With plethora devices releasing every day, this has gained significance in the web designing and along with it came the testing challenges. In this talk, we are going to discuss the challenges in testing RWD websites and how to overcome those by using the tools available online.

    I have chosen Galen tool to demonstrate the automation of Responsive web design testing. Come and experience the talk to be enlightened about this new found tool :)

    Why Galen?

    Galen is an open source framework built for responsive websites. It provides the feasibility to test the various pages on screen sizes and browsers. The test and spec files can be written in plain English which makes it easier for the business people to understand and contribute. This can also be used as a guide for the UI developers where they build the layout based on the spec files agreed by the business. 

     

    To know more about Galen, visit Galen Website

     

     

  • Liked Parashuram
    keyboard_arrow_down

    Parashuram - Reusing Selenium tests for catching Performance Regressions

    90 Mins
    Demonstration
    Beginner

    Almost all the tests we write today are geared towards verifying the functional correctness of products. Selenium gives us a great way to ensure that our web applications and browser behave correctly and our tests usually do an excellent job running through the happy path.

    Most successful websites or hybrid mobile applications are not just functionally correct, but also have a very smooth performance and user experience. Performance, for many, is now a feature. In this talk, we will look at ways to re-use our selenium test cases to also catch any performance regressions. We will measure key performance indicators like frame rates and memory usage as the selenium scripts navigate and perform actions on the website. We will look at logging all these metrics into a dashboard, and integrating this with a continuous integration system like Jenkis or Team City. Finally, we will also look at how such a system can catch any code change that is responsible for making the website slower than a threshold we set.

     

    We will look at how we could use existing testing frameworks like Protractor or Jest to add performance metrics. We will extend our test matrix to cover desktop browsers, browsers on popular mobile platforms and even hybrid apps like Apache Cordova, Ionic or Phonegap.

     

     

    If Performance is a feature, let us test it like we test features !!

     

  • Liked Deepshikha Singh
    keyboard_arrow_down

    Deepshikha Singh - Appium: Mobile App Automation Made Awesome.

    45 Mins
    Talk
    Intermediate

     

    This session will help beginners who are interested in mobile testing and help them kick start right away, we will start from ground 0 and then move on to providing better understanding of the tool and writing scripts using the tool. This session is for participants who perceive mobile testing to be difficult and that it requires good coding skill. I will demonstrate by automating (running) all types of application supported by Appium. Appium is an open source project and has made design and tool decisions to encourage a vibrant contributing community.

     

     

     

  • Liked Dharmesh Vaya
    keyboard_arrow_down

    Dharmesh Vaya - Selenium + SoapUI + JMeter : A complete framework

    45 Mins
    Talk
    Beginner

    This talk showcases how you can develop a framework in Java with all kinds of features like WebTesting with Selenium, Service Layer testing with SoapUI and Load Testing with JMeter - all packaged as a single testing solution. Above all, make use of open source libraries and get details HTML reports as well as Summary reports. This solution allows you to seamlessly integrate all your testing requirements under a single framework.

     

  • Liked Srinivasan Sekar
    keyboard_arrow_down

    Srinivasan Sekar / Sai Krishna - Automation testing on iOS real devices Parallely using Appium

    20 Mins
    Talk
    Beginner

    Automate Native/Hybrid applications and execute the tests on several iOS real devices parallely without registering appium nodes to selenium grid.

  • Liked Alexander Bayandin
    keyboard_arrow_down

    Alexander Bayandin - Mobile Web Test Automation: to the Desktop!

    45 Mins
    Talk
    Advanced

    How does it usually look when people do Mobile Web Test Automation? They write a couple of tests, run them on some desktop browser and only after that try to run on emulators/simulators and the final step is adapting and fixing the tests for browsers on real devices.

    By happy chance we developed our tests for Mobile Web on real devices. But some time ago we decided to run on Desktop as well.

    Why? What benefits did we get? How do we have both Appium and Selenium tests in one repository? And what challenges did we face? About this and many other things I will tell in my talk.

  • Liked Anup Menon
    keyboard_arrow_down

    Anup Menon - Total Continuous Integration

    Anup Menon
    Anup Menon
    QA Analyst
    Srijan Technologies
    schedule 1 year ago
    Sold Out!
    45 Mins
    Talk
    Intermediate

    Total Continuous Integration is a series of functional and nonfunctional tests that runs periodically with the help of continuous integration tool.

     Writing a script and automating the test cases are really time saving, But it will be more effective if its Headless and runs periodically. Also at the end of every automation scripts we need Reports. This can be easily achieved with the help of continuous integration tool- Jenkins. Jenkins is one open source tool to perform continuous integration and build automation. The basic functionality of Jenkins is to execute a predefined list of steps. The trigger for this execution can be time or event based. 

    In this session we will discuss how to run your selenium scripts, Jmeter scripts or your JS scripts periodically and generate reports on each build. We will also explore how to run a selenium script headlessly with the help of Xvfb.

  • Liked Soumyajit Basu
    keyboard_arrow_down

    Soumyajit Basu - Running your tests headless using Java + Selenium + PhantomJs Driver + TestNG

    20 Mins
    Talk
    Beginner

    In this era of continuous software development and continuous delivery automation of a software plays a really big role in reducing time and effort for quality control and visually verifying individual functionalities. Automation plays a vital role in quickly pin pointing any break within the functionalities of the software system and also provides a quick report so that the software development team is aware what functionality in the system needs to be attended.

    The session would contain running an automation test headless by using the capability of phantomjs driver, running Selenium, implemented in Java and triggered by TestNG. People interested in learning automation can utilise the power of phantomjs driver to run tests quickly and get the desired test reports.