Automated hardware testing

Ensuring faster launch of performing products to the market.

Importance of Automated Hardware Testing

The benefits may be more significant if the product being developed is an embedded system such as Electric Actuator. From our experience, the most important benefits are:

  • Minimize the risk that a product with defects is sent to the market - Typically, software for embedded devices cannot be easily updated. Fixing defects can be quite expensive and may assume the withdrawal of the products from the market. Therefore, detecting possible defects in an early phase prevents launching malfunctioning products.
  • Business cost reduction - The initial investment for setting up an automated testing environment is high and it requires time and resources. But after that, testing time rapidly decreases and fewer test engineers are needed for the test execution. This ultimately results in lower costs. For embedded devices, this could be additionally beneficial. With automated testing, the EOL testing process is much shorter and more reliable.
  • Faster Time-to-market - Constant execution of test cases and Continuous integration makes it possible to detect defects in the early phases and consequently minimize product integration time.
  • Product flexibility and variety - Today's market demands a product that can be easily customized and that has a lot of varieties. This can be achieved by designing a product that is modular. Combining different modules requires integration testing to make sure that the product as a whole is error-free. It is practically impossible to conduct reliable and efficient integration testing without an automated testing system.

Scope of service

We possess know-how needed for successful setup and management of a project, for requirements and test cases definition, for technical infrastructure setup and for implementation of all parts of the Automated Testing System. Our know-how is based on two mutually correlated aspects:

  • Procedural
  • Technical

The most important part of the Procedural aspect is Requirements Management. The technical aspect presupposes that requirements are defined and clarified to the extent needed for the technical set up of a project. The most important technical parts of the project are:

  • Defining the architecture of the test system.
  • Based on the previous step, setting up the entire technical infrastructure.
  • Writing and adding into the Test Management System acceptance criteria and test cases for each requirement.
  • Creating and adding acceptance criteria and test cases for each requirement to the Test management system.
  • Implementing Hardware Abstraction Layer which has an important role in decoupling test logic from hardware (it could be required that ECU supports different industrial communication protocols).
  • Implementing all test cases defined earlier.
  • Testing pyramid - the system is designed to cover all three levels of the pyramid: unit testing, integration testing and end-to-end testing.

Tools, Frameworks and Protocols

Typically, we use well-known tools such as:

  • Jira and Bugzilla - Issue management
  • TestLink and RTM Jira plugin - Test and Requirements management
  • Jenkins - Continuous integration service
  • Python unittest and Robot Framework – Testing framework
  • CANopen, J1939, Modbus – ECU communication
  • CompactRIO, LabJack and Raspberry Pi – Testing equipment

Related

By continuing to use this site you agree to our Privacy & Cookies Policy.