Podcast

176: How to Decompose Tests for Automation with Paul Grossman

By Test Guild
  • Share:
Join the Guild for FREE
Paul Grossman BPT


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

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.

SponsoredBySauceLabs

Test Talks is sponsored by the fantastic folks at Sauce Labs. Try it for free today!

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

267: Smart Test Execution with Eran Sher

Posted on 08/25/2019

Do you run an entire automation test for every build because you don’t ...

266: Automation Journey and TestNG with Rex Jones II

Posted on 08/18/2019

In this episode we’ll test talk with Rex Jones about his automation testing ...

265: TestProject a Community Testing Platform with Mark Kardashov

Posted on 08/11/2019

In this episode, we’ll talk to Mark Kardashov, CEO and Co-Founder of TestProject, ...