** Full webinar recording: **
Creating and maintaining a flawless and smooth user experience is no small feat.
Not only do you need to ensure that the backend and front-end are functioning and appearing as expected, but also you must verify that this is the case across hundreds (if not thousands) of possible combos of screen-size/browser/operating systems.
And if that wasn't enough - you are deploying and releasing continuously, in a rapidly-changing ecosystem of devices, competitors, and technologies.
So how do you keep track of all those moving parts, in real time, in order to prevent functional and UI fails?
In this hands-on session, we demonstrated how you can safeguard your app's functionality and UI across all digital platforms.
We presented -- step-by-step -- how to write functional tests, which ensure that the application performs user actions correctly, as well as how to write visual tests that guarantee that the application does not suffer embarrassing UI bugs, glitches and regressions.
Watch this practical, hands-on session, and learn how to:
* Write functional end-to-end tests, while consistently capturing application screenshots for image comparison
* Add visual regression tests to ensure that the application still appears as expected
* Analyze visual diffs to determine the root cause of visual bugs
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Creating a flawless user experience, end to-end, functional to visual - Slides by Gil Tayar
1. @giltayar
Creating a Flawless User Experience,
End-To-End, Functional to Visual
Gil Tayar (@giltayar)
April 2019
Github repo: https://github.com/applitools/cypress-applitools-webinar
This presentation: http://bit.ly/cypress-applitools-webinar
Gleb’s presentation: https://slides.com/bahmutov/flawless-tests
1
12. @giltayar
HTML and CSS Markup
When I change my HTML and CSS,
do the pages still look like they should?
● Yes, the checkbox is disabled. But does it look disabled?
● In my todo row, when it’s completed, does it look striked out?
● Does the whole page look OK?
● After I create a new row, does it still look OK?
12
19. @giltayar
How does one go about visually testing an app?
● Automate the browser, do what the user would:
○ Use Cypress!
● For each page you would like to visually test:
○ Navigate/click/type to it
○ Take a screenshot
○ Check that it’s OK
19
20. @giltayar
How would it look like?
it('logs in', () => {
cy.contains('a.nav-link', 'Sign in').click()
cy.eyesCheckWindow ('Login page')
const user = Cypress.env('user')
cy.get('input[type="email"]' ).type(user.email)
cy.get('input[type="password"]' ).type(user.password)
cy.get('button[type="submit"]' ).click()
cy.eyesCheckWindow ('Empty home page after login' )
})
20
21. @giltayar
How would it look like?
it('logs in', () => {
cy.contains('a.nav-link', 'Sign in').click()
cy.eyesCheckWindow ('Login page')
const user = Cypress.env('user')
cy.get('input[type="email"]').type(user.email)
cy.get('input[type="password"]').type(user.password)
cy.get('button[type="submit"]').click()
cy.eyesCheckWindow ('Empty home page after login' )
})
21
Actions
22. @giltayar
How would it look like?
it('logs in', () => {
cy.contains('a.nav-link', 'Sign in').click()
cy.eyesCheckWindow('Login page')
const user = Cypress.env('user')
cy.get('input[type="email"]' ).type(user.email)
cy.get('input[type="password"]' ).type(user.password)
cy.get('button[type="submit"]' ).click()
cy.eyesCheckWindow('Empty home page after login')
})
22
Screenshots
23. @giltayar
This is how test code looks like
Navigate
Click, type, click
checkScreenshot
Click, click, type
checkScreenshot
Type, click, click
checkScreenshot
Click, click, click
checkScreenshot
23
24. @giltayar
How do we check that the screenshot is OK?
You send us screenshots of your app
We compare the screenshots with baseline images
We report any differences found
You accept or reject the differences
47. @giltayar
Things we haven’t shown
● Take selective screenshot using selector
● Github and Bitbucket integration
● JIRA integration
● Shadow DOM and Canvas support: coming soon
● Ignore regions, floating ignore regions
● Layout mode!
47
48. @giltayar
Coming Soon
● A Cypress course in TestAutomationU
○ https://testautomationu.applitools.com/
○ Written by yours truly
48
49. @giltayar
Thank You
Github repo: https://github.com/applitools/cypress-applitools-webinar
This presentation: http://bit.ly/cypress-applitools-webinar
Gleb’s presentation: https://slides.com/bahmutov/flawless-tests
49