Home:ALL Converter>Difference between automation testing tool and automation framework

Difference between automation testing tool and automation framework

Ask Time:2011-04-18T18:22:09         Author:Mugen

Json Formatter

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

However, we have White which interacts with windows applications, then Selenium 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?

Author:Mugen,eproduced under the CC 4.0 BY-SA copyright license with a link to the original source and this disclaimer.
Link to original article:https://stackoverflow.com/questions/5701463/difference-between-automation-testing-tool-and-automation-framework
oobash :

I think a Framework is similar to a class and a Tool is the object instantiated from it. \n\nI design Infrastructures capable of dispatching sessions for testing complex concurrent system test while equally applicable to dispatching individual functional or unit tests. \n\nWhile 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.\n\nSo, Frameworks describe default behaviors, and are instantiated to Tools to apply both default and customized behaviors within the intended QA environment.",
2018-08-21T21:59:28
Mugen :

I now have better working experience on this and feel I can answer this myself. Basically a framework:\n\n\nprovides a list of common library of functions, \ngenerates logs, \nprovides the use of config files to make typical setting changes,\nand separates user test data from the code so that we are not\nhardcoding the actual test code,\nserves 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,\nseparates 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.\n\n\nNow, in my original query, White was indeed a framework. \n\n\nThe 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.\nI mentioned that \n\n\n\n but they both need to be run using a testing framework\n\n\nthus 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.\n\nThe 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.\n 3. I also mentioned that \n\n\n but they both need to be run using a testing framework like NUnit or\n JUnit. So I feel they should be called tools because of this.\n\n\nHere 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?\n\nNow 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.",
2012-06-07T18:25:41
Fayis K :

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. \n\nAutomation 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.\n\n\nWe can do automation only with Tool but not possible to perform automation only with automation framework\nAutomation framework is depends on the organisation standard, and project structure, so we can create an automation framework i\nf tool itself is providing a framework (like UFT, Guage, etc.)\nWe can create new features which is not support by the tool or club multiple tools with single automation framework like Selenium and Sikuli \nAutomation Freemason will provide easy maintenance\n",
2017-02-08T07:21:03
Bek Raupov :

In a \"Tool\" you use \"Framework\" to link them up :)",
2011-04-18T20:11:33
Nanda :

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.\nNunit is another framework at a slightly higher level, you run your test cases, it just tells you whether it passed or not.\n\nAn example for a tool can be a defragmenter, it actually performs the action.\n\nJust tying to explain my point of view.. Hope it helps!",
2011-04-19T09:41:25
Anshuman :

I have been using automation testing tools and have developed automation frameworks, giving you the details based on my experience - \n\nAutomation testing Tool - \n\nIts 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. \n\nthe underlying Libraries, utilities, methods and object identifying model work as a core framework for tool, which provides features, functions and capabilities to operate it. \nBut this underlying core system is mostly propitiatory /static code and cant be changed as per custom needs.\n\nmost 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 -\n\nCreating test scripts / scenarios\n\nData input and usage of data files such as text, excel, Json, XML etc.\n\nManaging scripts execution\nwith a Basic result reporting capabilities.\n\nmost of the time the lack the customization and adaptation option - as every project or work has different need.\n\nAutomation framework - \n\nFramework 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.\n\nA 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 -\n\nmore seamless multi script and platform execution.\n\ntest data management - creation, input and reset if requires.\n\ntest orchestration - \nwhat 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.\n\nHope this give a bit more prospect to this question.",
2018-05-01T18:29:49
yy