Introduction to MTF
MTF overview
MTF Toolchain features
MTF Toolchain enables users to:
Access the vehicle bus systems (CAN, CAN FD, LIN, FlexRay, Ethernet).
Execute diagnostics and perform ECU measurement/calibration.
Write residual bus simulations as well as complex and time-critical test functions.
Create and manage test cases.
Execute test cases in a HIL System.
Generate logs and traces.
Post-process and analyze test cases traces.
Online visualization of Frame signals, I/Os measurement values, etc.
MTF Toolchain modules
MTF Toolchain includes:
- Libraries for:
Packet crafting and decoding: ANDi SDK.
Communication Matrix Parsing (FIBEX, ARXML, DBC, LDF, etc.): DaTaBex
Technica devices discovery and configuration: automated_hardware_configurator
Building and interpreting diagnostics jobs: DiagToolBox
- Test Automation Framework
xTR (Python Test runner)
Robot Framework
- Test Development Environment
TECHNICA-IDE
- HIL and Simulation platform
MTF Core
- MTF Analyser: Trace Analysis Tools
MTF UI (ANDi) for offline signal plotting and Wireshark Profiles generation
MTF components
As previously mentioned, the MTF (Modular Test Framework) toolchain consists of multiple aligned tools. For instance, they share the same core while providing users with various solutions or perspectives. In this section, we will dive into the different components of MTF.
You can find a brief summary of the tools available in MTF in the image below
Starting at the base we observe:
The hardware devices the user wants to use.
The shared core connecting the hardware world with the user-level world.
The APIs providing the core functionalities to any app that requires them.
The App layer that offers the user the desired functionalities.
We will explore them in depth in the following sections.
MTF.core
The mtf.core is the foundation of the MTF Toolchain. All tools depend on this library as it contains the primary business logic. It establishes a Hardware Abstraction Layer of the supported devices, ensuring consistent interfaces in the API layer for necessary operations. It also includes logging and simulation capabilities, understands multiple protocols (CAN, LIN, FlexRay, SOME/IP…) and provides unified access to any OEM required database of signals and messages.
Developed in C++, it offers:
Full support for multiple operating systems: Windows and Linux.
Fast speed, thanks to low-level integration.
The ability to expose the functionalities to other languages through APIs.
APIs
The functionalities of mtf.core are exposed to other components, or even directly to any interested user, through APIs. The existing APIs support the following languages:
C++
C
Python
MQTT (although it is not a language, but a protocol)
C# (upcoming)
With these APIs, any user or application can access MTF features. The major use cases depending on the APIs are:
Integration with other software platforms: Using C-API.
Creation of use cases (directly or through one of the Test Automation Frameworks): Using Python-API.
Visualization of information/graphics: through MQTT.
Robot
Robot Framework is an environment used to develop human-readable test cases. This is accomplished using keywords that transform the Python-API methods and functions to human-readable sentences.
This concept is particularly helpful for projects involving users with limited coding experience, as it is easy to learn.
However, there is a downside. New projects often require their specific keywords, which means extra work at the start, but it speeds up daily test case writing once they are set up.
We also provide a Test Definition Environment named TECHNICA-IDE (based on an IDE named RED Tool) for easier interaction with keywords. It provides documentation, list of keywords, drag-and-drop functionality as well as running capabilities.
xTR
If the project includes users with coding experience, they can write the test case directly in Python. This option means full API without requiring any keyword, and enables them to access more low level details.
To collect, organize and run test cases, we offer our test runner, xTR, built on the well-known unittest. xTR equips users with tools to execute test cases and configure various test benches as needed.
Note
To write your Python scripts, you can use your chosen IDE (Integrated Development Environment).
Please refer to the netAccFeatures-section section for test case examples.
MTF UI
MTF UI (MTF User Interface) is a testing and analysis tool which support various bus systems such as CAN, LIN, FlexRay and Ethernet.
User can load different types of databases (arxml, xml, dbc, ldf, db, …) and configure channels manually or using a yaml file (same format supported by MTF). Once a configuration is generated, user can do :
offline and online analysis using a customized Wireshark that takes into consideration the databases and channels for each created configuration. It gives also the possibility to apply some additional rules on the trace to be analyzed.
online analysis with a tool named System Monitor that provides a fixed view : showing the last packet for each Id
MTF UI provides also other tools :
File Converter that handle different types of trace files.
Pcap Player / Pcap Recorder to switch between offline and online analysis.
Traffic Generator / Burst sending to send traffic and do stress tests.
MTF usage examples
Hardware in the Loop Testing
Technica HIL Solutions
The I/O lines of the System Under Test (SUT) are connected to the Modular Test System (MTS) which is connected to the PC where MTF Toolchain is running using Gigabit Ethernet connection.
Modular Test Framework or MTF Toolchain executes the automated tests and simulates the rest of the network nodes.
MTF GUI (ANDi) can be connected to the MTF Core Module (IPC) in order to visualize signals, control unit memory variables, etc.
Automation with MTF Toolchain
Using xTR
Using Robotframework
Test case language |
Plain text syntax (https://robotframework.org/) |
Category |
Acceptance Testing
Recommended for Functional Testing
|
General info |
Robot is an automated test framework
which has a simple plain text syntax and
can be extended easily with Python.
|
Summary |
|