Nokia India Pvt. Ltd. is a subsidiary of Nokia, a world leader in mobile hardware and software and on the convergence between the Internet and communications industries. Nokia employ over 130,000 people in about 150 countries world-wide, with around 2,500 employees in India.
Vijay V. Kalkundri, a Senior Test Engineer, was kind enough to share some of Nokia India’s Squish testing experiences with us. Vijay has been doing software testing for six years and has experience of a variety of testing tools including QTP, Selenium, and various company-specific internal testing tools, although now he uses Squish.
Nokia India’s Applications
Nokia India creates software for its own hardware products, for its own in-house use, and for external customers, and some of the software is now tested using Squish.
One of the key software products they produce is Nokia Ovi Suite (pictured below) which provides synchronization services between mobile devices (e.g., cell phones) and a personal computer.
Nokia India also produce an in-house application that runs on Ubuntu Linux.
Why Squish?
Three of Nokia India’s key software products (including Nokia Ovi Suite) are built using Qt. Vijay told us that his team needed to automate the software testing of Qt applications for several different versions of Windows and Linux.
Vijay’s team searched for a testing solution on the Internet and quickly found Squish. They liked Squish’s support for multiple standard scripting languages and found the documentation friendly and easy to use, so they decided to give Squish a try.
Squish at Nokia India
Nokia India’s Qt software needs to be tested on multiple platforms. Vijay told us that they were particularly pleased that they could use Squish to test their applications on 32- and 64-bit versions of Windows (XP, Vista, and 7), and 32- and 64-bit versions of Linux.
Although Vijay’s team were glad that Squish tests can be recorded or edited using a variety of standard scripting languages, they have chosen to use Python 2 for the more than 200 test cases they have so far developed.
One Squish feature they found particularly useful over and above the normal testing functionality they expected Squish to deliver is shared files. This is a mechanism for sharing functions across multiple test case test scripts, and has been used extensively so that reusable functions are shared rather than copied between test cases. They also make great use of the Squish Spy to examine live application objects and of Squish’s ability to read external data files for data-driven testing.
Object identification has traditionally been a problem in GUI testing, especially with older tools that identify objects using screen coordinates. Squish uses a much more robust and reliable approach identifying objects by their properties rather than their positions. Of course some objects’ properties change dynamically, but Squish can cope with this by using wildcard and regular expression pattern matching for such properties—a feature that Vijay’s team have made great use of.
The Nokia Ovi Suite synchronizes between a personal computer and a mobile device so the application must be able to be tested while a phone is connected to the computer. Vijay had no problem using Squish for testing in these use cases. In fact, Vijay told us that integrating Squish testing into their overall process was “very easy and smooth”.
One particular challenge faced by Vijay’s team was to test two separate applications—one running on Windows and the other running on Ubuntu Linux—where the first application produced data that the second application read and where both applications ran asynchronously.
Vijay managed to test the entire process using Squish. He created a shared folder that the Windows application could write to and the Ubuntu Linux application could read from. Then he created a test script for Squish for Windows that ran the Windows application and made it write its output to the shared folder. He also created a test script for Squish for Linux that ran the Ubuntu Linux application and which watched the shared folder waiting for the data to appear. Once all the data had arrived the test script got the Ubuntu Linux application to read the data and complete its part of the process. And all throughout the behaviors of both applications are verified by Squish so any regressions would immediately be detected.
Conclusion
Vijay and his team’s experience of Squish has been overwhelmingly positive. They found froglogic’s technical support to be especially helpful. Vijay told us:
“The quick and responsive support from froglogic makes using Squish a very pleasant experience.”
Nokia India has found that their use of Squish has produced shorter testing cycles and reduced their overall testing time. Using Squish has also made it possible for them to increase their test coverage and led to much greater test reliability. All this has fed back into the development processes for the software they test, and produced increased application quality.
froglogic’s team would like to thank Vijay for taking the time to share his and Nokia India’s experience with Squish, and we are looking forward to continuing this successful relationship.