Bio-Rad Laboratories

Bio-Rad LaboratoriesBio-Rad Laboratories is a multinational manufacturer and distributor of life science research and clinical diagnostic products. The company has over 5,000 employees with offices throughout the world. Bio-Rad develops software to support the hardware it manufactures.

We were pleased to discuss Bio-Rad’s use of Squish with Joshua Niehus, a Bio-Rad SQA Engineer for UI Automation. Joshua has been working in the software testing field for eight years and has experience with several GUI testing tools in addition to Squish, including QA Wizard Pro, Ranorex, and Silk Test.

 

Background

Bio-Rad has a large portfolio of products, however Joshua is particularly concerned with two: Image Lab and ImageLab iOS. The Image Lab software controls Bio-Rad’s hardware imaging systems and analyses protein/DNA gels images. The soon to be released ImageLab iOS software is a lightweight client (use client or application, not both), used by University biology department, research institutions and pharmaceutical companies to control instruments and process images. These applications are used by University biology departments, research institutions, and pharmaceutical companies.

Image Lab is built using Qt 4, and is tested and deployed on Windows and Mac OS X. The ImageLab iOS prototype is written using the native iOS GUI libraries and is tested and deployed on iOS systems.

 

Why Squish?

The requirement to perform GUI testing for ImageLab software arose in 2009. At the time Joshua hadn’t used, or even heard of, Squish, but had tried implementing QA Wizard Pro. After encountering a number of problems, he requested advice from developers, and Squish was suggested. Here is what Joshua discovered:

“After about a week we had scripts up and running that extensively exercised the features we were interested in (tables, views, and object hierarchies), and saw a major performance boost in runtime for the test cases. For our purposes, it was clear that Squish was superior to QA Wizard Pro in all aspects.”

Joshua and Bio-Rad’s decision to select Squish came down to several factors. In addition to the aforementioned items, Squish’s Mac OS X support, robust application object introspection and support for standard scripting languages over forcing testers to learn and use proprietary languages for testing triumphed.

 

Squish in Use

Joshua found Squish easy to learn, and chose to use JavaScript for the ImageLab and ImageLab iOS tests. (At the time of publication, Squish supported scripting languages include: JavaScript, Perl, Python 2, Ruby and Tcl.)

Joshua mentioned the Squish feature he enjoys most is the application object introspection support, meaning the ability to traverse application object hierarchies and inspect all object properties. He also mentioned preferring the Squish test suite structure and particularly the Squish one test suite per folder approach.

Bio-Rad rarely uses the Squish Spy; however regularly edit the Object Map to simplify and clarify objects captured by Squish. The Squish Object Map provides a means for identifying application objects by their properties— however excludes highly volatiles properties, such as coordinates. The Object Map is a key factor why Squish tests are so reliable and robust when confronted by application changes.

One thing that did take some time and effort to create was a Squish-based testing framework for the Image Lab and ImageLab iOS products. With the framework in place, Bio-Rad has experienced a significant reduction in duplicate test code and an increased flexibility to handle application changes gracefully.

The Bio-Rad testing process begins with an engineer writing the outline of a test case for a particular feature. This outline is often developed further and placed in context of an actual workflow; after which the outline is written as a Squish test case.

Since beginning to use Squish, Joshua has created 60 test cases for the applications, with more than 10,000 combined verification points. Although Squish supports screenshot verifications—entire windows, individual widgets, etc.—, none are used in the ImageLab and ImageLab iOS tests.

Bio-Rad uses the Jenkins integration with Squish to trigger and schedule test executions as well as for reporting. They have incorporated a series of Python scripts, providing three report types based on Squish test suites and test cases: regression testing, smoke testing, and random testing.

 

Conclusion

Joshua has clearly had a very successful experience using Squish. He told us:

“Squish is the best GUI testing tool I’ve worked with. Its runtime performance it great and it has a low ‘barrier’ to get up and running. It feels much more lightweight and flexible than any other tool I’ve used (that includes Ranorex, Silk, and QA Wizard Pro).”

Additionally, Joshua found using Squish resulted in shorter testing cycles, increased testing coverage and improved test reliability; all of which significantly contributed to the improved application quality.

froglogic’s team would like to thank Joshua for taking time to share his experiences with Squish, and we look forward to a continued successful relationship.