Wednesday, December 28, 2011

Test Automation Framework Design

The approach should take a path as explained below. For designing a framework, various elements need to be taken into consideration. Utilities/Components (re-usable) would be designed for the following elements that include (not limited to):

  • Actions to be performed - Identification of actions to be automated for each object of the application
  • Communicating Systems - Study of different internal systems, third-party systems and their communication methodology
  • Business Rules - List of business layers and any specific algorithm has to be studied. A separate function needs to be created for each specific algorithm.
  • Database Communication - Database validation and check point validations
  • Communication with additional automation tools - In the scenario, where we would require communicating with different automation tool. All the communication requirements needs to be identified and designed
  • Data retrieval - Retrieval of data from multiple input data stores
  • Schedulers - Functionalities related to invoking of relevant scripts based on scheduler configuration
  • Tool Extensibility - Overcoming tool limitations. Components for actions/validations for which the tool does not provide any support
  • Device Communication - Device communication and data transfer related actions/validations
  • Log - User-defined logs for analysis
  • Error Handlers - Error handlers to handle known and unknown errors and log the information
  • Custom Messages - Display of relevant defined messages
  • Result Presentation - Customized and presentable reports on completion of test execution

Test automation framework would be designed based on the listed factors, using the following guidelines.

  • Application-independent.
  • Easy to expand, maintain, and perpetuate.
  • Encapsulate the testers from the complexities of the test framework
  • Identify and abstract common functions used across multiple test scripts
  • Decouple complex business function testing from navigation, limit-testing, and other simple verification and validation activities.
  • Decouple test data from the test scripts
  • Structure scripts with minimal dependencies - Ensuring scripts executing unattended even on failures

No comments:

Post a Comment