19
Automation Best Practices Leo Laskin, Sr. Solutions Architect

Automation Best Practices - CCQAcqaa.org/resources/Documents/Presentations 2018... · 2018-02-26 · Automation = Development Activity • Automation is a real development endeavor,

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Automation Best Practices - CCQAcqaa.org/resources/Documents/Presentations 2018... · 2018-02-26 · Automation = Development Activity • Automation is a real development endeavor,

A u t o m a t i o n B e s t P r a c t i c e s

L e o L a s k i n , S r . S o l u t i o n s A r c h i t e c t

Page 2: Automation Best Practices - CCQAcqaa.org/resources/Documents/Presentations 2018... · 2018-02-26 · Automation = Development Activity • Automation is a real development endeavor,

Manual Tests

© Sauce Labs, Inc. 2

No Manual Tests*

* Testing Extreme Programming by Lisa Crispin and Tip House

Page 3: Automation Best Practices - CCQAcqaa.org/resources/Documents/Presentations 2018... · 2018-02-26 · Automation = Development Activity • Automation is a real development endeavor,

Manual Tests

© Sauce Labs, Inc. 3

• Automation as Test Case Management

• Automate your bugs

Page 4: Automation Best Practices - CCQAcqaa.org/resources/Documents/Presentations 2018... · 2018-02-26 · Automation = Development Activity • Automation is a real development endeavor,

Start with a Clean System

• Having a clean system every time is paramount for reproducible results

• SaaS grid based systems can be setup to be fresh with no system cache, browser cache, cookies, etc.

© Sauce Labs, Inc. 4

Page 5: Automation Best Practices - CCQAcqaa.org/resources/Documents/Presentations 2018... · 2018-02-26 · Automation = Development Activity • Automation is a real development endeavor,

Paral le l izat ion

• Serialized tests take more time and cost more money

• 300 minute long tests can take either 5 hours or as little as 1 minute.

• Using a Selenium Grid like Sauce Labs, parallelized tests can spin up multiple browsers for you or multiple tests simultaneously

© Sauce Labs, Inc. 5

Page 6: Automation Best Practices - CCQAcqaa.org/resources/Documents/Presentations 2018... · 2018-02-26 · Automation = Development Activity • Automation is a real development endeavor,

Appium Desktop

February 29, 2016 © Sauce Labs, Inc.

• Identify what is on View

• Help Gray Box testing

6

Page 7: Automation Best Practices - CCQAcqaa.org/resources/Documents/Presentations 2018... · 2018-02-26 · Automation = Development Activity • Automation is a real development endeavor,

Selector Strategy

• What selectors do you use?

• XPath vs the rest

• Ideal Ordering• ID/Accessibility ID• Name• CSS Selector• XPath

• iOS Class Chains?

© Sauce Labs, Inc. 7

Page 8: Automation Best Practices - CCQAcqaa.org/resources/Documents/Presentations 2018... · 2018-02-26 · Automation = Development Activity • Automation is a real development endeavor,

Page Object Pattern

• Encourage reusable code throughout your test app

• Test code more organized for update if test parameters like selectors change

• Tests are more readable with natural feeling definition and variable naming

© Sauce Labs, Inc. 8

Page 9: Automation Best Practices - CCQAcqaa.org/resources/Documents/Presentations 2018... · 2018-02-26 · Automation = Development Activity • Automation is a real development endeavor,

Test Constant ly

• Don’t ever stop testing

• Having tests run on every commit is going to provide significantly higher confidence in your software

• You have unlimited amounts of time to test. Use it!

© Sauce Labs, Inc. 9

Page 10: Automation Best Practices - CCQAcqaa.org/resources/Documents/Presentations 2018... · 2018-02-26 · Automation = Development Activity • Automation is a real development endeavor,

Speed th ings up

• The average attention span of an adult is less then 5 minutes

• Try to provide results before context is switched

• Make the devs work for you not against you

© Sauce Labs, Inc. 10

Page 11: Automation Best Practices - CCQAcqaa.org/resources/Documents/Presentations 2018... · 2018-02-26 · Automation = Development Activity • Automation is a real development endeavor,

Start Smal l

• Don’t rush to automate every test case

• Identify test case priority then automate

• Don’t automate end-to-end

© Sauce Labs, Inc. 11

Page 12: Automation Best Practices - CCQAcqaa.org/resources/Documents/Presentations 2018... · 2018-02-26 · Automation = Development Activity • Automation is a real development endeavor,

Context Switching

February 29, 2016 © Sauce Labs, Inc.

• Minimize Context Switching

• Chromedriver / WebInspector

• Avoid Asynchronous Messaging

12

Page 13: Automation Best Practices - CCQAcqaa.org/resources/Documents/Presentations 2018... · 2018-02-26 · Automation = Development Activity • Automation is a real development endeavor,

Automat ion = Development Act iv i ty

• Automation is a real development endeavor, treat it as such

• Beware of Cowboy Coding / Parachute Drop Coding

• Copy/Pasting inside your code can be replaced by reusable methods

• Source control is cheap insurance

• Bad coding practices = bad testing practices (and vice versa)

© Sauce Labs, Inc. 13

Page 14: Automation Best Practices - CCQAcqaa.org/resources/Documents/Presentations 2018... · 2018-02-26 · Automation = Development Activity • Automation is a real development endeavor,

Don’t Forget to Wait !

• Web pages don’t load instantaneously, and not all elements load at the same time

• What about Thread.sleep()?

• Get rid of Implicit waits!

• Explicit waits are preferred for waiting for single elements

© Sauce Labs, Inc. 14

Page 15: Automation Best Practices - CCQAcqaa.org/resources/Documents/Presentations 2018... · 2018-02-26 · Automation = Development Activity • Automation is a real development endeavor,

Retr ies

• Not all failed tests are actual failures

• Save time by rerunning your tests

• Monitor for flaky tests

© Sauce Labs, Inc. 15

Page 16: Automation Best Practices - CCQAcqaa.org/resources/Documents/Presentations 2018... · 2018-02-26 · Automation = Development Activity • Automation is a real development endeavor,

Avoid Dependencies

• Don’t allow tests to be dependent on each other

• One test’s actions should not drive another tests assertion criteria

• Dependent tests run slower because of a need to wait for a prior test

© Sauce Labs, Inc. 16

Page 17: Automation Best Practices - CCQAcqaa.org/resources/Documents/Presentations 2018... · 2018-02-26 · Automation = Development Activity • Automation is a real development endeavor,

Prep Your Environment

• Make sure your CI rig can handle the number of jobs running on it simultaneously

• Make sure your SUT can handle the number of tests running on it simultaneously

© Sauce Labs, Inc. 17

Page 18: Automation Best Practices - CCQAcqaa.org/resources/Documents/Presentations 2018... · 2018-02-26 · Automation = Development Activity • Automation is a real development endeavor,

Collect Metr ics

• Green or Red Build

• How many tests were run in the last 24 hours?

• How many bugs do automated tests identify per release?

© Sauce Labs, Inc. 18

Page 19: Automation Best Practices - CCQAcqaa.org/resources/Documents/Presentations 2018... · 2018-02-26 · Automation = Development Activity • Automation is a real development endeavor,

test.allTheThings()