This is a talk from the Triangle Test Automation Users Group in the Raleigh-Durham, NC area. It discusses the reasons page objects are so popular and dives into common pitfalls of using them and how to avoid them.
2. WHO AM I?
• DAWN CODE, INDESCRIBABLE!
• COMP SCI DEGREE FROM CLEMSON, 2001
• TESTER -> PROGRAMMER -> TESTER
• LIFELONG LEARNER
• MACHINE LEARNER
• CURRENTLY QUALITY ENGINEERING MANAGER AT IBM WATSON HEALTH CLINICAL
DEVELOPMENT
3. IS TEST AUTOMATION CODE REAL CODE?
SHOULD AUTOMATION CODE BE WRITTEN FOLLOWING THE SAME CONVENTIONS
AS PRODUCTION DEVELOPERS WRITING PRODUCTION CODE?
5. DOES THAT MEAN WE SHOULD IGNORE
ALL CLEAN CODING PRACTICES?
OF COURSE NOT
6. THE HAPPY MEDIUM
• NO NEED TO GET INTO DEEP, TECHNICAL, PROGRAMMING CONCEPTS
• ALSO WE DO NOT WANT TO END UP WITH A PROJECT THAT COSTS MORE TO
MAINTAIN THAN IT IS WORTH TO EXECUTE
• TESTERS CAN START WITH SOME SMALL PRACTICES THAT WORK TOWARD
CLEAN, MAINTAINABLE, CODE
7. MAKE CODE HUMAN READABLE
• CODE IS READ BY HUMANS, NOT
COMPUTERS
• CODE SHOULD CONVEY INTENT
• NAMES SHOULD BE MEANINGFUL
• NAMES SHOULD NOT BE ABBREVIATED
11. DRY: DON’T REPEAT YOURSELF
• IF YOU FIND THAT YOU DO IT MORE THAN ONCE, PULL IT OUT INTO A SEPARATE
METHOD
• IF YOU FIND THAT YOU ARE COPYING AND PASTING CODE, CONSIDER HOW
MUCH YOU ARE REPEATING YOURSELF
12. WHAT HAPPENS THE NEXT TIME WE WANT TO
OPEN THAT EXCEL SPREADSHEET?
13.
14. WHAT ABOUT WHEN ANOTHER USER
NEEDS TO PUT THEIR OWN PATH IN?
15.
16. WHAT ABOUT WHEN WE NEED TO INSERT
A SHEET AS SHEET 1 IN THESE EXCEL
FILES?
26. WHY USE PAGE OBJECTS?
• CLEAN SEPARATION BETWEEN TEST CODE AND PAGE SPECIFIC CODE
• REDUCE/REMOVE DUPLICATION FOR OBJECT LOCATION AND INTERACTION
• TEST STEPS HAVE MORE MEANINGFUL NAMES ABOUT WHAT THE TEST IS
ACTUALLY DOING
27. PAGE OBJECT PATTERNS
• GROWING PAGE OBJECTS ORGANICALLY
• SELF-VERIFICATION
• BUILT-IN NAVIGATION
• NO ASSERTIONS IN THE PAGE OBJECT
• PRIVATE ELEMENTS IN PAGE OBJECT
28. WHAT GOES WRONG?
• MOST OF IT IS ABOUT SCALING
• FIRST: WHAT IS A “PAGE”, ANYWAY?
• LARGE AND COMPLEX PAGE OBJECTS
• NAVIGATION?
• IT DOES REQUIRE HIGHER LEVEL OF PROGRAMMING KNOWLEDGE
• PAGE OBJECT REPO IS HIGHLY APPLICATION SPECIFIC