Create an account

Very important

  • To access the important data of the forums, you must be active in each forum and especially in the leaks and database leaks section, send data and after sending the data and activity, data and important content will be opened and visible for you.
  • You will only see chat messages from people who are at or below your level.
  • More than 500,000 database leaks and millions of account leaks are waiting for you, so access and view with more activity.
  • Many important data are inactive and inaccessible for you, so open them with activity. (This will be done automatically)


Thread Rating:
  • 702 Vote(s) - 3.48 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Difference between automation testing tool and automation framework

#1
I am trying to understand the difference between automation frameworks and automation testing tools. According to [Test Automation][1] in wikipedia a tool is dependent on the environment whereas a framework provides the structure for running the tool.

However, we have [White][2] which interacts with windows applications, then [Selenium][3] which works on browsers for web based applications. We call both of these "frameworks" but they both need to be run using a testing framework like NUnit or JUnit. So I feel they should be called tools because of this.

How exactly do we differentiate between an automation testing tool and an automation framework?


[1]:

[To see links please register here]

[2]:

[To see links please register here]

[3]:

[To see links please register here]

Reply

#2
In a "Tool" you use "Framework" to link them up :)
Reply

#3
A tool would do the actual testing for you, given the right inputs. Whereas a framework gives you the necessary help to do the testing. Like in the case of White, it just helps you get controls and provide mouse clicks and stuff. It doesn't actually run anything on its own.
Nunit is another framework at a slightly higher level, you run your test cases, it just tells you whether it passed or not.

An example for a tool can be a defragmenter, it actually performs the action.

Just tying to explain my point of view.. Hope it helps!
Reply

#4
I now have better working experience on this and feel I can answer this myself. Basically a framework:

- provides a list of common library of functions,
- generates logs,
- provides the use of config files to make typical setting changes,
- and separates user test data from the code so that we are not
hardcoding the actual test code,
- serves as a layer between the actual testing code and the raw language code. This allows makes maintaining the actual testing code much easier and simpler so that the engineer can make changes/fixes much more efficiently,
- separates the raw code from the testing code so that if general changes occur in the product then only selected functions can be modified instead of having it affect all the tests.


Now, in my **original query**, **White was indeed a framework**.

1. The reason is that if we try to "run" White it won't do anything by itself. It is just providing us some functions that we can call and get the job done.<br><br>
2. I mentioned that

> but they both need to be run using a testing framework

thus implying that White needs to use NUnit or it is useless. I was wrong. White need NOT use a testing framework necessarily. We can also write basic procedural code that makes use of only white and nothing else and still it could do some meaninful task.

The testing framework that we added (NUnit) is only used to accomplish another separate goal (to keep track of different parts of the code (called tests) and to generate a final report of which tests passed/failed.<br><br>
3. I also mentioned that

> but they both need to be run using a testing framework like NUnit or
> JUnit. So I feel they should be called tools because of this.

Here the misconception is the idea that "if it's using a framework then it must be a tool". The correct idea is that a framework can allow us to do some task and it can still use another framework to allow us to do even more tasks. For example, I'm using White framework to automate the windows dialogs. Now I add Log4j framework to add functionality for my own logs. Next I add a unit testing framework so that we can run the code (which uses both the previous frameworks) in the form of tests and generate results. Next, I add PNUnit framework and can now run the tests in parallel. See the idea?

Now the tools - these are nothing but the utilities that we are using while using the actual code - the code that will make use of all the above frameworks to do some actual worthwhile task. It could be the IDE or the platform which allows executing the code.
Reply

#5
**Automation tool** is a platform to perform automation action on an application. Automation tool is a generic tool that can implement any types of test cases. Some automation tool will not have an option to separate test script or module or select multiple test scripts for execution.

**Automation framework** is an addon to the automation tool. Automation framework will do nothing without the automation tool which is created on top of automation tool. We are creating set of roles and standards of test execution like test cases selection, execution flow, report generation, test management tool integration etc.

- We can do automation only with Tool but not possible to perform automation only with automation framework
- Automation framework is depends on the organisation standard, and project structure, so we can create an automation framework i
f tool itself is providing a framework (like UFT, Guage, etc.)
- We can create new features which is not support by the tool or club multiple tools with single automation framework like Selenium and Sikuli
- Automation Freemason will provide easy maintenance
Reply

#6
I have been using automation testing tools and have developed automation frameworks, giving you the details based on my experience -

Automation testing Tool -

Its a utility which can have features, functions and capabilities to operate on a specific or variety of Application under test (AUT)- such as - it can search and uniquely identify AUT objects, panes, button, links etc.

the underlying Libraries, utilities, methods and object identifying model work as a core framework for tool, which provides features, functions and capabilities to operate it.
But this underlying core system is mostly propitiatory /static code and cant be changed as per custom needs.

most of the market standard tools focus on their object recognition model with a vast list technologies like .NET, JAva, Struts, etc. but may not be equally strong or capable in -

Creating test scripts / scenarios

Data input and usage of data files such as text, excel, Json, XML etc.

Managing scripts execution
with a Basic result reporting capabilities.

most of the time the lack the customization and adaptation option - as every project or work has different need.

Automation framework -

Framework are as a word means - set of rules or best practices. even though a Automated testing tool has a features and capabilities, it requires a set of rules and driver to initiate, manage and report a complete test execution.

A Framework can be a set of scripts ( libs, jars, methods etc.) which are developed with a customized and tailored client / project / work needs. It can use the core / best features and functionalities of automation tool's core functionalities which then wrapped with the framework - to create a -

more seamless multi script and platform execution.

test data management - creation, input and reset if requires.

test orchestration -
what triggers the build, where the inputs comes from, what all to execute, where to execute, how to integrate, who / how to control execution, where to reporting and whom to alert.

Hope this give a bit more prospect to this question.
Reply

#7
I think a Framework is similar to a class and a Tool is the object instantiated from it.

I design Infrastructures capable of dispatching sessions for testing complex concurrent system test while equally applicable to dispatching individual functional or unit tests.

While these are Frameworks that allow session management, dispatch (suite, scenario, task, remote, web, inline, process, thread), notification, event handling, and logging; they are also tools that provide specific action dispatch, monitor, analysis, notification, and remediation (for continued test ability) through default or customized properties.

So, Frameworks describe default behaviors, and are instantiated to Tools to apply both default and customized behaviors within the intended QA environment.
Reply

#8
**Selenium** is a tool for automating browser actions.

**Selenium Grid** is a tool for distributing tests across multiple machines running on different environments.

**Scripting language** and **testing framework** depend on the technology stack that your automation project is going to build in as per the below:

- **Java Stack**
- Java as a scripting language
- JUnit/TestNG as a testing framework
- **Php Stack**
- Php as a scripting language
- PHPUnit as a testing framework
- **Python Stack**
- Python as a scripting language
- UnitTest/PyTest as a testing framework

similar to other language stacks.

Hope, this example clears out the original question of this thread.

Thanks,

Reply



Forum Jump:


Users browsing this thread:
1 Guest(s)

©0Day  2016 - 2023 | All Rights Reserved.  Made with    for the community. Connected through