# Test objects

## What is this?

Test objects (DUTs, "devices under test") are the physical items examined in
test sequences — with type, status, part/serial number, and optional barcode
scanning via chain of custody. The overview lists every test object in the
organization.

## How to use it

- **Create:** *New test object* at the top of the page. Choose a type; the
  type's properties (Settings → Test object types) are offered for filling
  in.
- **Project column:** Shows which projects the test object is actually used
  in, via its test sequences (if several: the first few, then summarized as
  "+N more", full list in the tooltip). A test object with no linked test
  sequence shows "–" here.
- **Filtering:** The dropdowns above the table let you filter by project and
  by test object type, in addition to free-text search.
- **Additional columns:** The "Columns" button opens a picker with every
  type property across all test object types in the organization. Each
  selected property becomes its own column; test objects whose type doesn't
  define it show "–" there. The selection only applies to your own account.
- **CSV/Excel import and export:** "Export" at the top of the page delivers
  every test object as CSV or Excel (.xlsx), including type and every defined
  property (type and global properties, one `property_<key>` column each).
  "Import" reads the same layout back in. The type is resolved from the
  `type` column by name comparison (case-insensitive); a type name that isn't
  found produces a warning after import, and the test object is still created
  without a type. Rows without a name are skipped. Required properties are
  not enforced on import.
- **Import preview:** After selecting a file, a preview opens first — nothing
  is saved yet. It shows, per row, whether a new test object will be created
  or an existing one updated (or the row skipped), plus any issues such as
  invalid status, unknown type, invalid property values, or an unknown ID.
  For an update, the preview additionally lists every field that will
  actually change, one by one (old value → new value, including properties)
  — fields with no change don't appear. For very large files, the preview
  shows only the first 200 rows in detail;
  the summary counts above still cover every row. Only clicking "Import
  entries" writes the data; "Cancel" discards the file without any changes.
- **Editing via export → import (no duplicates):** The exported file's first
  column is each test object's ID. Editing that exported file — changing
  values, appending new rows with the ID column left blank — and re-importing
  it updates the existing test object for rows with a known ID instead of
  creating a second one; only rows with no (or an unknown) ID create a new
  test object. This makes it possible to manage the entire dataset as a
  table. An unknown ID (e.g. from another organization, or an already-deleted
  test object) creates a new entry and is reported in the success message.
- **Change status:** On the detail page, clicking the status badge next to
  the name opens the status picker directly — no need to go through the edit
  form. For several test objects at once, use the bulk selection in the
  table.
- **Automatic status:** When an assigned test step starts, the test object
  changes to “In test”. Once all steps across its active sequences are terminal
  (passed, failed, skipped, or cancelled), it changes to “Tested”. “Archived”
  is never overwritten automatically.
- **Barcode scan / chain of custody:** See `chain-of-custody`.
- **Photos:** The detail page lets you upload up to 2 photos (PNG or JPG, up
  to 5 MB each). "Choose photo" opens a dialog with a title (required), an
  optional description, and the file picker — the upload happens once you
  confirm in the dialog. These photos automatically appear on that test
  object's page in every project report that uses it (see `berichte`).

## Common issues

- **"A test object shows no project even though it's in use."** The column
  only reads non-archived test sequences (no templates); check whether the
  sequence in question is assigned to a project.
- **"The project filter doesn't find a test object."** The filter narrows
  down to test objects with at least one active (non-deleted) test sequence
  in that project — pure templates don't count.
- **"Maximum number of photos reached."** A test object allows at most 2
  photos. Remove an existing one before uploading a new one.
- **"Only valid PNG and JPEG files are supported."** A different file format
  (e.g. PDF, HEIC) was selected — export it as PNG or JPG and upload again.
- **"Fewer test objects were created than expected on import."** Rows without
  a name are skipped — the count is shown in the message after import.
- **"A property from my import file is missing on the imported test
  object."** Either the value was invalid for the field type (e.g. text in a
  number property) — reported as "invalid property values" — or the column
  isn't a known property of that type or a global property, in which case it
  shows up under "unrecognized columns ignored".
- **"The file could not be read."** Either the file is corrupt or, despite
  the .xlsx extension, not a real Excel file, or it contains invalid
  characters (e.g. from a broken export/encoding) — in both cases nothing is
  imported.
- **"After re-importing, the test object exists twice."** Check whether the
  ID column survived in the edited file — if it was deleted or cleared, the
  import treats the row as a new test object.
- **"Editing an empty status cell reset the status."** For a row with a known
  ID, an empty status cell is left untouched; an *invalid* value (e.g. a
  typo) is also not applied but reported as "invalid status" — only a valid
  new status is actually set.

---

Source: https://www.testlabiq.com/en/help/test-objects
