May 2011 Monthly Meeting Summary
Topic:
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
Attendance: 14
Meeting Notes:
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:
- 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
- Cost
The group then discussed various test automation languages that participants had experience with and provided some comments and some pros/cons:
- 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.
- Javascript - well documnented; browsers have debug capabilities for it; some automation tools utilzie it; con comments: slow, constrained in where
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