In this episode, we’ll be test talking with dark arts wizard Paul Grossman. Paul will share his six-step process for decomposing tests that can translate into an automation framework. So get ready to discover how to create a reusable, maintainable BPT automation framework and how to avoid some classic test automation mistakes.
About Paul Grossman
Paul Grossman has been delivering hybrid Test Automation framework solutions for nearly two decades in ALM, BPT and TAO. He has beta-tested many releases of HP QTP / UFT and in 2009 was a runner-up in HP’s Test Automation White Paper competition. He is a five-time HP Discover/Mercury World Conference Speaker and has spoken at Maryland’s QAAM and Chicago’s QAI QUEST and CQAA, always with a live demo. He freely shares his real-world technical experience. His framework designs focus on speed, accuracy, and scalability. Paul is currently investigating LeanFT/UFT Pro along with Gallop's QuickLean for UFT to LeanFT script conversion.
Quotes & Insights from this Test Talk
Paul shares a six step processes for decomposing tests, that translate into an automation framework. We will talk briefly about Boris' CandyMapper app for an example. The app itself is ridiculously fictional, but I own the “promo” website and it sells absolutely nothing. It is just for testing how well UFT 14.01, and other tools, work with GoDaddy's website design tool.
The breakdown of a manual test to an automated framework consists of these two areas:
1) Launch/Login/Navigation
2) Submission/Verification Pairs
Three single functions to Launch/Login/Navigation
Launch – Handing changing URLs with new test version releases.
Login – Handling Username and passwords with User Roles
Navigation – From the Home state to get to areas of the application
Multiple Function Pairs for Submission and Validation
Every page has individual Submission and Validation functions. Objects in the repository
Page/Object Submission
+ Populate all appropriate objects.
+ Negative Test Switch Track option:
1. Happy Path: Click the submission button then, verify a success message or event
2.Switch Track: Just click the submission button. No success verification
The Page/Object Validation verify all expected errors
+ Capture reusable data
Page/Object Validation
Property verification of all page objects
Takeaways. One submission function may represent the whole page, but in large object count situations, it should represent one of a several page sections.
Internally the functions load/reference Excel data-tables for source data.
So any changes, like adding new objects on a page don't require adding new parameters to the function, only supporting code.
Simplicity Rule
Keep functions simple – Three parameters is optimal. Four is fine. Five is rare.
If you think you need six or more parameters, take a break and think more about it.
(I'll have a section about two four/five parameter functions in the Automation Guild Tips and Tricks, so this might be intentionally thin)
Utilities
Single object interaction & validation.
Objects on the fly,
Click a single named class: Click (“OK”, “Button”)
Verify a single named object
Validations should be easy. {Property} = {Value}. “Text = Paul” Verify (“Submit”, “Button”, “Enabled = False”, “Submit is disabled until required fields are populated”) Verify (“Completed”, “Text”, “Exists”, “Submit is disabled until required fields are populated”)
Takeaways: Use Plain English – assume your user references terms like “Field” “Button” and “List”.
Don't force them to use object classes terms (WebEdits, WebButtons and WebList) But if, as is often the case, the automation engineer also becomes the engineer, support the class name terms. Case statements can take multiple matches
Resources
-
- CandyMapper
- The DarkArtsWizard's Automation Sandbox.
Can you unearthy it's scary design defects?
https://CandyMapper.com
https://CandyMapperR2.com - Learn to code in 22 different langages while having fun playing games
https://codingame.com/home - Mary Jo Zarvas' QAI Quest presentation on Specflow for UI and API testing
https://qaiquest.org/2019/sessions/building-an-automation-framework-using-specflow-for-ui-and-api-testing/ - TestProject: A free all-in-one cloud-based Selenium automation testing platform
https://TestProject.io - Paul's article on Natural Language Processing and the Magic Object Model
https://blog.testproject.io/2019/10/17/natural-language-process-addon-with-magic-object-model/ - Microfocus
https://microfocus.com/en-us/home - Vivit Virtual Customer Days
https://vivit-worldwide.org/page/VCD
Connect with Paul Grossman
- Twitter: @DarkArtsWizard
- LinkedIn: pmgrossman
May I Ask You For a Favor?
Thanks again for listening to the show. If it has helped you in any way, shape or form, please share it using the social media buttons you see on the page.
Additionally, reviews for the podcast on iTunes are extremely helpful and greatly appreciated! They do matter in the rankings of the show and I read each and every one of them.
Test Talks is sponsored by the fantastic folks at Sauce Labs. Try it for free today!