LabVIEW development spans the gamut of small measurement applications, globally-deployed test systems, mission-critical embedded applications, and everything in-between. However, most everyone in any of these fields can relate to the increased complexity of modern applications, which is compounded with a growing pressure to get to market as quickly as possible and hit impossible deadlines. For this reason, it should come as no surprise that I spend so much of my time on this blog talking about software engineering tools that can automate repetitive, tedious tasks, such as software testing and validation against requirements. I want to emphasize that these tools are only made useful when combined with planning and discipline, but when used by the right people, these tools can help get you to market sooner and with much higher quality software.
This brings me to a new software engineering tool for fellow wire-workers: The LabVIEW Plugin for Ranorex, which is designed to automate user interface testing. This product was developed by one of our alliance partners, NTESystems, who set out to create a tool that would automate the otherwise tedious task of running through operator test scripts. By leveraging a pre-existing UI testing framework from Ranorex, NTE Systems was able to ensure that the tool was both easy to use and affordable.
If you aren't familiar with automated UI testing, the fundamental concept is the same for any and all software development environments. You need to record the possible interactions with items that a user would expect to control, press, or see, and make sure that the application does exactly what it's supposed to. As an example, one of the fundamental tests for any piece of software is: does it stop when it's supposed to? This is easy enough to test on your own, but keep in mind that you need to make sure that it continues to stop appropriately as we add or change features throughout development (by the way, if you don't do this now.. you should do it from day one). Of course, user interfaces quickly become more complicated than just a stop button - they often have menus, graphs, charts, sliding panels, etc... For this reason, manually performing all of these tests on a regular basis can become very time and cost prohibative. As always, this is where automation can save time and money.
The plugin for Ranorex from NTE offers the unique advantage of tracking the location, size and other properties of front panel controls. Because of this, test scripts do not have to be modified when a button is moved or resized. The plugin is also able to verify that front panel objects have the correct output as well as properties (size, color, etc..).
For more information, visit the links below:
You can see examples of this whole process of doing capture/replay here: