| Author: |
Joe Spinozzi |
| Weblink: |
Click Here
|
| Publication |
TestStand Advanced Architecture Series |
| Date: |
2008-12-18 |
NI TestStand's step type architecture allows developers to create
innovative and unique custom step types that meet the needs of your
particular environment. This document explains custom step type
development and provides a set of best practices to help you get started
making better custom step types faster. |
|
 |
Overview
An on-going challenge of today’s test world is ensuring that test systems are
designed correctly and that they continue to function properly. While developing
a test system, engineers create test procedures and set measurement limits to
correctly detect defective products. Once the test methods have been determined,
the test system is developed to confirm that the software and hardware performs
the tasks correctly. When the system is completed and implemented, changes might
arise in the company, product, or test environment that must be incorporated
into the test system. Verification and Validation (V&V) processes formally
ensure that the test system is developed correctly and accomplishes its intended
purpose.
V&V primarily affects businesses governed by ISO or FDA procedures or good
practices that manufacture products such as pharmaceuticals or medical devices,
or products for automotive and aeronautical use. Since such products are highly
critical to health and safety, these industries are subject to formal oversight,
including well-defined V&V processes. Some companies voluntarily invest in
formal V&V processes to reduce costs, or for competitive reasons. If a company’s
competitiveness is based on quality or reliability, investing in a rigorous V&V
process might pay for itself.
NI TestStand software helps engineers develop test systems by providing tools
to create test sequences that call code modules written in many different
programming languages. TestStand also helps test engineers manage test limits
and configuration. TestStand components are critical to any V&V effort.
This document discusses V&V as it applies to test systems developed with
TestStand. First, this document introduces the concepts of verification,
validation, and impact analysis as applied to TestStand. Second, this document
examines the components of TestStand and describes some best practices to help
streamline V&V for each component. Finally, this document discusses some general
purpose best practices for V&V.
Validation and Verification
The
governing principles of V&V are well-defined for many industries, and are
outlined by disciplines like Good Manufacturing Practices (GMP) or by regulation
such as ISO-9000, FDA's 21 CFR, or IEEE Standards. Each V&V system is similar
but uses slightly different terminology to explain the generic requirements of
the two processes. Specific requirements are usually not defined. This
document explores V&V processes for automated test systems.
Learning the difference between verification and validation is an important
step in preparing to develop and certify a test system.
Verification is one or many formal audits to determine if a
test system is built according to specifications provided in a design, drawing,
statement of work, or other similar guideline. Verification allows an auditor to
test at the end of a development phase if the item being produced meets the
conditions imposed on it. Verification tests can be performed at several
milestones of a product development, and can be performed on assemblies and
subassemblies.
Validation is the process to evaluate if the system, having
already passed verification to one or more specifications throughout several
phases, is complete and now accomplishes its purpose or intent. Validation might
include a formal pass/fail test procedure, or it might be a subjective form of a
usability study performed with customers, users, or patients. Validation often
involves some subjective requirements, such as rejects defective products or has
an easy to use interface.
To illustrate the difference between verification and validation, suppose a
test department builds a simple test fixture for measuring the electrical
current consumption of a unit under test (UUT). The test system must compare the
current of the UUT current against test limits that require the UUT to consume
less than 500mA. If the system performs the measurement correctly with
acceptable repeatability, the system passes verification.
If a known failure mode exists in manufacturing, such as a diode installed in
reverse, that causes some parts of the circuit not to activate, the current
consumption might be excessively low, perhaps 150mA. Unfortunately, in
this example the UUTs pass testing on the verified fixture, and might be
shipped. Though the test system was built correctly according to the
specifications, the system does not serve the purpose it was commissioned to
fulfill and therefore fails validation. The specification and the test system
must be modified to incorporate an upper and a lower measurement limit, such as
400-500mA.
Performing system verification can be relatively easy based on a well-written
specification, drawing, or statement of work, and test methods can be very
straightforward so that defects are easy to find, but validation can be more
challenging, as shown by the previous example.
In comparison, validation requirements that relate specifically to medical
devices in the FDA’s 21 CFR are vague, including phrases that specify that a
medical device must be validated to conform to user needs and intended uses, so
the quality system manager must define the needs and oversee validation testing.
Selecting the validation methods is not necessarily very easy. For test systems,
one method of defining a validation test might be as simple as keeping track of
known failure modes, and having good and bad product samples available to help
ensure the system detects known defects. Another method might use a trusted
manual test procedure or include another automated system to validate the
results of the new test system.
Some instances of validation can be extraordinarily thorough, such as those
that surround the aeronautics, pharmaceuticals, and medical device industries,
because the validation processes involve extremes cases of safety, quality, or
cost. A thorough system validation might take weeks or months to define and
perform. For example, if a test system uses a switch matrix in a 16x32
configuration, the test engineer might be required to test every possible
combination of connections using a continuity tester and ensure that no
restricted connections are ever made. Another example might consist of
validating a communication system in which every possible command and sequence
of commands must be tested and validated. Although such validation processes
might seem extreme, is imperative that no damage, injury, or incorrect results
arise under any circumstance.
No written procedures exist to explain what must be verified or validated, or
to define how testing must be accomplished. The same is true for reverification
or revalidation if changes are made to a test system. The organization must
appoint someone to make recommendations about test procedures and review and
approve them. Although each company must decide and define how to implement
design controls and change management in their products and test systems, this
document provides some ideas and best practices to help with defining such
policies.
Impact Analysis
Impact analysis concerns the understanding of consequences of any change that
alters the way in which a test system performs, such as replacing a failing
instrument or modifying an algorithm or setting. Changes might be due to
maintenance or repair, or trying to improve or correct the performance of the
system. A change might cause the system to operate improperly in a noticeable or
even unnoticeable manner, and might result in product recalls, production
stoppages, or other interference with business. A change might also cause
the system operate properly but affect the outcome or test results, and cause
incorrect decisions about tested products.
The cost of a missed change or an incorrect validation can be extremely
large, such as shipping bad products to customers. In some industries, shipments
of faulty products can result in a product recall. The FDA reserves the right to
take regulatory action. One company reported that they take extra measures
beyond typical V&V processes because even a tiny reduction in stock price might
cost them billions of dollars.
Assume that every change you make will require revalidation. No simple rule
exists for deciding what you can change, how you can make changes, or what
effects will arise from any change. Understanding the components of TestStand
and the impact of changes made to the components can help make changes easier to
plan for, easier to recognize, and can minimize the scope and difficulty of
testing the changes.
Components of TestStand
TestStand is not a traditional programming language, and therefore possesses
distinct advantages that facilitate V&V processes. TestStand includes a very
modular architecture made up of basic building blocks that allow your test
system to operate however you want. The following sections describe the
TestStand components as methods to facilitate design decisions to better manage
V&V processes.
Sequences & Steps
The most fundamental part of a TestStand system is a sequence. In a sequence,
you define the overall behavior of the system and the settings and limits
applied to each test. Even in the simplest sequence, much of the work involves
creating and configuring steps in the sequence. You can add sequencing actions,
such as looping properties, preconditions, and other configurations that
directly influence which steps execute and in what order. For each step, you can
select a number of settings, such as how to record results, what expressions to
evaluate, or what actions to take if the step fails. Both built-in and
custom steps have options that determine if a step passes or fails, and if the
UUT passes or fails. Some steps determine failure from measurement limits that
you set. For example, for the numeric limit step you can require that a
measurement be within a range.
Changes to the steps in a TestStand sequence fundamentally modify how a test
system operates. Changes include renaming steps, modifying the preconditions
that allow a step to run, or even deleting an obsolete step. Such changes might
be critical and require revalidation of the system. Other changes might be
somewhat minimal and require minimal validation. Each step has some amount of
interaction with the steps before and after it. Determining the effect of a
change requires a specific study of how those steps work together and where each
on gets information it needs to run.
The following are some best practices to help you make changes to sequence
files easier to recognize, understand, and test:
- Use Case steps instead of preconditions. Case steps are more visible in
the TestStand environment, are expandable, and can be modified to run
different options and include more than one step per condition.
Preconditions are partially hidden and can only determine whether to run a
single step.
- Use Switch Steps instead of using the switching options for a step.
Switch steps are more visible in a sequence and make the sequence somewhat
more self-documenting. The switching options for a step are convenient but
are partially hidden and can only be set to start and stop in relation to a
single step. Create written procedures and TestStand sequences that relate
to each other directly. For example, if a written procedure requires that
you first power on a device and wait for the device to boot, create two
instruction steps in the procedure to correlate to two steps in TestStand.
- Name every step carefully as a form of documentation within the
sequence. The step name should describe what the step does and why it
performs an action, if possible. For example, instead of naming a step Wait,
name the step Wait 2 second for system to boot. If the name requires more
information, use the Description property of the step to specify additional
details.
- Organize the sequence so that the Main sequence is composed almost
entirely of Sequence Call steps. Each Sequence Call step can relate to a
single test that can be given a name, such as Power and Current Test
sequence call followed by the Audio Test sequence call, and so on for each
test in the test procedure. This helps logically organize the sequence
similar to how someone might describe the sequence verbally, saying “The
procedure starts by doing a power and current test, then it does an audio
test.”
- Create each subsequence to stand alone and prepare itself to run,
including the setup of all instruments and devices for the subsequence. For
example, if you make changes to the Audio Test, you might want to run the
subsequence over and over before validation to ensure it runs properly and
to avoid having to run the entire sequence. The test subsequence should
power on the device, set up all necessary switches or instruments, and
execute with noticeably good or bad feedback from the Audio Test results. If
each test runs independently, testing and retesting can become much easier.
- Avoid using the PreviousStep property and use variables instead. The
PreviousStep propertyrefers dynamically at runtime to the step that last ran
and that retrieves information from the step. The source of the information
can change if you rearrange or delete steps, thus resulting in erroneous or
missing data. Set a variable using a the PostExpression property of the
step and retrieve data from the variable as needed.
Code Modules
TestStand does not control instrumentation and automation hardware directly,
but instead calls code modules to perform these tasks. TestStand relies heavily
on the design and performance of code modules to operate properly. Code modules
are small pieces of code written in a number of languages, including LabVIEW,
C++, C#, and Microsoft Visual Basic. A test system developer or coworker might
create many of the code modules, while a third party might create other code
modules. Additionally, many steps included with TestStand are actually code
modules written in C and compiled into DLLs. Changing a code module used in a
test sequence fundamentally affects how TestStand performs actions, but this can
be advantageous because TestStand is a fixed and compiled application that
cannot be changed, and only the code modules TestStand executes can be
modified. Because a code module must only receive data from TestStand, execute a
specific action, and return data to TestStand, you can limit testing caused by a
code module change.
The following are some best practices for using code modules:
- Plan ahead when you select parameter inputs and outputs for the code
dodule. Do not rearrange or rename inputs unless no alternative exists. For
example, when you select a connector pane for a LabVIEW code module, select
a connector pane with extra inputs and avoid changing the connector pane.
Any of these actions might cause the step to not execute in TestStand or
might cause the step to execute but return results improperly or out of
order.
- Design or implement code module testers that can test all possible
inputs and record the output values for each set of inputs. This can help
prove that a single code module executes correctly as it did before the
change, but you must still prove that new software works with TestStand, and
that it executes and returns correct results. If the code module passes
module testing and can still be called from TestStand, no change or effect
to the TestStand sequence exists, and you can limit testing.
- Avoid using the Sequence Context to create variables or to set the value
of variables dynamically. Instead, pass values from code modules to
TestStand using the Module Adapter inputs and outputs to make setting
variables more obvious to see and easy to track.This also allows you to use
the Test Expression button to verify the datatype or expression and ensure
that the data type or expression evaluates correctlyto help avoid setting
the wrong variable with the wrong data.
Data Types and Process Models
Data types and process models other characteristic components of TestStand
that you can change to allow advanced programmers to fine tune performance and
behavior. Many users employ these components in the background without realizing
they have done so, and without modifying the components intentionally. For
example, aata types, such as strings, numbers, and arrays, define the
characteristics of the variables and constants throughout the system. A process
model is a sequence within a sequence that is generally unseen and that governs
how your sequence starts, executes, stops, and reports data, and manages batch
or parallel testing. You can modify data types and process models, but leaving
them in their default state guarantees smooth V&V processes. You might think of
these components as being similar to the registry within Microsoft Windows, in
which developers must thoroughly understand changes to avoid unintended changes
to the system. Although some changes to the process model might seem relatively
simple, the complexity of the changes can affect multiple components in the
system, thus making V&V processes difficult to plan.
The following are some best practices for using data types and process
models:
- Treat changes to the process model as seriously as you do when you make
a registry change or large operation system change. Consider creating a
backup of the sequence file and process model files, and perhaps a backup
image of the entire hard drive if you might undo the change.
- When you create a new data type or process model, copy an existing
version and modify it in minimal increments, changing some features and
testing it at each phase to ensure that the change occurs as you expected
without many unexpected consequences.
TestStand Settings
TestStand includes several options and preferences that are accessible from
the menus in the TestStand Sequence Editor or in a TestStand User
Interface. Some settings can be easily changed without noticeable effects in
operation, and cause no noticeable change in managed or verified source code
files or sequence files. However, changes to other settings might significantly
affect the behavior of the system. One such setting is the database schema that
handles how data is stored in a database and how TestStand modifies measurements
in preparation for storage. Another setting, which is as simple as enabling a
checkbox, can disable all reporting and result in serious implications to any
test system. You must be aware of what the TestStand settings accomplish, how
you intend to use the settings and how the settings affect your test system.
The following are some best practices for using the options and preferences
in TestStand:
- Review all available settings early and decide how to set them before
the system is verified. If possible, include the settings you want to use in
an early draft of the specification, so that the settings are less likely to
change later. For example, decide what kind of reports you require and
select the appropriate settings. Try to imagine any changes that you might
have to make to those settings over time. If not conceived early, a change
to a setting would require revalidation. Pay attention to database and
report settings, especially as they relate to hard drive space or database
size. A system that tests 1000 units per day and generates a report for each
unit can become difficult to browse or might fill up the hard drive on the
computer. If a customer must retain all reports but does not use them on a
daily basis, keep the size of the reports as small as possible. If the
customer uses reports only in case of failure on a test run, but never uses
the reports again, you can instruct TestStand to reuse the filename and
overwrite old reports.
- You can keep the size of reports as small as possible by turning off
reporting for as many steps as possible. If reporting is activated for
every step, test with just five key measurements might include over one
thousand entries in the database and reports. Many steps, such as DoWhile,
End, For, and Break, do not provide much useful information in databases or
reports. Steps inside loops write multiple records for each loop. In fact,
many consumers of the reports and database, such as operators and quality
engineers, will likely complain that the reports are very difficult if they
only want to find what failed on a single test run.
- Use search directories to eliminate the possibility of finding code in
an unexpected place.
- Use relative search paths to locate code if you decide to move or
rearrange folders and files.
Factors External to TestStand
TestStand developers must realize that numerous factors can affect a test
system, including a company's network configuration, the computer name, or the
correct date and time. Some of the most obvious but often overlooked
settings are those for instruments and the computer itself. Instrument dettings
might include NI-DAQmx settings made in NI Measurement & Automation Explorer
(MAX), or GPIB and COM settings for a device. In Windows, a setting might
include a network drive mapping, or a screen saver setting. Changes to such
settings can interrupt or modify the operation of a test system and might be
partially undetectable, such as an instrument failing to take valid data, or a
motor failing to move. Such settings can be numerous and validation tests
difficult to design.
The following are some best practices for handling external factors:
- If you can set any options dynamically, consider using the Setup step
group in a sequence to ensure the are set correctly.
- If possible, query each setting to ensure that the setting was accepted
by the instrument or program. If the setting cannot be queried, find where
the setting is stored and read it from a text, INI, or XML file. The system
can verify and even record the state of items outside of TestStand and keep
them under control.
- Find files that contain the settings and manage them using source code
control (SCC).
The preceding sections provided a brief introduction to the TestStand
components that you can change, resulting in reverification or revalidation of a
test system. Use discipline and best practices to plan ahead and save
unnecessary delay and cost.
General Best Practices for Validation and Verification
This section describes more general best practices that do not apply to any
specific TestStand component. Although not completely exhaustive, the
ideas below can help educate and remind you of items you might want to manage
while developing any test system subject to V&V processes.
Documenting and Gathering Requirements
V&V processes center on well-defined specifications. Validation can also be
subject to some objective issues, such as loosely defined needs of the
marketplace or the end user. The most important first step for any test system
is to research and document a good working specification and V&V requirements.
Testing can be difficult if specifications are not specific or leave room for
interpretation or ambiguities. Testing can be halted if the auditor or observer
finds a setting undocumented or implemented incorrectly. A well-written
specification implemented with care and attention can help ensure a painless V&V
process.
Verification requires one or more design documents or drawings to govern what
the system must accomplish. The documents and drawings might cover a component,
assembly, or entire system. The specification and test methodology for
verification must be a throughly detailed document with as much information as
necessary to create a correct test system.
Thoroughly record any changes to specifications, whether devised by a
customer, by engineers, or as the result of learning and discovery. Employ a
change order process to record the change and the reason, and to make the change
official. Verification only passes if you match instructions, settings, and test
limits to the correct document. You might also need to record less obvious
changes, such as Quality Manager agrees to reduce measurement resolution to
reduce test time, which will increase throughput for Manufacturing Manager. You
might want to debate, test, agree, and release such a change under a change
process to ensure all the changes are correctly implemented.
Designing a validation test might seem like more of an art than a science,
and although wisdom and experience might seem like the only tools for validation
design, remember that gathering requirements can be revealing and
useful. Techniques might include reviewing past performance of other test
fixtures or products, interviewing operators and their supervisors, and studying
past measurement data. One company that commonly outsources to test system
integrators performs a detailed review of each project to find ways to make the
next project better, and places those ideas in a checklist for the next project.
For example, if you manufacture a product as simple as a cooling fan for
electronic enclosures,compliance requirements might include electrical emissions
testing and describe the way the emissions must be tested. For the same
product, an audible fan noise might not exist in the verification spec or test
procedure. Assume that a study of product warranty data reveals that
annoyed customers historically return noisy fans that are too loud in home or
office devices, and the noisy fans came in batches. Perhaps the test system
could perform random sampling of audio information to save test time while still
inspecting the noise level of the batch. If you treat requirements gathering
with meticulous notes, fact-checking, and curiosity, you can help design a
system that can more easily pass validation.
Take Advantage of TestStand Modularity
When a system is modular, the system consists of several modules or
components. In comparison to manufacturing, many parts or subcomponents have
their own V&V processes so that the product can pass through validation with
reduced effort and can incorporate changes and improvements. For example, in
automobiles if an airbag module changes, the module can undergo some electrical
tests to ensure that the next version of the airbag is functionally equivalent
to the previously validated airbag version. Some non-electrical requirements,
such as speed of deployment, size, shape, and other factors, can all be verified
outside the automobile. Because the airbag has no effect, for example, on
fuel modules and exhaust systems, no reason exists to reverify or revalidate the
subsystems to approve the vehicle design as a whole. A revalidation plan might
have the fuel system, braking systems, and others marked as no change but the
airbag, the steering system, and bumper sensors might be marked for a simplified
V&V process. You can apply such modularity to test systems.
In the case of TestStand, you can plan code modules to be modular in order to
streamline V&V processes. For example, if you have successfully validated
version 2.5 of a sequence and version 1.8 of code moduels, consider the effort
involved to change a measurement limit. If the limit is hard coded in LabVIEW,
you must modify and recompile the code, which requires you to revalidate the new
code, version 1.9. If you can make the changes outside of the source code, such
as loading limits from a text file, then the validations of versions 1.8 and 2.5
of your code and sequence file are still current. You might still need to check
that the new text file is correct, and that it is compatible with the code and
sequence.
Limit the Interaction between Two Subsystems
One strategy to limit the amount of revalidation is to include distinct lines
of independence in your system. For example, if you have a medical device
with firmware loaded to it, followed by a number of functional tests, and a
customer-specific file is loaded into memory and tested before shipping, you can
create three separate test systems that perform these tasks independently of
each other. Changes to one test station do not affect the others. In the same
way you can create a single test system that performs the work of all three,
each of which can be written into its own sequence file and the sequence files
can be called one after the other from a master sequence file. IN this way
you can easily show which files are modified so you need to only reverify the
files that change.
Some dependence still exists in the independent systems, whether they are
separate stations or not. The functional test is dependent on the previous
firmware test working properly. Although they are interdependent, you want to
limit the effects of a change. In this example, the next step can continue as
long as the previous step worked properly. You can use a step in the functional
test to verify that the loaded firmware is compatible. Because only one output
value affects the next step, validation can be minimized to ensure that the
requirement is met after any changes.
For example, if test 3 is an Audio Test that includes a volume test at Low,
Medium, and High volume and test 4 performs audio quality testing that must be
done at Medium volume, you might want to power off and reset the audio volume
between tests and design test 4 to set itself to medium volume. If test 4 is now
completely independent on the design and settings of test 3, a change to test 3
can result in a revalidation limited to only that single test.
Manage Files Using Source Code Control Tools
Computer-based test systems consist of numerous files. Source code,
sequences, configuration files, and others change as a test system is developed
or modified.
Code Modules are stored in a format specific to their platform. For
example, LabVIEW generates Virtual Instrument files called VIs (.vi and control
and type Definition files (.ctl), and organizes those files in LabVIEW project
files (.lvproj). An application written using applications such as C or Visual
Basic includes a number of source files and compiled DLLs.
TestStand sequence files (.seq) are created within TestStand and you must
manage them in the same way you manage software code modules. You can also
store sequence files in binary, text, or XML formats. You can organize sequence
files along with your code modules.
Generally, the system designer creates, saves, and manages the files
mentioned in this. One best practice is to consolidate the files in a single
location, or use a management tool, such as a LabVIEW project or TestStand
workspace, to reference them in various locations. You must track and
archive all files in support of a given specification.
Files other than those deliberately modified and collected might include .ini
files, XML files, or binary files that TestStand or another third-party
application stores. For example, TestStand and LabVIEW both use .ini files to
store some configurations and settings made within options and menus. MAX uses a
file designed to be hidden from tampering but that contains information about
your instruments configuration. You can export most settings from MAX to a
backup file (.mce) for users to manage. Most applications, drivers, or other
tools generate files, and changes to any of these files can affect V&V
processes.
The industry-accepted method for monitoring, controlling, and storing such
files is Source Code Control (SCC) programs such Subversion (SVN), Perforce, and
Microsoft Visual Source Safe. Many of these programs are designed to conform to
the Microsoft SCC interface and you can use them from within TestStand or
LabVIEW. In some cases, you cannot modify a file without taking temporary
ownership of it and documenting your changes in order to save them. These
programs can often tell you which files changed as well as analyze the old and
new files to highlight the changes to help simplify verification. For example,
Figures 1 and 2 shows an example in Subversion, in which only one file,
MySettings.xml, has changed, and in that file only the Sheath Flow value was
modified. Using these programs helps simplify validation because the
programs can demonstrate that all the other settings have not changed.

Figure 1. Subversion Showing Only One Modified File in the Working
Directory

Figure 2. Comparison in Subversion Showing Only One Modified Value in the
File
Verify Files at Run Time
After you complete and verify system configuration, you must archive the
system in such a way that you can recall and restore, verify, and distribute the
system as the proper specification. For example, if the MySettings.xml file from
the previous example passes V&V along with a certain TestStand sequence file,
you can commit both files to source code control and submit the files to an
independent document control entity. You might want to self-audit to
verify that the modules are running on the system. Allow TestStand to verify
everything possible during testing, and even record confirmation of dependant
files alongside the test results in a database or report. For example, you might
accomplish this using a step that can read the checksum of a file and ensure
that it never changes, as shown in Figure 3. Using file utilities and storing
the results along with other test data creates a complete record that verified
files are being used correctly.

Figure 3. Third-Party Add-on for TestStand to Verify and Record the
Checksum at Run Time
Hardware Configuration Management
The requirements for hardware configuration management are no different than
for software. You must properly select, install, program, and configure the
instruments not only for the system but also for each individual test. For
example, a digital multimeter (DMM) or oscilloscope has several options to
configure for proper communication and signal acquisition that must be verified
and validated at the completion of a test system and for changes to hardware in
the future.
Use software to help validate hardware at run time. By reading and storing
settings or other factors at run time you can have confidence that items that
must be validated along with the software are set and operating as intended. For
example, your TestStand steps might query the calibration dates of an instrument
to ensure the calibration is current, and can verify the model number and serial
number of the instrument attached to a COM port to ensure that the instrument
has not been replaced. Designing your test sequence and even purchasing
instruments with these considerations in mind can help simplify V&V processes.
If you anticipate that your hardware must change, you must consider the
change in a V&V process. If an instrument fails and another instrument of the
same make and model is inserted, think about what you must accomplish to verify
if it operates correctly, and design a test to ensure that the change was
successful. If the instrument settings are critical from one instrument to the
next, create a sequence of steps that automatically sets up the instrument when
the sequence detects a new instrument. If another make or model is required, but
the application is hard-coded to use that instrument, then you cannot avoid
revalidation. Using Interchangeable Virtual Instrument (IVI) drivers and
interfaces for instrument setup can help simplify the transition between two
instruments of the same make or model, or between two instruments of dissimilar
make or model.
Understand and Manage Software Upgrades
A common question concerns whether you can upgrade LabVIEW, TestStand, or any
other program to take advantage of new features as they become available. Making
such a software upgrade is always a trigger for a revalidation and
reverification. Treat a potential upgrade as a return on investment (ROI)
exercise. For example, to gain a streamlined development interface, you
might want to upgrade during development but not after the system is
deployed. However, as is the case with recent TestStand upgrades, improved
execution speed can result in shorter test time, greater throughput, and greater
revenue. In both cases, the cost of revalidation is the deciding factor,
but the cost can also provide a positive ROI and is therefore worth the expense
and effort.
Another easily overlooked upgrade is Microsoft Update, which can help to
protect a system from attacks and help repair bugs discovered in Windows. By
default, Microsoft Update occurs automatically on most computers. Other
companies, such as Sun, Apple, and Adobe, also use web-based automatic updates.
Unequivocally, you must disable any automatic changes and upgrades on any system
that is subject to V&V processes. The changes that automatic updates make are
not predictable and can have unknown effects on operation and settings. Some
updates automatically reboot your computer after installing.
Your Internet Technology (IT, MIS, or other) department might have a general
policy that they control computers within the company, including using virus
scanning software, setting security policies like screen savers, and installing
patches and upgrades as needed. A manufacturing department must work with the IT
Department to help manage TestStand systems by leaving them absolutely
untouched. These computers are not typically used to read email or browse the
Internet and are therefore less susceptible to worms or viruses. You must decide
what items specifically affect your computers, but your needs might contrast
with IT policy, such as removing virus scanners, turning off screen savers, and
exempting from company-wide upgrades or patches.
Conclusion
Significant challenges can exist with V&V processes for any test system. The
best practices described in this document are just a sample of the methodology
that simplifies V&V processes. You must tailor any of these practices to your
company, because some might with your particular environment. Enforcing some or
all of these disciplines can improve your product quality, yield, rework
efforts, and many other tangible and intangible considerations in order to
reduce costs, turn greater profit, and please customers.
About the Author
Joe Spinozzi – Cyth Systems,
Inc.
Joe Spinozzi is the co-founder and Director of Operations at Cyth Systems.
Equipped with 12 years of experience helping dozens of companies develop
products and test systems, he now leads a team of engineers to plan, architect,
and complete projects across many industries. Operating from San Diego,
California, Cyth Systems is responsible for test systems large and small
currently operating in the United States, Europe, and Mexico.
Next Steps
Contact Cyth Systems to learn how Circaflex can speed up your product development
Cyth Whitepaper - Best Practices for Custom Step Type Development
(RelatedLinks)
(RelatedLinks)
(RelatedLinks)
(RelatedLinks)
(RelatedLinks)
(RelatedLinks)
(RelatedLinks)
See More
(RelatedLinks)
|