VI Tester

You are currently browsing the archive for the VI Tester category.

We’ve just released VI Tester 1.1.1 on the VI Package Network.  This release contains a fix for a minor bug that caused the VI Tester toolbar to not show up in the LabVIEW 2009 Project Explorer window.

You can download & install this package using VI Package Manager.  Just press the “Check the Network for Available Packages” button to refresh your package list, then install the jki_labs_tool_vi_tester-1.1.1.137-1 package.

Have you ever set a reentrant VI to non-reentrant in order to facilitate debugging, only to forget to set the VI back to reentrant when you’re done?  This mistake can be very tough to debug, as the difference in behavior (between reentrancy and non-reentrancy) can be very subtle.  The same is true for other VI Settings (e.g. the subroutine Execution Priority setting).  The point is, during development you may change some VI Properties in ways that make sense for debugging, but will cause bugs in your application if left that way.  Forgetting to reset them to their correct values can cause huge headaches when your software is delivered (or worse, long after it’s delivered).

How can you ensure that important VI Settings are correct for specific VIs, prior to deployment?

That’s easy, just create a unit test (using VI Tester) that validates the required setting, as shown below:

Unit Test for Required Reentrancy

Unit Test for Required Reentrancy

The VI that performs the reentrancy check, passIfReentrant.vi (shown below), is one that you probably haven’t seen before, since it’s not delivered as part of VI Tester.

passIfReentrant.vi

passIfReentrant.vi

If we look at the block diagram, shown below, we’ll see that it’s not very complicated:

passIfReentrant.vi Block Diagram

passIfReentrant.vi Block Diagram

This VI simply checks the reentrancy and outputs a descriptive test failure message explaining the details of the failure.  When we run our unit tests, prior to building and deploying our application, VI Tester catches the problem and shows us exactly where to look.

VI Tester showing failure

VI Tester showing failure

If you’d like to add reentrancy tests to your LabVIEW application’s unit test suite, you can download passIfReentrant.vi here:

If you have ideas for other common, reusable VI Settings (or other) tests, please share your ideas by leaving us a comment below.

How to get VI Tester

VI Tester is available on the VI Package Network. If you’re already a VI Package Manager user, just click the “Check the VI Package Network for Available Packages” button in the VIPM window. VIPM will notify you that VI Tester is available, and you can simply tell VIPM to download & install it for you.

check-network-for-pkgs

Check the VI Package Network for Available Packages

If you’re not already a VI Package Manager user, what are you waiting for? VI Package Manager lets you take control of your reusable VIs, and is also the best way to put all the great tools from JKI Labs, OpenG.org, and the whole VI Package Network into your palettes!

For more information about VI Tester, visit jkisoft.com/vi-tester.

JKI is pleased to announce the release of VI Tester 1.1.  This release fixes several issues reported by the community, and also adds some significant new features:

  • A programmatic API so you can run tests and obtain their results from your own code.
VI Tester's Programmatic API

VI Tester's Programmatic API

  • Several new toolbar buttons in your LabVIEW Project window so you can access VI Tester’s most common features right from your LabVIEW projects.
VI Tester's Project Toolbar

VI Tester's Project Toolbar

  • The ability to export your test results to a text file and/or print them.

We’re excited by the community’s response to VI Tester.  We hope you find the new features in VI Tester 1.1 as useful as we do!

How to get VI Tester

VI Tester is available on the VI Package Network.  If you’re already a VI Package Manager user, just click the “Check the VI Package Network for Available Packages” button in the VIPM window.  VIPM will notify you that VI Tester is available, and you can simply tell VIPM to download & install it for you.

check-network-for-pkgs

Check the VI Package Network for Available Packages

If you’re not already a VI Package Manager user, what are you waiting for?  VI Package Manager lets you take control of your reusable VIs, and is also the best way to put all the great tools from JKI Labs, OpenG.org, and the whole VI Package Network into your palettes!

For more information about VI Tester, visit jkisoft.com/vi-tester.

NI’s New Year’s resolution to provide better support for third-party LabVIEW addons is already bearing fruit in some big ways inside JKI.

Very soon, you’ll be able to access VI Tester directly from the LabVIEW project toolbar.

By clicking on toolbar buttons you’ll be able to run all your project’s unit tests, as well as add new Test Cases and Test Suites without leaving the project window.

Here’s a short video showing a development version of the VI Tester’s LabVIEW Project Explorer toolbar in action:

All this is made possible by NI’s growing openness to providing LabVIEW developers with ways to plug into and extend LabVIEW.  We are very excited about this trend and are learning more every day about new ways to plug into LabVIEW.  Expect to see better integration with LabVIEW for more JKI tools, such as VIPM, in the near future.

If you’re going to be in the San Francisco Bay Area next Wednesday evening (February 18th, 2009 at at 6pm), then be sure to come to the LabVIEW User Group Meeting at the NI Mountain View office.

Jim Kring and Omar Mussa will be giving a demo of JKI’s new VI Tester and talking about ways to improve your software quality via unit testing

For more details, see the meeting agenda page.

We hope to see you there!

Last week, JKI released VI Tester.  To some, this might seem like an overnight development, but it is really the result of several years of internal development and eating our own dog food.  This is something that’s very important to us, and we do it with all our JKI Software products.  In fact, the path to “productization” is a natural outgrowth of our normal development process at JKI.  Generally, the process is:

  1. Identify a tool that we need for a project, but that doesn’t already exist.
  2. Create the tool that we need, so we can work better or more efficiently.
  3. Share the tool among our team and use it on multiple projects.
  4. Improve the tool based on team/user feedback.
  5. Repeat steps 3 and 4 over time.

During this process, we continuously evaluate whether the tool is a candidate for a commercial product or whether it would be more appropriate for a community release (e.g. on JKI Labs).

Now, let’s look more closely at how VI Tester evolved…

Identification:

A few years ago, we identified the need to unit test our code — primarily as a tool for ensuring quality for our JKI Software products like VIPM and EasyXML.  Our customers depend on these products to perform reliably, and they’re too complicated for us to test by hand.  We also wanted to use an xUnit framework because this software testing architecture has proven to be a powerful tool in the software engineering world.  Additionally, xUnit test frameworks have spawned Agile and Test-driven development processes that our company strives to replicate in LabVIEW.  Since xUnit frameworks are object-oriented unit test frameworks, with the release of LVOOP we saw an opportunity to create a powerful tool to make our own lives easier, and our software more robust.

Creation:

We started by reading a lot of unit testing books and articles.  We studied the xUnit architecture and some reference implementations (like PyUnit).  We thought about how the xUnit architecture would best be implemented using LabVIEW’s by-value object-oriented paradigm.  We built a prototype in LVOOP, added a basic GUI, and started using it in projects.

Sharing:

With the basic test designs in place, we had VI Tester working essentially as you see it today.  However, sharing a tool requires hammering it into a form that makes it easy for other developers to use.  We know that there is no better tool than VI Package Manager for LabVIEW tool distribution – so we built VI Tester into a package!  This allowed our whole team to easily use VI Tester on several versions of LabVIEW and across multiple projects.  In fact, we’re even using VI Tester to run unit tests on VI Tester itself, to make sure it works the way we expect it to!  (did we mention the dog food yet?)

Improvement:

Improving VI Tester means incorporating feedback from users to make the tool even better.  As long as a tool remains internal, that feedback is limited to a handful of users.  This has the positive effect of not overwhelming the development team when the product is immature.  However, we really want all of JKI’s tools to make an impact on the entire LabVIEW Ecosystem, so we are constantly looking for ways to help users help us.  In the case of VI Tester, JKI Labs is the best way to let users benefit from VI Tester, and participate in making it better.

Repeating the process:

And now, we arrive at the present day.  In reality, VI Tester has already been through many cycles of sharing / feedback / improvement thanks to our internal team and our private beta testers.  But now, by releasing VI Tester on JKI Labs, we’re making a statement:  we think VI Tester is ready to help you improve the robustness of your software; and if it’s not, we want to know how we need to improve it to make it useful to you.  And in doing this, we want to facilitate the ongoing process of bringing high-quality software engineering practices to the world of LabVIEW development.  Try out VI Tester, join the discussion on our forums, and stay tuned for more exciting blogs posts, examples, templates, and videos that will help you get the most out of VI Tester, and out of LabVIEW.

Tags:

JKI is excited to announce the JKI Labs release of VI Tester, a software test framework for LabVIEW that allows programmers to test their VIs (code) during the development process.

VI Tester

Software testing is a critical component of agile development and test driven development software engineering processes — it is also critical for validating software functionality. VI Tester is based on the industry standard xUnit software test architecture that is used in many other programming languages — this architecture is very flexible and powerful, but also very easy for beginners to learn.

For more information about VI Tester, visit jkisoft.com/vi-tester

Tags: , ,