About Bio-Rad Laboratories
Bio-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.
Bio-Rad products that use Squish
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.
“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.
How Bio-Rad use Squish
Joshua found Squish easy to learn and chose to use JavaScript for the ImageLab and ImageLab iOS tests. (At the time of publication, Squish supports 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 edits 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, it excludes highly volatile properties, such as coordinates. The Object Map is a key factor in 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 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 the 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.
“Squish is the best GUI testing tool I’ve worked with. Its runtime performance is 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.
We'd like to thank Joshua for taking the time to share his experiences, and we look forward to seeing the awesome things Bio-Rad Laboratories does with Squish in the future.
Learn more about Squish Automated GUI Testing.
Want to try Squish for yourself?
If you're a hands-on type, we've got a no-strings-attached free trial available right here.