![Page 1: Automation Best Practices - CCQAcqaa.org/resources/Documents/Presentations 2018... · 2018-02-26 · Automation = Development Activity • Automation is a real development endeavor,](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f0347fe7e708231d4086ffe/html5/thumbnails/1.jpg)
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,](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f0347fe7e708231d4086ffe/html5/thumbnails/2.jpg)
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,](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f0347fe7e708231d4086ffe/html5/thumbnails/3.jpg)
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,](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f0347fe7e708231d4086ffe/html5/thumbnails/4.jpg)
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,](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f0347fe7e708231d4086ffe/html5/thumbnails/5.jpg)
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,](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f0347fe7e708231d4086ffe/html5/thumbnails/6.jpg)
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,](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f0347fe7e708231d4086ffe/html5/thumbnails/7.jpg)
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,](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f0347fe7e708231d4086ffe/html5/thumbnails/8.jpg)
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,](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f0347fe7e708231d4086ffe/html5/thumbnails/9.jpg)
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,](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f0347fe7e708231d4086ffe/html5/thumbnails/10.jpg)
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,](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f0347fe7e708231d4086ffe/html5/thumbnails/11.jpg)
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,](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f0347fe7e708231d4086ffe/html5/thumbnails/12.jpg)
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,](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f0347fe7e708231d4086ffe/html5/thumbnails/13.jpg)
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,](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f0347fe7e708231d4086ffe/html5/thumbnails/14.jpg)
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,](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f0347fe7e708231d4086ffe/html5/thumbnails/15.jpg)
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,](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f0347fe7e708231d4086ffe/html5/thumbnails/16.jpg)
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,](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f0347fe7e708231d4086ffe/html5/thumbnails/17.jpg)
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,](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f0347fe7e708231d4086ffe/html5/thumbnails/18.jpg)
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,](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f0347fe7e708231d4086ffe/html5/thumbnails/19.jpg)
test.allTheThings()