Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

Valid inputs https://blogs.msdn.microsoft.com/testing123/2009/02/06/email-address-test-cases/ [email protected] Valid email [email protected] Email contains dot in the address field [email protected] Email contains dot with subdomain [email protected] Plus sign is considered valid character [email protected] Domain is valid IP address email@[123.123.123.123] Square bracket around IP address is considered valid "email"@domain.com Quotes around email is considered valid [email protected] Digits in address are valid [email protected] Dash in domain name is valid [email protected] Underscore in the address field is valid [email protected] .name is valid Top Level Domain name [email protected] Dot in Top Level Domain name also considered valid (use co.jp as example here) [email protected] Dash in address field is valid

Slide 5

Slide 5 text

Invalid inputs https://blogs.msdn.microsoft.com/testing123/2009/02/06/email-address-test-cases/ plainaddress Missing @ sign and domain #@%^%#$@#$@#.com Garbage @domain.com Missing username Joe Smith Encoded html within email is invalid email.domain.com Missing @ email@[email protected] Two @ sign [email protected] Leading dot in address is not allowed [email protected] Trailing dot in address is not allowed [email protected] Multiple dots email@domain Missing top level domain (.com/.net/.org/etc) [email protected] Leading dash in front of domain is invalid [email protected] .web is not a valid top level domain [email protected] Invalid IP format [email protected] Multiple dot in the domain portion is invalid

Slide 6

Slide 6 text

DEV DEV DEV QA Traditional QA ● Dev team ● QA lead

Slide 7

Slide 7 text

DEV DEV DEV OFFSHORE ? ? ? ? ? ? QA Traditional QA ● Dev team ● QA lead ● Offshore

Slide 8

Slide 8 text

Stuck in a repetitive workflow Tester: tests feature, reports a defect QA Lead: validates the defect Developer: validates the defect, fixes Repeat

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

The undead legion of JS testing tools

Slide 11

Slide 11 text

The undead legion of JS testing tools

Slide 12

Slide 12 text

cypress.io https://www.cypress.io/how-it-works/

Slide 13

Slide 13 text

Install cypress npm install cypress --save-dev npx cypress open

Slide 14

Slide 14 text

Simple page load test describe('Home Page', () => { before(() => { cy.visit('http://localhost:3000' ); }); it('should load without error' , () => { cy.get('.App').should('exist'); }); });

Slide 15

Slide 15 text

Demo http://localhost:3000/

Slide 16

Slide 16 text

Dead simple testing ● No servers, drivers, or any other dependencies to install or configure ● Readable errors and stack traces ● Automatic waiting - no more async hell ● Control, stub, and test network traffic without involving your server ● Auto reload on changes ● Test responsive layouts by changing your app’s viewport size ● Active community & documentation

Slide 17

Slide 17 text

Let testers do what they do best ● Represent your site users ● Find unexpected functionality or errors ● Let machines handle the boring, repetitive stuff REGRESSION SANITY SMOKE TESTS

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

Traditional workflow

Slide 20

Slide 20 text

Traditional workflow

Slide 21

Slide 21 text

Traditional workflow (throwing it over the fence) ● What exactly is being tested? ● Where do those tests live? ● Can developers access and run tests? ● How long do test runs take? ● Context is lost by the time the defect reaches the developer

Slide 22

Slide 22 text

Shift testing left

Slide 23

Slide 23 text

Hold on... Won’t this approach take longer? How will we release on schedule?

Slide 24

Slide 24 text

Releases https://blogs.technet.microsoft.com/devops/2016/06/21/a-git-workflow-for-continuous-delivery/

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

How does this happen? ● Requirements were unclear/incorrect

Slide 27

Slide 27 text

How does this happen? ● Requirements were unclear/incorrect ● Was your work even in the testing environment to begin with?

Slide 28

Slide 28 text

How does this happen? ● Requirements were unclear/incorrect ● Was your work even in the testing environment to begin with? ● Environment disparity ○ Dependencies ○ User settings ○ Environment specific changes (production vs development)

Slide 29

Slide 29 text

How does this happen? ✓ Requirements were unclear/incorrect ✓ Was your work even in the testing environment to begin with? ☠ Environment disparity ○ Dependencies ○ User settings ○ Environment specific changes (production vs development)

Slide 30

Slide 30 text

Dive into containers ● Small & lightweight ● Easily configurable ● Open source

Slide 31

Slide 31 text

Demo http://localhost:3000/

Slide 32

Slide 32 text

Necessary changes ● Tooling ● Workflow ● Infrastructure

Slide 33

Slide 33 text

See eye to eye with your team ● Write automated tests ● Make them available to everyone ● Keep testing close to development ● Use Docker for environment parity ● Do what works for your team

Slide 34

Slide 34 text

Thank you! https://github.com/jennvoss/tales-from-the-qa-crypt @vossjenn https://www.elsevier.com/careers