What is Test Automation framework?

A framework is an abstraction which provide generic functions to selectively call user defined code or application under test. (ability to drive different paths of application under code by systematic code called framework).  The main difference between framework and library function is, when you use library, you call library’s code while a framework calls out your application code.

test automation framework is something that allows you to structure application-specific test  solution by writing and injecting some additional code – which acts on application under test.  Such frameworks must be in line to development methodologies followed for project management.

Test automation framework is designed to with following objectives in mind:

  • Ease to implement
  • Easy to support for any amount of tests.
  • Integrates test data in agreed formats (CSV, XLS, Database etc.)
  • Integrated reports / logs generation

For enterprise applications framework should support following objectives:

  • Cross platform support (linux, windows)
  • Parallel execution (via Selenium Grid, TestNG parallel or simply multithreaded)
  • Ability to set / get context from scripts running in parallel
  • Ability to schedule scripts with no human intervention (downtime to configure test environment / test data)
  • Ability to test Gamut of applications with same framework (WebUI, Desktop, WebServices, Mobile and Javascript applications)
  • Analysis of False negatives (and reduce overall post results analysis)