Upload
sauce-labs
View
3.489
Download
0
Embed Size (px)
Citation preview
A u t o m a t io n Be s t P ra c t i c e s
L e o L a s k i n , T e s t A u t o m a t i o n A d v i s o r
About Me
• Twitter: @LeoLaskin
• LinkedIn: https://www.linkedin.com/in/llaskin
• Email: [email protected]
© Sauce Labs, Inc. 2
Manual Tests
© Sauce Labs, Inc. 3
No Manual Tests*
*TestingExtremeProgramming byLisaCrispin andTipHouse
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
Paralle li zatio n
• Serialized tests take more time and cost more money
• Using a Selenium Grid like Sauce Labs, parallelized tests can spin up multiple browsers for you or multiple tests simultaneously
• 300 minute long tests can take either 5 hours or as little as 1 minute.
© Sauce Labs, Inc. 5
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 a natural feeling Domain-Specific Language(DSL)
© Sauce Labs, Inc. 6
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. 7
Speed things 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. 8
Start Small
• Don’t rush to automate every test case
• Identify test case priority then automate
• Don’t automate end-to-end
• Divide and conquer
© Sauce Labs, Inc. 9
Divide your testing up
• By Functional Area
• By hosted server
• By backend server
© Sauce Labs, Inc. 10
Automation = Development Activ ity
• Automation is a real development endeavor, treat it as such
• Beware of Cowboy 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. 11
Don’t Forget to Wait!
• Web pages don’t load instantaneously, and not all elements load at the same time
• A lot of your failures in finding an element will disappear if you use these
• Explicit or fluent waits are preferred for waiting for single elements
• Implicit waits for waiting all the time
• Fluent waits for elements that can take variable time to load
© Sauce Labs, Inc. 12
Avoid Dependencies
• Don’t allow tests to be dependent on each other
• One test’s actions should not drive another tests assertion criteria
© Sauce Labs, Inc. 13
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. 14
Collect Metr ics
• How long did test runs take before and after automation?
• How many bugs do automated tests identify per release?
• How many engineers does a test run require?
© Sauce Labs, Inc. 15