How do I import and use functional test data?

Support / How do I import and use functional test data?

Data Streams is an Instrumental product that allows data from non-Instrumental stations (such as functional testers) to appear in the Instrumental Web App. Having all your product data in one easily accessible place enables better, faster failure analysis. Empowered by Instrumental’s Discover AI, you can use this data to understand relationships between the parametric or pass/fail test results and defects that are visible in the unit photos in order to find issues’ root causes.

Table of Contents

Using Data Streams

Data Streams usage 1
Data Streams usage 2

Data Streams enables several main functions in the Instrumental Web App:

  • View all data for each unit in one place, with photos and functional test data side-by-side
  • Quickly filter units by test results, for example to find all units that failed a certain test
  • Put data into context by seeing where a unit’s test results fall in the broader distribution
  • Easily correlate test data against other tests using Data Correlations or see which visual defects have the strongest relationship with functional test failures with Visual Correlations
  • Export the data to CSV for additional analysis

Uploading Data Streams Manually

Data Streams can be easily uploaded into your Instrumental project without writing any integrations through a file uploader. This means as long as the test data is serialized and it can be transformed to fit our template, it can be uploaded into Instrumental.

Access this importer through the Manage project menu in the upper right of the application:

Download the Inspection template first to ensure your file matches the format our system expects prior to uploading. This has sample columns and data that should be overwritten before you upload your file.

Expected columns and file format

The uploader will accept CSVs or folders containing multiple CSVs. Only the following columns are required for a successful upload:

  • Serial
  • Timestamp
  • Station Name
  • At least 1 test name, e.g. “Battery Voltage”

Example CSV content:

Serial,Timestamp,Station Name,Overall Result
SN12345,2022-09-28 16:22:00,Camera Functional Test,PASS

The following are columns that are optional, but will make the data more useful or precise in Instrumental:

  • Time Zone
    • Specify the precise time zone for the inspection Timestamp using the proper TZ identifier, e.g. “Asia/Shanghai”
    • Instrumental will use your browser’s local time zone if none is provided
  • [Test name] lower limit
    • For numeric tests, this is the lower threshold for passing values
  • [Test name] upper limit
    • For numeric tests, this is the upper threshold for passing values
  • [Test name] passing values
    • For string (categorical) or boolean (true/false) tests, results with these values will be considered passing. Multiple values can be provided
  • [Test name] failing values
    • For string (categorical) tests, results with these values will be considered failing

Example CSV content:

Serial,Timestamp,Time Zone,Station Name,Overall Result,Overall Result passing values,Overall Result failing values,Front Camera Image Quality [%],Front Camera Image Quality [%] lower limit
SN12345,2022-09-28 16:22:00,America/Los_Angeles,Camera Functional Test,PASS,PASS,FAIL,99.88,95

The data type of the test will be automatically determined based on what the importer finds in the uploaded CSV.

Once your file is selected, Instrumental will start the upload process and display the results of your upload:

If there are any duplicates or errors with your upload, they will be shown in this confirmation screen. Inspections that were uploaded successfully, but need to be removed from the project can be deleted using the Delete Data menu option from the Units screen:

Integrating with Data Streams

The most fundamental requirement for Data Streams is that there must be a way to get functional test data off of the test stations and sent over the internet to Instrumental. If that capability does not currently exist, often Instrumental can assist, along with the factory, to figure out how to make it happen. If there is a way for engineers to access functional test data from outside of the factory, e.g. from an SFTP drive, that is a great starting point.

There are two ways the data can usually be extracted. With Self-Service Data Streams, Instrumental customers can push data to Instrumental by sending it to a specific URL, described below. With Managed Data Streams, the data is placed somewhere internet-accessible and encrypted (e.g. an SFTP server rather than an FTP server) and Instrumental pulls the data from there.

The Self-Service option requires Instrumental customers’ test engineering teams to be able to spend about 1 day programming an integration. The Managed option requires coordination with Instrumental to ensure Instrumental’s systems know where to find the data and how to interpret it.

If you would like to enable Instrumental Data Streams, speak with your Instrumental representative.

To learn how to write a Self-Service Data Streams software integration, visit the Data Streams API Documentation.

FAQ

What kind of data can I send?
Data Streams currently accepts strings, numbers, Booleans, and dates. If you want to upload images or video, see How do I import and use images and video?

Should I just upload pass/fail data, or should I upload parametric data too?
Having parametric data side-by-side with the photos enables advanced analysis features such as visualizing the distribution of the data and using Instrumental’s Discover AI to show the relationships between photographic and parametric data. Additionally, especially in NPI, a pass/fail result based on a continuous variable is determined based on fairly arbitrary limits. If those limits are wrong (in either direction), Instrumental enables customers to experiment with different limits to see how that changes the relationships between visual and functional data.

Can Instrumental send data back to me?
The Instrumental Web App allows exporting individual photos and videos as well as bulk exporting non-visual data to CSV. Additionally, Instrumental has a Read API which allows accessing non-visual data in CSV or JSON format. Instrumental does not currently have an API to download images or videos. Apart from email alerts, there is also not currently a way for Instrumental to push data to a non-Instrumental system, such as webhooks.

How is this different from MES integration?
Instrumental offers integrations with Manufacturing Execution Systems where Instrumental stations send pass/fail results of Instrumental Intercept tests to the shop floor in order to prevent failed units from continuing down the assembly line. In contrast, Data Streams is about sending data from non-Instrumental stations to the Instrumental cloud.
Data Streams vs. other types of integrations

How can I prevent Instrumental from accessing certain particularly proprietary data?
Instrumental generally does not connect to internal customer/factory systems to obtain Data Streams data: either customers send only the required data via the Self-Service API, or only the required data is placed on a specific (e.g. SFTP) drive for Instrumental to import. As a result, if needed, customers can filter out certain data to avoid sending it to Instrumental. However, usually Instrumental already has photos of the units, and often those photos are considered more sensitive than parametric data.