Best practices to design and develop Web UI Automation Framework

From last few years, on and off, I am investigating to develop Web based application Web User Interface Automation framework design and development. I came up with considerations which should be in order to develop the framework based on my experience.

This is the strategy I aligned to develop the framework using Selenium webdriver, TestNG, Java and Cucumber. Test cases are written in BDD format, framework is integrated in Continuous Integration environment.

I have listed broader categories and break them into sub-section.

Organisation

  • Budget – how much organisation willing to spend on R &D and automation
  • Automation team size or there skill set to bring into organisation via new hires
  • Manual test team size and their skill set
  • Competencies of the individual team members
  • Software standing in product life cycle – Introduction, Growth, Maturity, Decline, Maintenence
  • DevOps, Developers can support in the automation process.
  • Encourages open source or licensed tools to use

Application under test

  • Technologies used – Programming languages, database etc.
  • Architecture of application – 2 tier application, 3 tier application
  • End users of applications
  • Dependencies of web application with desktop client

Framework design considerations

  • Testing approach – TDD, BDD
  • Tools selections – Selenium, Sikuli for driving thick client application
  • Test data management
  • Building libraries of common methods – Create common methods to reuse same methods for multiple test cases.
  • Usage of maven
  • Object idenrifier and object library Page object model
  • Naming conventions – Naming methods, txtbx_UserName, btn_###, lnk__###
  • Failure test cases debugging mechanism
  • CI Environment considerations
  • Maintenance overhead
  • Scalable to various web UI applications

Reporting

  • Audiences of reports – QA, Dev, PO, Stakeholders, Leadership team
  • Report format – HTML, jUnit, Excel
  • Using Cucumber reports
  • Reports delivery – Email, Web server, Dashboard

Training & Documentation

  • Traning materials to train manual testers – For the team who does not have coding experience, they can write test cases, for example, BDD format
  • Training materials for BA, Development, Customers etc such that they can run test as and when required

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s