Top Banner
Test Automation Oren Rubin - Testim.io
47
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Test automation   expert days

Test AutomationOren Rubin - Testim.io

Page 2: Test automation   expert days

Who am I?

Page 3: Test automation   expert days

Who are you?

● Company specialty?

o Backend? Frontend? Mobile?

● Current development?

o how frequent are the releases?

● QA or dev team?

o Write code or manage?

Page 4: Test automation   expert days

Software Architecture Class

Q: How to write large scale applications?

A: You don't, you aim for small reusable

components

Page 5: Test automation   expert days

Systems are composed of Units

Unit A Unit B Unit C

Page 6: Test automation   expert days

Units have interfaces

Browser Web Server DBClick HTTP

Page 7: Test automation   expert days

Units are composed of smaller units

Web

ServerDB

Click

Browser

HTML

JS

CSS

a.js b.js

Page 8: Test automation   expert days

Test each unit separately?

Browser Web Server DB

Test A Test B Test C

Page 9: Test automation   expert days

Test how the units interact?

Browser Web Server

Test A

DB

Page 10: Test automation   expert days

Test how the units interact?

Web Server DB

Test C

Browser

Page 11: Test automation   expert days

Test the entire flow?

Browser Web Server DBClick HTTP

Page 12: Test automation   expert days

Testing Theory - La järɡən

● Unit Tests

● Integration Tests

● End to End Tests

● Functional Tests

● Smoke Tests

● Load Tests

● Acceptance Test

Page 13: Test automation   expert days

Testing Theory - La järɡən

Page 14: Test automation   expert days

Unit vs. Integration vs. E2E

Page 15: Test automation   expert days

Testing Theory

The Assertions can differ:

Functional, UI, Timing, Memory consumption

Test starts Initial State Some StateSetup Stimuli Assertions Tear down

Page 16: Test automation   expert days

Testing Theory

Black Box

● Check against the API

● Can be done by others

White Box

● Look inside (gory details)

● Usually same person

Page 17: Test automation   expert days

Testing Metrics

Black Box

● Users stories

● Response time

● Memory consumption

(memory leaks)

White Box

● Code coverage

● Loop edge cases:

o Never go in

o Go in once

o More than once

Page 18: Test automation   expert days

Test automation

Unit Tests

Page 19: Test automation   expert days

Unit Tests.. find the diffs

Bad Code

● Long methods

● Tightly Coupled

● Unreadable

● Hard root cause

● Use Global

Good Code

● Short methods

● Loose Coupling

● Readable

● Easy bug detection

● Separation of

Concerns

Unit Tested Code

● Short methods

● Loose Coupling

● Readable

● Easy bug detection

● Separation of

Concerns

Page 20: Test automation   expert days

Unit Tests

Remember:

Units tests helps you write better code

Regression tests are a bonus!

Page 21: Test automation   expert days

Testing Theory - Unit Tests

Assertions

● State changed

● callbacks (methods) were called

Test starts Initial State Some StateSetup Stimuli Assertions Tear down

Page 22: Test automation   expert days

Testing Theory - Unit Tests

Assertions

● State changed

● callbacks (methods) were called

Test starts Initial State Some Statea =new A() a.f() assert(a.x = 5)

Page 23: Test automation   expert days

Test each unit separately?

Browser Web Server DB

Test A Test B Test C

mock http

mock timers

Page 24: Test automation   expert days

Unit Isolation

Spies

Stubs

Mocks

Page 25: Test automation   expert days

Unit Isolation - if needed

Fake ajax

Fake timers

Work asynchronously

Page 26: Test automation   expert days

Assertion Library

Page 27: Test automation   expert days

Spies

Page 28: Test automation   expert days

Spy on functions

Page 29: Test automation   expert days

Spy on functions

Page 30: Test automation   expert days

Spy on functions

Page 31: Test automation   expert days

Spy filters

Page 32: Test automation   expert days

Spy Assertions

Page 33: Test automation   expert days

Spy Assertions

Page 34: Test automation   expert days

Stubs

Page 35: Test automation   expert days

Stubs

Page 36: Test automation   expert days

Stubs

Page 37: Test automation   expert days

Mocks

Page 38: Test automation   expert days

Jasmine

● Very simple

● Great docs: http://pivotal.github.com/jasmine/

● Load is by an HTML scaffold

● Completely standalone

● Custom Matchers: expect('moshe').toBeMoshe();

● Easy to filter tests

● Nested describe blocks (each has beforeEach)

Page 39: Test automation   expert days

Jasmine

Page 40: Test automation   expert days

Jasmine

Page 41: Test automation   expert days

Jasmine

Page 42: Test automation   expert days

Sinon

Page 43: Test automation   expert days

Asynchronous - Jasmine

Page 44: Test automation   expert days

Jasmine async riddle

Page 45: Test automation   expert days

TDD

1. Write test

2. Test fails

3. Write code

4. Test passes

5. Refactor

6. Go to 2

Page 46: Test automation   expert days

Keyword driven tests e.g. cucumber

Page 47: Test automation   expert days

TDD can apply to Integration and E2E