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