May 2011 Monthly Meeting Summary
AUTOMATION SCRIPTING LANGUAGES - Roundtable discussion
Potential discussion topics were:
- Perl, Ruby, VBScript, Groovy, Python, Shell, etc
- What are the strengths for each in terms of test automation usefulness?
- What are the weaknesses of each in terms of test automation usefulness?
- What factors should be considered in choosing one to work with?
- Scripting languages vs compiled languages pros and cons for test automation.
Took place on: Wed. May 11 2011 6:30 PM
We started out with a discussion of considerations for choosing a test automation scripting language (choosing a particular one for you or your team) and
came up with an initial list:
The group then discussed various test automation languages that participants had experience with and provided some comments and some pros/cons:
- preferences/concerns of automation stakeholders
- OS constraints
- AUT constraints (which may in turn constrain operating system etc)
- Documentation/community/ecosystem of the language and how stable it is and expected longevity
- What the dev team of your project is using for development may influence/constrain the automation scripting language
- Tester skills with a particular language or similar languages
- Test automation frameworks that will be used and related language constraints
- Security constraints
- Libraries available for the language
- Learning curve if it will be a new language for test automation personnel or users
- Management preferences/prejudices
- Deployment environment of the developed test automation and possible performance concerns
- Tcl - easy to learn and use scripting language often used in test harnesses and embedded systems; works well with C/C++; available for many platforms;
con comments: 'everything is a string'. Also there is the related 'Tk' graphical toolkit for Tcl. Enables graphical app development
for running on Win/Unix/Linux/Mac platforms.
- Expect - an extension of the Tcl scripting language - interactive shell for Unix/Linux platforms - oriented to backend type tests/deployments/processes
- Ruby - modern scripting language with very large ecosystem having built up around it; available for most platforms; terse; object-oriented.
- Perl - also has a very large ecosystem; huge collection of libraries available, good for text processing, multi-platform; con comments: easy to end up with cryptic code.
- Groovy - an object-oriented programming/scripting language dynamically compiled to JVM bytecode.
- VBS - VBscript scripts work out of the box on Win platforms; QTPro COTS automation tool uses VBScript as scripting language; can enable interaction with
databases and Excel, Word, etc. Con comments: awkward language, documentation is not so good, limited to Win.
- VBA - Visual Basic for Applications, an implementation of MS VB 6 and its IDE, built into most MS Office apps (accessed via Alt-F11).
Code runs within a host app (like Excel, etc) and not as standalone app.; not compatible with VB.net.
- DSL's - narrow-focus scripting languages - domain specific languages; the 'wide' definition includes SQL and Shell scripting; also includes things like Cucumber.
- Python - scripting language requiring an 'indented' format which enforces some code readability; is well-established with a large ecosystem
with many libraries and good documention having developed around it; available for most platforms; some comments that it was an awkward language in
some aspects and that it often ended up being not that readable.
it can be used, not amenable to 'packages' like some other languages.
- php - well documented and well known as a server-side scripting language, which limits its usage for test automation; some comments that it has
good reporting capabilities.
- Shell scripting - available with all Unix/Linus platforms; easy to use; commonly used in back end testing; con comments: limited to *nix platforms and scripts often end up being not very readable
- PowerShell - Microsoft scripting language for Win platforms; task automation framework - a command-line shell and scripting language
integrated with .NET Framework. Often used for system admin tasks.
- Others mentioned included Erlang, Rex, awk, sed, LISP, and some others
A survey of attendees indicated Ruby and Python were the most-used scripting languages among attendees.
NoVaTAIG Home Page