The Test Automation Puzzle: A Practical Guide to How Test Automation Works
There’s some confusion about how languages, tools, connectors, and devices all fit into test automation. Here’s a quick summary of how these pieces fit. First, a generic picture:
IDE
The IDE is the application used to write automation scripts. This application uses various languages for the Engineer to code logic for the automation scripts and typically includes a way to write scripts, run tests, and view results. A common example is Selenium.
Scripting Language
Every IDE requires some kind of language to write the automation scripts. This language gives the Engineer the ability to put logic in the scripts to do various things, such as loop, go to another page, pick this button, etc. Most IDEs support multiple languages. Typically these include some kind of Native language that is used by the application and other common languages, such as Java, JavaScript, C#, Python, Ruby, PHP, and Perl.
Note: Selenium supports all of these languages.
Connector
All IDEs need to connect to a device, and this is done through a Connector. The Connector might be built into the IDE directly, or it might be an external connector that “plugs” into the IDE. IDEs that support plugin connectors typically allow third-party developers to write and sell connectors to devices.
Device Controller
This is an optional piece of hardware and/or software that allows the connector to connect to multiple devices at the same time. This allows the same test to run on multiple connected devices simultaneously. It typically handles scheduling of the devices and queuing up of test scripts that might be coming from multiple IDEs. The Device Controller could be built into the IDE, but typically is external to the IDE.
Devices
Ultimately tests are run on devices. These can be desktop applications, web browsers (Google Chrome, Microsoft Internet Explorer, or Mozilla FireFox), or applications running on mobile devices. On desktop computers, this typically breaks up to an application or a web browser. The same is true on mobile devices.
The Different Types of Mobile Applications
On mobile devices an application is typically referred to as Native, Mobile Web, or Hybrid:
- A Native application is downloaded and installed from an application store, such as Angry Birds.
- A Mobile Web application accesses a website in the native web browser of the mobile device.
- A Hybrid application is downloaded from an application store, but typically displays most of its information from web pages.
Putting All the Test Automation Pieces Together
When automating tests, each IDE and Connector has strengths and weaknesses in testing across all these permutations. For example, Selenium and its Web Connectors are strong in testing desktop web browsers.
Understanding how all the test automation pieces fit together is important, and this is an area that QualityLogic can help navigate. We have experience in working with these tools and determining which tool is a great fit for a client’s individual needs. For example, if a client has spent time developing in a specific language, then we could recommend a specific IDE and Connector that might fit their needs. The landscape is constantly changing, and we work hard to stay abreast of these changes.