SlideShare ist ein Scribd-Unternehmen logo
1 von 104
Downloaden Sie, um offline zu lesen
@giltayar
SUCCESSFULLY COLLABORATING WITH DEVELOPERS:
HOW-TO GUIDE FOR QA PROS AND TEST ENGINEERS
Gil Tayar (@giltayar)
January 2019
This presentation: http://bit.ly/collaborating-with-developers
Github repo: https://github.com/giltayar/collaborating-with-developers
1
@giltayar@giltayar
About Me ● My developer experience goes all the way
back to the ‘80s.
● Am, was, and always will be a developer
● Testing the code I write is my passion
● Currently evangelist and architect @
Applitools
● We deliver Visual Testing tools:
If you’re serious about testing, checkout
Applitools Eyes
● Sometimes my arms bend back
● But the gum I like is coming back in style
@giltayar
2
@giltayar
Stepping in and
Collaborating with
Developers
3
@giltayar
Stepping in and
Collaborating with
Developers
4
@giltayar
Why?
5
@giltayar
Agile
6
@giltayar
Agile Manifesto
● Individuals and interactions over processes and tools
● Working software over comprehensive documentation
● Customer collaboration over contract negotiation
● Responding to change over following a plan
● http://agilemanifesto.org/
7
@giltayar
The “Just Wing It” Approach
● Individuals and interactions over processes and tools
● Working software over comprehensive documentation
● Customer collaboration over contract negotiation
● Responding to change over following a plan
● http://agilemanifesto.org/
8
@giltayar
The “Just Wing It” Approach
(Agility)
● Individuals and interactions over
processes and tools
● Working software over
comprehensive documentation
● Customer collaboration over
contract negotiation
● Responding to change over
following a plan
9
@giltayar
The “Just Wing It” Approach
● Individuals and interactions over processes and tools
● Working software over comprehensive documentation
● Customer collaboration over contract negotiation
● Responding to change over following a plan
● http://agilemanifesto.org/
10
@giltayar
Working software
over comprehensive documentation
11
@giltayar
Trunk-based Development
12
@giltayar
Trunk-based
Development
13
@giltayar
How do we test in such an environment?
14
@giltayar
No more nightlies
● Tests cannot run “overnight”
● Tests cannot take hours, or even tens of minutes.
● At most a few minutes. 1-3.
15
@giltayar
Developers MUST Test
16
@giltayar
The QA Gateway Must Die
17
@giltayar
Tests must be part of the development cycle
18
@giltayar
Tests must be fast
● Developers can’t wait
● They need to know now that the code runs
● They have to commit now
19
@giltayar
This is the “Waterfall” Method
20
@giltayar
This is better, but not good enough
21
@giltayar
This is true “agile”
22
@giltayar
This is the Essence of “Shift Left”
23
@giltayar
Yay!
Shift Left!
Yay!
24
@giltayar
Except that...
25
@giltayar
Developers Don’t Test
26
@giltayar
Why Don’t
Developers Test?
● They’re lazy bums
● They just “wing it”.
● “It’s gonna be
alright”
27
@giltayar
Backend and Frontend Developers
28
@giltayar
Backend
Developers Test
More!
● More years building
methodologies
● Easier
29
@giltayar
Frontend
Developers Test
Less
● It’s a young discipline
● More difficult
30
@giltayar
Frontend Testing is Young
● The whole modern Frontend Stack didn’t exist 5 years ago
○ The previous stack was impossible to test
● The current stack is testable
○ It took time to solidify
● But it has solidified now.
● There is a methodology that is used for frontend testing
31
@giltayar
But Why Frontend Developers?
32
@giltayar
But Why Frontend Developers?
● Closest to the product
● Less tested
● We need to help them
● Best bang for the buck
○ Same tools as E2E
33
@giltayar
And… they’re cooler!
34
@giltayar
Which brings us to the second part...
35
@giltayar
How?
36
@giltayar
How do we do frontend testing?
37
@giltayar
Let’s start with the language
38
@giltayar
JavaScript isn’t serious
● “JavaScript is a toy language”
● “JavaScript shouldn’t be taken seriously”
● “It’s nice for small programs”
● “0.2 + 0.1 == 0.30000000000000004”
This was true 5 to 10 years ago. Not true now.
(and the last one is true in most languages)
39
@giltayar
I have two quotes for you...
40
@giltayar
Brendan Eich
41
@giltayar
Atwood’s Law
If it can be written in JavaScript, it will be written in JavaScript
42
@giltayar
Code Written in JavaScript
● Gmail
● Google Maps
● Twitter UI
● Facebook
● Large parts of server-side Netflix
● My favorite example:
a CPU+hardware emulator that boots Linux
43
@giltayar
The JavaScript Renaissance
JavaScript today is...
● Modern
● Powerful
● Concise
● Functional
● Readable
● Ubiquitous (browser, server, CLI, IoT)
● Has the richest and largest 3rd party library in the world
● ...and is continually evolving
44
@giltayar
Next Thing: Testing Methodology
45
@giltayar
Unit
Integration
E2E
The Testing Pyramid
46
@giltayar
Unit
Unit Tests
47
@giltayar
Unit tests...
● Are fast (milliseconds)
● Are not flaky
● Do no I/O or use browser features
● Test only one module, function, or class
● Bring little confidence on their own
● Are perfect for Business Logic testing
48
@giltayar
Integration
Integration Tests
49
@giltayar
Integration tests...
● Are still fast (10-100s milliseconds)
● Are mostly not flaky
● Do I/O and use browser features
● Test a group of modules/classes/functions as they are tested in the
final product
● Bring some level of confidence in the application
● Are perfect for testing whole parts of the application easily
50
@giltayar
E2E
E2E Tests
51
@giltayar
E2E tests...
● Are slow (seconds)
● Are flakier
● Browser Automation tests
● Test features end to end
● Bring lots of confidence
52
@giltayar
Unit
Integration
E2E
The Testing Pyramid
Slowness
Flakiness
Confidence
53
@giltayar
Unit
Integration
E2E
Why is Speed Important?
Slowness
Flakiness
Confidence
54
@giltayar
Answer: Development Cycle
What is acceptable for nightly automation test, is not acceptable for
developers
55
@giltayar
Answer: Development Cycle
What is acceptable for nightly automation test, is not acceptable for
developers
Hence the emphasis on unit and integration tests
56
@giltayar
OK, OK, Shift Left, yeah.
But...
57
@giltayar
What’s the Tester’s Role?
● Educate and monitor
○ They are lazy bums, after all. 😉
● Work on the tests with the frontend developers
● Write the real E2E tests
● And… Shift Right. E2E tests in production!
○ Which you can (and should) still do with JS
58
@giltayar
OK, OK. But how?
How do I write
tests?
Show me some
code!
59
@giltayar
Writing Unit Tests
60
@giltayar
Remember….
● Unit tests test only one module, function, or class
● Bring little confidence on their own
● Are perfect for Business Logic testing
● Are very fast (milliseconds)
61
@giltayar
The Function to Test
function factorial (n) {
let result = 1
for (let i = 1; i <= n; ++i) {
result *= i
}
return result
}
module.exports = factorial
62
@giltayar
Whoever uses the function needs to...
const factorial = require('./factorial.js')
...
... factorial(...)
...
63
@giltayar
What do we want to test?
● factorial(0) == 1
● factorial(1) == 1
● factorial(2) == 2
● factorial(5) == 120
64
@giltayar
Test Factorial
const assert = require('assert')
const factorial = require('../../lib/factorial')
assert.strict.equal(factorial(0), 1)
assert.strict.equal(factorial(1), 1)
assert.strict.equal(factorial(2), 2)
assert.strict.equal(factorial(5), 120)
65
@giltayar
Does the browser support `module.exports`? No!
function factorial (n) {
let result = 1
for (let i = 1; i <= n; ++i) {
result *= i
}
return result
}
module.exports = factorial
66
@giltayar
Modular Modern JS
<script
src=bundle.js>
Webpack bundle.js
Production
Code
67
@giltayar
Where can this code run?
The Browser*
* With the help of webpack
68
@giltayar
Where can it also run?
NodeJS
69
@giltayar
Most frontend code today can also run under
NodeJS
707
0
@giltayar
Universal/Isomorphic Code
71
@giltayar
Let’s run it under NodeJS
72
@giltayar
Awkward to Test Like This
● We need a Test Runner
● Just like jUnit, NUnit, pytest, test-unit, … in other languages
● NodeJS has lots of them:
○ Mocha, Jest, Ava, Tape, Jasmine.
○ And the list goes on…
● The most popular are Mocha and Jest
● We’ll be demoing using Mocha
73
@giltayar
Mocha Test
const { describe, it } =
require('mocha')
const { expect } =
require('chai')
const factorial =
require('../../lib/factorial`' )
...
...
describe('factorial', () => {
it('should handle 0' , () => {
expect(factorial( 0)).to.equal(1)
})
it('should handle 1' , () => {
expect(factorial( 1)).to.equal(1)
})
it('should handle 5' , () => {
expect(factorial( 5)).to.equal(120)
})
})
74
@giltayar
Let’s run it under Mocha
75
@giltayar
Testable Code
● Separation of Concerns: code does one thing and one thing only
● Separate UI code, I/O code, and logic
● Test logic with unit tests, and the others with integration tests
76
@giltayar
Untestable Code
function writeFactorialToServer (n, filename) {
let result = 1
for (let i = 1; i <= n; ++i) {
result *= i
}
// write result to server
fetch('http://...', {method: 'PUT', body: result.toString()})
}
module.exports = writeFactorial
77
@giltayar
Notice how important speed is...
78
@giltayar
Writing Integration Tests
79
@giltayar
Remember...
● Test a group of modules/classes/functions as they are glued in the
final product
● Do I/O and use browser features
● Are still fast (10-100s milliseconds)
● Are mostly not flaky
80
@giltayar
Must Run in the Browser?
● Test a group of modules/classes/functions as they are glued in the
final product
● Do I/O and use browser features
● Are still fast (10-100s milliseconds)
● Are mostly not flaky
81
@giltayar
No! It Can Run Under NodeJS
82
@giltayar
But unfortunately, out of scope
83
@giltayar
For more information...
https://www.youtube.com/watch?v=H_2cMSuNdS8
84
@giltayar
Just a taste...
describe('calculator app component' , function () {
before(function () {
global.window =
new JSDOM(
`<html><body><div id="container"/></div></body></html>` ).window
global.document = window.document
})
85
@giltayar
Just a taste [2]...
it('should work', function () {
ReactDom.render(<CalculatorApp />, document.getElementById('container'))
const digit4Element = document.querySelector('.digit-4')
const operatorMultiply = document.querySelector('.operator-multiply')
const operatorEquals = document.querySelector('.operator-equals')
digit4Element.click()
operatorMultiply.click()
digit4Element.click()
operatorEquals.click()
expect(displayElement.textContent).to.equal('16')
})
86
@giltayar
Using JSDOM for Integration Tests...
● Run in milliseconds
● No need to run a server
● No need to run a browser
● Not flaky
● Debug with any NodeJS debugger
● No sourcemaps
● No build step - just change code and rerun
● Mock XHR using nock - no mock HTTP server
87
@giltayar
Let’s try it!
88
@giltayar
Writing E2E Tests
(Browser Automation)
89
@giltayar
We need a browser automation framework...
909
0
@giltayar
● Selenium WebDriver
● TestCafe
● WebDriverIO
● NightWatch
● CasperJS
● Cypress
● Puppeteer
● …
We have lots of them...
91
@giltayar
● Selenium WebDriver
But we’ll use...
92
@giltayar
Serving the Frontend Code
before((done) => {
const app = express()
app.use('/', express.static(__dirname + '/../../dist'))
server = app.listen(8080, done)
})
after(() => {
server.close()
})
93
@giltayar
Initializing WebDriver
before(async () => {
driver = new webdriver.Builder()
.forBrowser('chrome')
.build()
})
after(async () => await driver.quit())
94
@giltayar
The Test
it('should work', async function () {
await driver.get('http://localhost:8080')
const digit4Element = await driver.findElement(By.css('.digit-4'))
const operatorMultiply = await driver.findElement(By.css('.operator-multiply'))
const operatorEquals = await driver.findElement(By.css('.operator-equals'))
await digit4Element.click()
await operatorMultiply.click()
await digit4Element.click()
await operatorEquals.click()
await driver.wait(until.elementTextIs(await driver.findElement(By.css('.display')),
'84'))
})
95
@giltayar
Adding Visual Regression
Tests
96
@giltayar
Especially Important For Frontend Developers
97
@giltayar
Visual Regression Testing
Enables frontend developers to ensure that their application always
looks the same
98
@giltayar
Pretty Simple To Implement Atop Automation Tests
● Just add a line that takes a screenshot of the page and compares to previous
baseline screenshot
99
@giltayar
The Test
it('should work', async function () {
await driver.get('http://localhost:8080')
...
await digit4Element.click()
await operatorMultiply.click()
await digit4Element.click()
await operatorEquals.click()
await driver.wait(until.elementTextIs(
await driver.findElement(By.css('.display')), '84'))
await eyes.checkWindow('After calculating 42 * 2 =')
})
10
0
@giltayar
Summary
101
@giltayar
Summary
● Agile is here: “There is no release, code is always working”
● Old “QA Gateway method” cannot work anymore
● Shift-left to testing during development
● Work with developers for this. Mostly frontend developers
● Understand the language of the frontend developers
○ The test pyramid
○ The advantages and disadvantages of each test type in terms of speed, flakiness, and
confidence
○ JavaScript and modern JavaScript Development
○ The different test runners, browser automation frameworks, etc…
● It’s a whole new world!
10
2
@giltayar
● Intro to frontend testing:
https://hackernoon.com/testing-your-frontend-code-part-v-visual-testing-935864cf
b5c7
● Frontend integration testing: https://www.youtube.com/watch?v=H_2cMSuNdS8
● Assert(JS) Talks:
https://www.youtube.com/playlist?list=PLZ66c9_z3umNSrKSb5cmpxdXZcIPNvK
Gw
● People to follow:
○ Kent C. Dodds
○ Kevin Lamping
○ Me… 😊
Resources
10
3
@giltayar
Questions?
This presentation: http://bit.ly/collaborating-with-developers
Github repo: https://github.com/giltayar/collaborating-with-developers
10
4

Weitere ähnliche Inhalte

Was ist angesagt?

Unit Testing and TDD 2017
Unit Testing and TDD 2017Unit Testing and TDD 2017
Unit Testing and TDD 2017Xavi Hidalgo
 
Testing: Heaven or Hell
Testing: Heaven or HellTesting: Heaven or Hell
Testing: Heaven or HellAndrew Hurd
 
Agile and test driven development
Agile and test driven developmentAgile and test driven development
Agile and test driven developmentAhmed El-Deeb
 
Test Driven Development (TDD) & Continuous Integration (CI)
Test Driven Development (TDD) & Continuous Integration (CI)Test Driven Development (TDD) & Continuous Integration (CI)
Test Driven Development (TDD) & Continuous Integration (CI)Fatkul Amri
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven DevelopmentConsulthinkspa
 
Effective Testing in Agile
Effective Testing in AgileEffective Testing in Agile
Effective Testing in AgileAndrii Dzynia
 
Agile Software Development and Test Driven Development: Agil8's Dave Putman 3...
Agile Software Development and Test Driven Development: Agil8's Dave Putman 3...Agile Software Development and Test Driven Development: Agil8's Dave Putman 3...
Agile Software Development and Test Driven Development: Agil8's Dave Putman 3...agil8 Ltd
 
ATDD Quiz For Managers
ATDD Quiz For ManagersATDD Quiz For Managers
ATDD Quiz For ManagersNishant Singh
 

Was ist angesagt? (11)

Unit Testing and TDD 2017
Unit Testing and TDD 2017Unit Testing and TDD 2017
Unit Testing and TDD 2017
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Testing: Heaven or Hell
Testing: Heaven or HellTesting: Heaven or Hell
Testing: Heaven or Hell
 
Agile and test driven development
Agile and test driven developmentAgile and test driven development
Agile and test driven development
 
Test Driven Development (TDD) & Continuous Integration (CI)
Test Driven Development (TDD) & Continuous Integration (CI)Test Driven Development (TDD) & Continuous Integration (CI)
Test Driven Development (TDD) & Continuous Integration (CI)
 
DevTestOps
DevTestOpsDevTestOps
DevTestOps
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Effective Testing in Agile
Effective Testing in AgileEffective Testing in Agile
Effective Testing in Agile
 
Agile tester 3.0
Agile tester 3.0Agile tester 3.0
Agile tester 3.0
 
Agile Software Development and Test Driven Development: Agil8's Dave Putman 3...
Agile Software Development and Test Driven Development: Agil8's Dave Putman 3...Agile Software Development and Test Driven Development: Agil8's Dave Putman 3...
Agile Software Development and Test Driven Development: Agil8's Dave Putman 3...
 
ATDD Quiz For Managers
ATDD Quiz For ManagersATDD Quiz For Managers
ATDD Quiz For Managers
 

Ähnlich wie Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar

Cypress vs Selenium WebDriver: Better, Or Just Different? -- by Gil Tayar
Cypress vs Selenium WebDriver: Better, Or Just Different? -- by Gil TayarCypress vs Selenium WebDriver: Better, Or Just Different? -- by Gil Tayar
Cypress vs Selenium WebDriver: Better, Or Just Different? -- by Gil TayarApplitools
 
Visual Regression Testing at the Speed of Unit Testing -- by Gil Tayar
Visual Regression Testing at the Speed of Unit Testing -- by Gil TayarVisual Regression Testing at the Speed of Unit Testing -- by Gil Tayar
Visual Regression Testing at the Speed of Unit Testing -- by Gil TayarApplitools
 
"AI, Please Test My App!" - by Gil Tayar
"AI, Please Test My App!" - by Gil Tayar"AI, Please Test My App!" - by Gil Tayar
"AI, Please Test My App!" - by Gil TayarApplitools
 
Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark...
 Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark... Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark...
Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark...Databricks
 
Validating big data jobs - Spark AI Summit EU
Validating big data jobs  - Spark AI Summit EUValidating big data jobs  - Spark AI Summit EU
Validating big data jobs - Spark AI Summit EUHolden Karau
 
Break up the Monolith: Testing Microservices
Break up the Monolith: Testing MicroservicesBreak up the Monolith: Testing Microservices
Break up the Monolith: Testing MicroservicesMarcus Merrell
 
Writing Tests with the Unity Test Framework
Writing Tests with the Unity Test FrameworkWriting Tests with the Unity Test Framework
Writing Tests with the Unity Test FrameworkPeter Kofler
 
Working With Legacy Code
Working With Legacy CodeWorking With Legacy Code
Working With Legacy CodeAndrea Polci
 
TDD: seriously, try it! 
TDD: seriously, try it! TDD: seriously, try it! 
TDD: seriously, try it! Nacho Cougil
 
Ukoug webinar - testing PLSQL APIs with utPLSQL v3
Ukoug webinar - testing PLSQL APIs with utPLSQL v3Ukoug webinar - testing PLSQL APIs with utPLSQL v3
Ukoug webinar - testing PLSQL APIs with utPLSQL v3Jacek Gebal
 
How to establish ways of working that allows shifting-left of the automation ...
How to establish ways of working that allows shifting-left of the automation ...How to establish ways of working that allows shifting-left of the automation ...
How to establish ways of working that allows shifting-left of the automation ...Max Barrass
 
Demise of test scripts rise of test ideas
Demise of test scripts rise of test ideasDemise of test scripts rise of test ideas
Demise of test scripts rise of test ideasRichard Robinson
 
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...dcieslak
 
The Holy Trinity of UI Testing by Diego Molina
The Holy Trinity of UI Testing by Diego MolinaThe Holy Trinity of UI Testing by Diego Molina
The Holy Trinity of UI Testing by Diego MolinaSauce Labs
 
Keeping code clean
Keeping code cleanKeeping code clean
Keeping code cleanBrett Child
 
Test-Driven Development.pptx
Test-Driven Development.pptxTest-Driven Development.pptx
Test-Driven Development.pptxTomas561914
 
TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)Nacho Cougil
 
Educate 2017: A formula for success: developing Learnosity’s auto-scoring mat...
Educate 2017: A formula for success: developing Learnosity’s auto-scoring mat...Educate 2017: A formula for success: developing Learnosity’s auto-scoring mat...
Educate 2017: A formula for success: developing Learnosity’s auto-scoring mat...Learnosity
 
Behaviour Driven Development and Thinking About Testing
Behaviour Driven Development and Thinking About TestingBehaviour Driven Development and Thinking About Testing
Behaviour Driven Development and Thinking About Testingdn
 
Bdd and-testing
Bdd and-testingBdd and-testing
Bdd and-testingmalcolmt
 

Ähnlich wie Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar (20)

Cypress vs Selenium WebDriver: Better, Or Just Different? -- by Gil Tayar
Cypress vs Selenium WebDriver: Better, Or Just Different? -- by Gil TayarCypress vs Selenium WebDriver: Better, Or Just Different? -- by Gil Tayar
Cypress vs Selenium WebDriver: Better, Or Just Different? -- by Gil Tayar
 
Visual Regression Testing at the Speed of Unit Testing -- by Gil Tayar
Visual Regression Testing at the Speed of Unit Testing -- by Gil TayarVisual Regression Testing at the Speed of Unit Testing -- by Gil Tayar
Visual Regression Testing at the Speed of Unit Testing -- by Gil Tayar
 
"AI, Please Test My App!" - by Gil Tayar
"AI, Please Test My App!" - by Gil Tayar"AI, Please Test My App!" - by Gil Tayar
"AI, Please Test My App!" - by Gil Tayar
 
Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark...
 Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark... Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark...
Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark...
 
Validating big data jobs - Spark AI Summit EU
Validating big data jobs  - Spark AI Summit EUValidating big data jobs  - Spark AI Summit EU
Validating big data jobs - Spark AI Summit EU
 
Break up the Monolith: Testing Microservices
Break up the Monolith: Testing MicroservicesBreak up the Monolith: Testing Microservices
Break up the Monolith: Testing Microservices
 
Writing Tests with the Unity Test Framework
Writing Tests with the Unity Test FrameworkWriting Tests with the Unity Test Framework
Writing Tests with the Unity Test Framework
 
Working With Legacy Code
Working With Legacy CodeWorking With Legacy Code
Working With Legacy Code
 
TDD: seriously, try it! 
TDD: seriously, try it! TDD: seriously, try it! 
TDD: seriously, try it! 
 
Ukoug webinar - testing PLSQL APIs with utPLSQL v3
Ukoug webinar - testing PLSQL APIs with utPLSQL v3Ukoug webinar - testing PLSQL APIs with utPLSQL v3
Ukoug webinar - testing PLSQL APIs with utPLSQL v3
 
How to establish ways of working that allows shifting-left of the automation ...
How to establish ways of working that allows shifting-left of the automation ...How to establish ways of working that allows shifting-left of the automation ...
How to establish ways of working that allows shifting-left of the automation ...
 
Demise of test scripts rise of test ideas
Demise of test scripts rise of test ideasDemise of test scripts rise of test ideas
Demise of test scripts rise of test ideas
 
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
 
The Holy Trinity of UI Testing by Diego Molina
The Holy Trinity of UI Testing by Diego MolinaThe Holy Trinity of UI Testing by Diego Molina
The Holy Trinity of UI Testing by Diego Molina
 
Keeping code clean
Keeping code cleanKeeping code clean
Keeping code clean
 
Test-Driven Development.pptx
Test-Driven Development.pptxTest-Driven Development.pptx
Test-Driven Development.pptx
 
TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)
 
Educate 2017: A formula for success: developing Learnosity’s auto-scoring mat...
Educate 2017: A formula for success: developing Learnosity’s auto-scoring mat...Educate 2017: A formula for success: developing Learnosity’s auto-scoring mat...
Educate 2017: A formula for success: developing Learnosity’s auto-scoring mat...
 
Behaviour Driven Development and Thinking About Testing
Behaviour Driven Development and Thinking About TestingBehaviour Driven Development and Thinking About Testing
Behaviour Driven Development and Thinking About Testing
 
Bdd and-testing
Bdd and-testingBdd and-testing
Bdd and-testing
 

Mehr von Applitools

Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonApplitools
 
Streamlining Your Tech Stack: A Blueprint for Enhanced Efficiency and Coverag...
Streamlining Your Tech Stack: A Blueprint for Enhanced Efficiency and Coverag...Streamlining Your Tech Stack: A Blueprint for Enhanced Efficiency and Coverag...
Streamlining Your Tech Stack: A Blueprint for Enhanced Efficiency and Coverag...Applitools
 
Visual AI for eCommerce: Improving Conversions with a Flawless UI
Visual AI for eCommerce: Improving Conversions with a Flawless UIVisual AI for eCommerce: Improving Conversions with a Flawless UI
Visual AI for eCommerce: Improving Conversions with a Flawless UIApplitools
 
A Test Automation Platform Designed for the Future
A Test Automation Platform Designed for the FutureA Test Automation Platform Designed for the Future
A Test Automation Platform Designed for the FutureApplitools
 
Add AI to Your SDLC, presented by Applitools and Curiosity
Add AI to Your SDLC, presented by Applitools and CuriosityAdd AI to Your SDLC, presented by Applitools and Curiosity
Add AI to Your SDLC, presented by Applitools and CuriosityApplitools
 
The Future of AI-Based Test Automation
The Future of AI-Based Test AutomationThe Future of AI-Based Test Automation
The Future of AI-Based Test AutomationApplitools
 
Test Automation at Scale: Lessons from Top-Performing Distributed Teams
Test Automation at Scale: Lessons from Top-Performing Distributed TeamsTest Automation at Scale: Lessons from Top-Performing Distributed Teams
Test Automation at Scale: Lessons from Top-Performing Distributed TeamsApplitools
 
Can AI Autogenerate and Run Automated Tests?
Can AI Autogenerate and Run Automated Tests?Can AI Autogenerate and Run Automated Tests?
Can AI Autogenerate and Run Automated Tests?Applitools
 
Triple Assurance: AI-Powered Test Automation in UI Design and Functionality
Triple Assurance: AI-Powered Test Automation in UI Design and FunctionalityTriple Assurance: AI-Powered Test Automation in UI Design and Functionality
Triple Assurance: AI-Powered Test Automation in UI Design and FunctionalityApplitools
 
Navigating the Challenges of Testing at Scale: Lessons from Top-Performing Teams
Navigating the Challenges of Testing at Scale: Lessons from Top-Performing TeamsNavigating the Challenges of Testing at Scale: Lessons from Top-Performing Teams
Navigating the Challenges of Testing at Scale: Lessons from Top-Performing TeamsApplitools
 
Introducing the Applitools Self Healing Execution Cloud.pdf
Introducing the Applitools Self Healing Execution Cloud.pdfIntroducing the Applitools Self Healing Execution Cloud.pdf
Introducing the Applitools Self Healing Execution Cloud.pdfApplitools
 
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Applitools
 
Collaborating From Design To Experience: Introducing Centra
Collaborating From Design To Experience: Introducing CentraCollaborating From Design To Experience: Introducing Centra
Collaborating From Design To Experience: Introducing CentraApplitools
 
What the QA Position Will Look Like in the Future
What the QA Position Will Look Like in the FutureWhat the QA Position Will Look Like in the Future
What the QA Position Will Look Like in the FutureApplitools
 
Getting Started with Visual Testing
Getting Started with Visual TestingGetting Started with Visual Testing
Getting Started with Visual TestingApplitools
 
Workshop: Head-to-Head Web Testing: Part 1 with Cypress
Workshop: Head-to-Head Web Testing: Part 1 with CypressWorkshop: Head-to-Head Web Testing: Part 1 with Cypress
Workshop: Head-to-Head Web Testing: Part 1 with CypressApplitools
 
From Washing Cars To Automating Test Applications
From Washing Cars To Automating Test ApplicationsFrom Washing Cars To Automating Test Applications
From Washing Cars To Automating Test ApplicationsApplitools
 
A Holistic Approach to Testing in Continuous Delivery
A Holistic Approach to Testing in Continuous DeliveryA Holistic Approach to Testing in Continuous Delivery
A Holistic Approach to Testing in Continuous DeliveryApplitools
 
AI-Powered-Cross-Browser Testing
AI-Powered-Cross-Browser TestingAI-Powered-Cross-Browser Testing
AI-Powered-Cross-Browser TestingApplitools
 
Workshop: An Introduction to API Automation with Javascript
Workshop: An Introduction to API Automation with JavascriptWorkshop: An Introduction to API Automation with Javascript
Workshop: An Introduction to API Automation with JavascriptApplitools
 

Mehr von Applitools (20)

Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
 
Streamlining Your Tech Stack: A Blueprint for Enhanced Efficiency and Coverag...
Streamlining Your Tech Stack: A Blueprint for Enhanced Efficiency and Coverag...Streamlining Your Tech Stack: A Blueprint for Enhanced Efficiency and Coverag...
Streamlining Your Tech Stack: A Blueprint for Enhanced Efficiency and Coverag...
 
Visual AI for eCommerce: Improving Conversions with a Flawless UI
Visual AI for eCommerce: Improving Conversions with a Flawless UIVisual AI for eCommerce: Improving Conversions with a Flawless UI
Visual AI for eCommerce: Improving Conversions with a Flawless UI
 
A Test Automation Platform Designed for the Future
A Test Automation Platform Designed for the FutureA Test Automation Platform Designed for the Future
A Test Automation Platform Designed for the Future
 
Add AI to Your SDLC, presented by Applitools and Curiosity
Add AI to Your SDLC, presented by Applitools and CuriosityAdd AI to Your SDLC, presented by Applitools and Curiosity
Add AI to Your SDLC, presented by Applitools and Curiosity
 
The Future of AI-Based Test Automation
The Future of AI-Based Test AutomationThe Future of AI-Based Test Automation
The Future of AI-Based Test Automation
 
Test Automation at Scale: Lessons from Top-Performing Distributed Teams
Test Automation at Scale: Lessons from Top-Performing Distributed TeamsTest Automation at Scale: Lessons from Top-Performing Distributed Teams
Test Automation at Scale: Lessons from Top-Performing Distributed Teams
 
Can AI Autogenerate and Run Automated Tests?
Can AI Autogenerate and Run Automated Tests?Can AI Autogenerate and Run Automated Tests?
Can AI Autogenerate and Run Automated Tests?
 
Triple Assurance: AI-Powered Test Automation in UI Design and Functionality
Triple Assurance: AI-Powered Test Automation in UI Design and FunctionalityTriple Assurance: AI-Powered Test Automation in UI Design and Functionality
Triple Assurance: AI-Powered Test Automation in UI Design and Functionality
 
Navigating the Challenges of Testing at Scale: Lessons from Top-Performing Teams
Navigating the Challenges of Testing at Scale: Lessons from Top-Performing TeamsNavigating the Challenges of Testing at Scale: Lessons from Top-Performing Teams
Navigating the Challenges of Testing at Scale: Lessons from Top-Performing Teams
 
Introducing the Applitools Self Healing Execution Cloud.pdf
Introducing the Applitools Self Healing Execution Cloud.pdfIntroducing the Applitools Self Healing Execution Cloud.pdf
Introducing the Applitools Self Healing Execution Cloud.pdf
 
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
 
Collaborating From Design To Experience: Introducing Centra
Collaborating From Design To Experience: Introducing CentraCollaborating From Design To Experience: Introducing Centra
Collaborating From Design To Experience: Introducing Centra
 
What the QA Position Will Look Like in the Future
What the QA Position Will Look Like in the FutureWhat the QA Position Will Look Like in the Future
What the QA Position Will Look Like in the Future
 
Getting Started with Visual Testing
Getting Started with Visual TestingGetting Started with Visual Testing
Getting Started with Visual Testing
 
Workshop: Head-to-Head Web Testing: Part 1 with Cypress
Workshop: Head-to-Head Web Testing: Part 1 with CypressWorkshop: Head-to-Head Web Testing: Part 1 with Cypress
Workshop: Head-to-Head Web Testing: Part 1 with Cypress
 
From Washing Cars To Automating Test Applications
From Washing Cars To Automating Test ApplicationsFrom Washing Cars To Automating Test Applications
From Washing Cars To Automating Test Applications
 
A Holistic Approach to Testing in Continuous Delivery
A Holistic Approach to Testing in Continuous DeliveryA Holistic Approach to Testing in Continuous Delivery
A Holistic Approach to Testing in Continuous Delivery
 
AI-Powered-Cross-Browser Testing
AI-Powered-Cross-Browser TestingAI-Powered-Cross-Browser Testing
AI-Powered-Cross-Browser Testing
 
Workshop: An Introduction to API Automation with Javascript
Workshop: An Introduction to API Automation with JavascriptWorkshop: An Introduction to API Automation with Javascript
Workshop: An Introduction to API Automation with Javascript
 

Kürzlich hochgeladen

Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfVishalKumarJha10
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyAnusha Are
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...Nitya salvi
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfayushiqss
 

Kürzlich hochgeladen (20)

Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodology
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 

Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar