¡ ¡ W15 ¡ Test ¡Automation ¡ Wednesday, ¡October ¡2nd, ¡2019 ¡2:45 ¡PM ¡ ¡ ¡ ¡ ¡ What's ¡That ¡Smell? ¡Tidying ¡Up ¡Our ¡Test ¡ Code ¡ ¡ Presented ¡by: ¡ ¡ ¡ ¡ Angie ¡ ¡Jones ¡ ¡ Applitools ¡ ¡ Brought ¡to ¡you ¡by: ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ 888 -‑-‑-‑ 268 -‑-‑-‑ 8770 ¡ ·√·√ ¡904 -‑-‑-‑ 278 -‑-‑-‑ 0524 ¡-‑ ¡info@techwell.com ¡-‑ ¡http://www.starwest.techwell.com/ ¡ ¡ ¡ ¡ ¡ ¡ ¡
¡ Angie ¡ ¡Jones ¡ ¡ Angie ¡Jones ¡is ¡a ¡Senior ¡Developer ¡Advocate ¡who ¡specializes ¡in ¡test ¡automation ¡ strategies ¡and ¡techniques. ¡She ¡shares ¡her ¡wealth ¡of ¡knowledge ¡by ¡speaking ¡and ¡ teaching ¡at ¡software ¡conferences ¡all ¡over ¡the ¡world, ¡as ¡well ¡as ¡writing ¡tutorials ¡and ¡ blogs ¡on ¡angiejones.tech. ¡As ¡a ¡Master ¡Inventor, ¡Angie ¡is ¡known ¡for ¡her ¡innovative ¡ and ¡out-‑of-‑the-‑box ¡thinking ¡style ¡which ¡has ¡resulted ¡in ¡more ¡than ¡25 ¡patented ¡ inventions ¡in ¡the ¡US ¡and ¡China. ¡In ¡her ¡spare ¡time, ¡Angie ¡volunteers ¡with ¡Black ¡Girls ¡ Code ¡to ¡teach ¡coding ¡workshops ¡to ¡young ¡girls ¡in ¡an ¡effort ¡to ¡attract ¡more ¡women ¡ and ¡minorities ¡to ¡tech. ¡ ¡
What's That Smell? What's That Smell? Tidying Up Our Test Code Tidying Up Our Test Code Angie Jones Angie Jones Senior Developer Advocate Senior Developer Advocate http://angiejones.tech http://angiejones.tech Director of Test Automation University Director of Test Automation University http://TestAutomationU.com http://TestAutomationU.com Applitools, San Francisco, CA, USA Applitools, San Francisco, CA, USA @techgirl1908 @techgirl1908
@techgirl1908
a CODE SMELL CODE SMELL is an implementation that is an implementation that violates fundamental design violates fundamental design principles in a way that may principles in a way that may slow down development and slow down development and increase the risk of future issues. increase the risk of future issues.
APPLICATION APPLICATION UNDER UNDER TEST TEST @techgirl1908
JAKE'S JAKE'S CODE CODE BASE BASE @techgirl1908
LONG CLASS LONG CLASS The purpose of the class is The purpose of the class is multifold. multifold. To find anything, you must To find anything, you must scroll and scroll. scroll and scroll. @techgirl1908
ISSUES ISSUES 1. No single responsibility 1. No single responsibility 2. Hard to find things 2. Hard to find things 3. Difficult to maintain 3. Difficult to maintain @techgirl1908
SEPARATE SEPARATE CONCERNS CONCERNS @techgirl1908
LONG METHOD LONG METHOD This guy does it all! This guy does it all! But it makes it hard to know But it makes it hard to know when to call. when to call. @techgirl1908
ISSUES ISSUES 1. No single responsibility 1. No single responsibility 2. Confusing for callers 2. Confusing for callers 3. Difficult to read and understand 3. Difficult to read and understand @techgirl1908
SPLIT SPLIT METHODS METHODS @techgirl1908
DUPLICATE CODE DUPLICATE CODE When you find yourself When you find yourself coding in haste, coding in haste, it's very tempting it's very tempting to copy and paste. to copy and paste. @techgirl1908
ISSUES ISSUES 1. Any change needed has to 1. Any change needed has to take place in multiple spots take place in multiple spots 2. Can lead to other smells 2. Can lead to other smells @techgirl1908
REMOVE REMOVE DUPLICATION DUPLICATION @techgirl1908
FLAKY LOCATOR STRATEGY FLAKY LOCATOR STRATEGY At this moment, At this moment, your locators work fine. your locators work fine. But can they But can they stand the test of time? stand the test of time? @techgirl1908
ISSUES ISSUES 1. Fragility 1. Fragility 2. Unreliability 2. Unreliability @techgirl1908
STABILIZE STABILIZE LOCATORS LOCATORS @techgirl1908
INDECENT EXPOSURE INDECENT EXPOSURE � Too many see you. Too many see you. Your scope is too wide. Your scope is too wide. All who should know you All who should know you @techgirl1908
ISSUES ISSUES 1. Violates encapsulation 1. Violates encapsulation 2. Allows tests to directly access 2. Allows tests to directly access and manipulate the DOM, and manipulate the DOM, which is not their responsibility which is not their responsibility @techgirl1908
NARROW NARROW SCOPE SCOPE @techgirl1908
INEFFICIENT WAITS INEFFICIENT WAITS The speed of machine The speed of machine is faster than man is faster than man so you slow it down so you slow it down any way you can. any way you can. @techgirl1908
ISSUES ISSUES 1. Slows down runtime 1. Slows down runtime 2. Different environments may 2. Different environments may require different wait times require different wait times @techgirl1908
WAIT WAIT INTELLIGENTLY INTELLIGENTLY @techgirl1908
MULTIPLE POINTS OF FAILURE MULTIPLE POINTS OF FAILURE The framework's job The framework's job is to force state, is to force state, not to determine not to determine a test's fate. a test's fate. @techgirl1908
ISSUES ISSUES 1. Violates single responsibility 1. Violates single responsibility 2. Limits reusuability 2. Limits reusuability @techgirl1908
INCREASE INCREASE FLEXIBILITY FLEXIBILITY @techgirl1908
QUESTIONS? QUESTIONS? @techgirl1908
What's That Smell? What's That Smell? Tidying Up Our Test Code Tidying Up Our Test Code Angie Jones Angie Jones Senior Developer Advocate Senior Developer Advocate http://angiejones.tech http://angiejones.tech Director of Test Automation University Director of Test Automation University http://TestAutomationU.com http://TestAutomationU.com Applitools, San Francisco, CA, USA Applitools, San Francisco, CA, USA @techgirl1908 @techgirl1908
Recommend
More recommend