- Posted on: 2020-01-09
Problem: Automated Test System (ATS) development almost always starts with something small and manageable. However, as the embedded system evolves, the volume of tests increases and the ATS can quickly become even more complex than the DUT (Device Under Test). This usually results in troubleshooting time going up because new changes in the code unexpectedly affect previous features and the consequences can be very serious for project timelines.
Solution: In this 2-part blog series, we discuss several parallel ways to tackle this challenge in a LabVIEW-based ATS without scaling-up the LabVIEW team. Testing team managers need to ensure their teams can identify the root causes of errors quickly, or a lot of time and resources can be wasted troubleshooting. All the suggestions below involve improving test validation to save time exponentially as projects progress with dozens of instruments and hundreds of variables.
At Synovus, whether it is for Symplify or for client’ projects, we break up our code validation into 4 general categories:
- Unit Test
- Integration Test
- Automated Test
- Endurance Test
The main differences between each of these categories is the test coverage and duration.
Let’s define each type of test individually:
1. A unit test is ideally done before the development of new VIs (Virtual Instruments) that have known, specific functionalities (i.e. write header to file, compute a fast Fourier transform (FFT), or compare two strings for matching characters). They are very quick, typically cover 5 to 20 various inputs and run in seconds. LabVIEW’s Unit Test Framework (UTF) is one of the best tools available in this category.
2. An integration test covers a specific code module that performs more complex logic. Those are typically for VIs that run in parallel (see blog post about parallel processing) such as models, drivers, test automation and User Interface (UI). LabVIEW’s UTF can be used for these but setting up the environment to have a mockup application can be quite complicated. Using a standard platform, such as Symplify™, or a framework like DQMH and Actor Framework, to do integration tests is a big advantage in time because of the standard message format and APIs.