Approach to Automation Framework (Apple’s way!)

Four Values

• Visionary
• Simplicity
• Design
• Beauty

Be a visionary.

Some questions to ask might be:

  • Is there any emerging technology that will impact my testing down the road?
  • What will the finished framework look like?
  • How will an end user actually be utilizing it?
  • What do you see your business doing a year or two down the road, and is your automation framework flexible enough to handle those new needs?


Think Legos. Your solution should be simple yet powerful. It should be easy to use — like an iPhone. A good way to determine how easy your solution is would be to ask yourself, “If a bus hits me tomorrow, would my co-workers be able to look at my framework and understand it?” Be honest — if the answer is no (I’m as guilty as anyone when it comes to this) then take it as a challenge to remedy it. Start today!


For me, creating a new design always starts with me asking myself, “Who am I creating this for, and what do they need it to do?” A framework design for Excel power users would be quite different from one of which the main users are all developers, or one being used by complete technical novices.
Another important question to ask about your design is: “If I were to leave my company today, would my automation framework continue to be used?”

Other questions to ask yourself are:

  • Can elements be easily added to my framework without breaking it?
  • Do scripts created in my framework require a lot of maintenance?

If more time is spent fixing your scripts than running them, your design most likely stinks like a rotten “apple.”


Automation solutions, at their core, should be beautiful – in the same way that an iPad is beautiful–from the way it works to how it’s presented, and everything in between.

Some elements that make an automation framework “beautiful” are:

  • Well-commented code
  • Giving people “not only what they want but what they need before they know they need it”

The ultimate goal of all automation is to free QA testers to focus on more non-trivial types of testing like exploratory testing. And THAT’S beautiful!

See original post