I've used VI Tester (and NI's Unit Tester Framework) in the past, mostly to explore what they can do and how I can use them to improve my normal workflow. I've never been in a situation where I've *needed* to use it to get the job done--until now.
I'm currently working on a motion-vision system where I'm dealing with 8 different frames of reference. Needless to say, the bookkeeping has been dizzying. Changes to one reference frame has a ripple effect through to the dependent reference frames. After spending several hours last week trying to sort out exactly how a change I had made broke the rest of my code and realizing I couldn't keep it all in my head at once, I decided to pull in VI Tester.
Over the last several days I built 50+ unit tests to test the key transformation algorithms I have been using. My code was changing a lot so I probably spent more time writing and editing my test cases as I did writing production code. With deadlines looming I had to force myself to keep the unit tests up to date instead of abandoning them. In the end I was able to get the algorithms right with at least 6 hours to spare. I can't emphasize enough how valuable it was to make a change, run the tests, and get instant feedback on what effects the change had on the rest of the system. Understanding the benefits of unit testing is one thing--experiencing the benefits of unit testing is a whole 'nother feeling.
Thank you JKI!