We are ready to support the development of your device, taking into account the size, length, and phase of the project, with the appropriate choice of testing levels and techniques:

Manual and automated testing

  • Manual testing is ideal at the beginning of a project, with a smaller budget or low number of iterations. It provides quick feedback. 
  • Automated testing is suitable for more advanced stages, frequent repetitions, or precise timing requirements. Its main advantage is high repeatability.
 

Scripted (scenario) and exploratory testing

  • Scripted testing is suitable for stable specifications or a clear high-level understanding of device behavior. 
  • Exploratory testing is useful in all phases of the project: for dynamic specifications at the beginning of a project, for an "out-of-the-box" view and verification of limits at its end.
 

Design and creation of test suites

  • Embedded devices typically interact with the real world - we can create complex test equipment that simulates the necessary input signals and analyzes output signals even at high speeds and data volumes.
  • Test harnesses composed of mechanical, hardware, and software components are particularly suitable for verifying the output quality of a product or for verifying the interaction of a product with its environment.
Does our service portfolio sound interesting or do you have a question?
Don’t hesitate to contact us, let’s find the most suitable solution together.
 

We ensure the quality of your projects

Wherever possible and appropriate, we strive to use automation. We mainly use Python scripting - in cases where Python is not suitable (e.g., monitoring fast events), we use the LabVIEW environment in combination with specialized cRIO / sbRIO real-time hardware, which also allows implementation at the FPGA level.

We have extensive experience in designing test fixtures for the purpose of verifying specific interfaces and prescribed behavior. We can also connect these fixtures to CI/CD processes (most often Gitlab), providing support not only for manual but also automated execution.

The support and testing tools we develop usually have a graphical user interface (GUI) if needed. Testing inevitably involves the creation of reports on test results. Our automated suites produce clear HTML reports as standard. Reports can be customized to suit your needs or standards (e.g., MS Office).

Each project requires a different approach. Our team can select the suitable solution based on the size, budget, and nature of the project and recommend the appropriate procedure to achieve desired quality.

What problems can we detect?

  • Edge cases: One of the most common errors in firmware and software development are edge values of various ranges or conditions - identifying and capturing these cases during development increases the stability and predictability of the solution being developed.
  • Timing issues: The specific order or speed of events, their successful processing, and adequate handling of non-standard states can be the key to proper functionality - preventing non-standard device behavior.
  • Specification gaps: Undefined behavior can be critical. Depending on the project phase, the gap may be closed or a warning may be inserted in the user documentation - reduction in complaints.
  • Specific cases according to customer project needs, e.g.:
    • Device behavior in an electromagnetic field (controllable electromagnetic field). 
    • Automation of physical interaction (touch displays, movement of mechanical components, etc.). 
    • Recording of the test process on camera for the purposes of retrospective analysis, image identification, or OCR.
Does our service portfolio sound interesting or do you have a question?
Don’t hesitate to contact us, let’s find the most suitable solution together.
 

How exactly does our testing save you money

Early problem detection brings satisfaction with the result and savings in further development or during the device's life cycle. Below are examples of our findings and the possible impact on the customer if they had not been detected:

  • Non-standard device behavior when the button is pressed repeatedly: This would lead to premature discharge of the disposable battery device - high number of complaints or recall. 
  • Susceptibility of color detection to contamination: This would lead to incorrect identification of the processed substance - depending on the industry, it could lead to incorrect diagnosis and damage to components or human health. 
  • Susceptibility to rapid events: This would lead to incorrect actuator movement, potentially also a physical damage. 
  • Imperfect specification: The solution would fully meet the specification but would not solve the customer's problem - further development would be necessary, involving additional costs.

Frequently used tools

Over the years, our experience with test development has shaped our frequently used approaches and tools.

We increase the scalability and efficiency of testing through virtualization, specifically Docker, at both the unit and higher test levels, enabling rapid response to changing requirements. Testing at the native programming language level appropriately utilizes supporting libraries (unity, fff, ceedling, or gcov) and is automatically executed via Continuous Integration (CI) mechanisms on every commit to the version control system. More advanced techniques are used for integration testing, including virtualized bus simulators and lower-layer code emulation.

Does our service portfolio sound interesting or do you have a question?
Don’t hesitate to contact us, let’s find the most suitable solution together.

Instrumentation at the system or system integration level ensures connection to the tested device at its physical interfaces. We usually create such tests in Python with the help of appropriate libraries (unittest, pytest, and behave) and we use support devices connected to the test PC:

  • Power source: fixed and programmable laboratory power supplies 
  • Digital and analog inputs and outputs: as needed, we use logic analyzer, oscilloscope, multimeter (manually controlled or programmable as needed), controllable relays (for automation), or multifunctional IO boards with controllable digital and analog inputs and outputs (LabJack, etc.). 
  • High-speed communication: USB connection switches/interrupters, Ethernet/WiFi network elements, Bluetooth standard instrumentation.
  • Standard buses: USB converters (UART, CAN, LIN, SPI, Modbus RTU/RS485) with support for software stacks developed according to customer requirements.
  • Tools based on NI/Emerson technologies – LabVIEW environment and specific embedded target platforms of the DAQ series (sensor data acquisition) and cRIO / sbRIO + C modules (real-time measurement and control).

In addition to customer-specific instrumentation, we also develop general solutions to support testing – some software packages are already publicly available at github.com/BenderRobotics, while others include hardware tools: UART sniffer, Display sniffer, Touch Screen tester.