How to select the suitable test automation framework for your project

Test automation framework evaluation criteria

Osanda Deshan Nimalarathna
Test Automation Master
4 min readMay 18, 2019

--

What is a Framework?

Web Application Frameworks

A framework is considered to be a combination of set protocols, rules, standards and guidelines that can be incorporated or followed as a whole so as to leverage the benefits of the scaffolding provided by the Framework.

What is a Test Automation Framework?

Structure of a Test Automation Framework

A “Test Automation Framework” is scaffolding that is laid to provide an execution environment for the automation test scripts. The framework provides the user with various benefits that help them to develop, execute and report the automation test scripts efficiently. It is more like a system that has created specifically to automate our tests.

In a very simple language, we can say that a framework is a constructive blend of various guidelines, coding standards, concepts, processes, practices, project hierarchies, modularity, reporting mechanism, test data injections etc. to pillar automation testing. Thus, the user can follow these guidelines while automating application to take advantages of various productive results.

The advantages can be in different forms like the ease of scripting, scalability, modularity, understandability, process definition, re-usability, cost, maintenance etc. Thus, to be able to grab these benefits, developers are advised to use one or more of the Test Automation Framework.

Moreover, the need of a single and standard Test Automation Framework arises when you have a bunch of developers working on the different modules of the same application and when we want to avoid situations where each of the developers implements his/her approach towards automation.

Note: Take a note that a testing framework is always application independent that is it can be used with any application irrespective of the complications (like Technology stack, architecture etc.) of the application under test. The framework should be scalable and maintainable.

Advantages of a Test Automation Framework

  1. Reusability of code
  2. Maximum coverage
  3. Recovery scenario
  4. Low-cost maintenance
  5. Minimal manual intervention
  6. Easy Reporting

Key points to think before select a Test Automation Framework

  1. Encapsulation from Complexities
    Test engineers are encapsulated from the complexities and critical aspects of the code.
    Engineers are exposed only to the implemented libraries and tests are executed by just invoking the libraries.
  2. Scripts and Data Separation
    Automation test scripts separated from input data store (for example: XML, Excel files).
    No modification is required to the test scripts.
    Only input data gets manipulated for testing with multiple input values.
  3. Maximize Re-Usability
    Establish the developed libraries across the organization/project team/product team, i.e. publish the library and provide access rights Utilities/components shared across the team.
    Usage of available libraries.
    Minimized effort for repeated regression cycles.
  4. Communication with Additional Automation Tools
    We might need to communicate with different automation tools. All the communication requirements needs to be identified and designed.
  5. Ability to automate scenarios which is based on multiple logics
    Assume your application is so dynamic and your test scenarios are based on multiple logics (Ex:- If you clicks on A then B should be visible, else C should be visible), then you will need to develop your automation suite with your own methods which satisfy your requirement. To develop your own methods, the framework should provide its base methods.
  6. Data Retrieval
    Retrieval of data from multiple input data stores.
  7. CI Readiness
    Functionalities related to invoking of relevant scripts based on scheduler configuration.
  8. Tool Extensibility
    Overcoming tool limitations. Components for actions/validations for which the tool does not provide any support.
    Complete support for application’s new enhancements and existing features modification. For example, re-usable library could be created only for the enhancement features with a minimal effort.
    Standard process for script versioning.
    Role based access rights. For example access rights such as addition, modification and deletion of scripts.
    Project based —utility/component access.
  9. Logs
    User-defined logs for analysis error handlers.
  10. Error Handlers
    Handle known and unknown errors and log the information.
  11. Custom Messages for the Report
    Display of relevant defined messages.
  12. Re-run for Failures
    There might be random failures in your test suite because of the network latency, service failures, timeouts…. etc. So you might need to re-run for the failed scenarios. In such cases, you will need this feature.
  13. Parallel Execution
    If you are having a large test suite which will need hours to run, then you will need parallel execution to save your time and increase the ROI.
  14. Result Presentation
    Customized and presentable reports on completion of test execution.

Comparison of Web UI Automation Frameworks

Comparison of Web UI Automation Frameworks

Comparison of API Automation Frameworks

Comparison of API Automation Frameworks

Happy Automation!

--

--

Osanda Deshan Nimalarathna
Test Automation Master

Founder of MaxSoft | RPA Solution Architect | Open-source Contributor | Automation Framework Developer | Technical Specialist