“We have finished automating one of our two Qt applications. The application’s testing regime is now 80% automated” noted Mike MacKenzie after having used Squish at Language Weaver.
Recently we had the pleasure to interview Mike MacKenzie and David McBride, two quality assurance engineers at Language Weaver after having successfully introduced automated GUI testing using Squish. They are currently using Squish to test the graphical user interface for the standalone application, as well as for an ancillary program called the Dictionary Tool.
After having evaluated Squish, it was not hard to learn how to use Squish. “The included documentation was reasonably thorough. The response times to e-mail support queries were usually less than a day and you could tell that the technical questions were being handled by people with a deep knowledge of the product and technology they were working with. Also the current development team seems very interested in expanding Squish’s capabilities.”
Flexibility is the Key
A crucial feature to do real-world GUI testing is the availability of a powerful scripting language for test scripts such as Python, which has been chosen by Language Weaver’s QA team.
“Without the ability to interact with the Qt API at a scripting level the system would not be nearly as useful. There are some aspects of testing that just cannot be accomplished through the IDE alone, and some that are actually more awkward to do through a GUI than through scripting,” confirmed Mike. Besides the ability to interact with the Qt API through Squish’s scripting languages one of Squish’s most useful features to him is the Squish Spy. “Especially the ability to change the state of your application and then look at the application in its new state.”
Before they started using Squish, GUI testing for Language Weaver’s Qt applications was done by hand. “Not fun. Very time consuming” Mike said. Now, after having introduced Squish, 80% of the application’s test regime is automated. “About half of the tests that could not be automated were testing activities that use the native windows GUI API, avoiding Qt. The remainder could not be automated either due to limitations of Squish or my current Python programming ability.” Mike added. “With its current capabilities Squish will be saving our testing team great amounts of time over our old ‘by hand’ methods, allow us to expand test coverage significantly, and automate and integrate large portions of our GUI testing with the lower level unit and regression testing.”
The Future Challenge
After having created the tests and running them locally, the next step ahead for Language Weaver’s QA team is to automate running the tests. “The next stage of test development calls for regular, automated test runs. Another challenge we will have is to integrate the Python scripts with our Perl-based test harness. We will probably do this using system calls.” concluded Mike.
Language Weaver, Inc., a California based company, produces software for translating human languages using statistical techniques. The software is available as a standalone application, or as a server based application. The software includes both end user applications, as well as a C++ API and a web services API for use in integrating Language Weaver’s technology into other applications and work-flow systems.