Tuesday, March 16, 2010

'Yet Another Test Automation Framework'

When coming to analyze the status of test automation tools/frameworks I see lots of confusions. Is 'Selenium is a test automation framework?' the answer is no.

There is a tendency to mix automation connectivity tools with automation framework.

The 2 main part of an automation solution are the automation framework, response for grouping of tests, parameterization, execution and view execution results, and connector responsible to manage the application under test, AutoIt can do it for MFC UI, WatiX (Watir, Watij, Watin…) do it for Internet Explorer…

Let analyze Selenium:

Selenium is automation connector for web browser, it's an excellent tool to manage browsers and analyze browser content. It comes with a module (part of the IDE) that has framework characteristics, but I don't think you can take it seriously. Selenium developing group understand it very well, so one of the most important feature in Selenium is the ability to integrate it to any programming language (Selenium RC).

Let analyze JUnit :

JUnit is a supper simple automation framework specifically for unit testing of Java. It includes mechanisms to group tests, execute them and analyze results. It doesn't come with any connector capabilities. You can use JUnit with Selenium to get a basic automation environment for web automation.

What do I expect from my automation framework?

1. Write my tests, can be some programming language or drag and drop user interface.

2. Group my tests to logical groups like: regression, sanity…

3. Execute of tests group.

4. Let me analysis the execution results

Advance features of a framework could be:

1. Deploy my test environment and execute tests remotely.

2. Give a setup abstraction layer that will enable me to execute my test on deferent setups without the need to change my tests.

3. Test parameterization - enable the user to affect the tests to some level without change to the tests.

4. Tests configuration management.

What do I expect from my connectors?

1. To manage my application under test.

2. To integrate as simple as possible to my automation framework both in aspect of programming languages and in aspect of reporting.

Examples for automation frameworks:

  1. TestShell
  2. robotframework
  3. JSystem

Examples for connectors:

  1. Selenium
  2. Watij
  3. AutoIt
  4. SeeTest

No comments:

Post a Comment