In today’s world of complex embedded systems, testing is no longer a monolithic, one-size-fits-all process. Each functionality—be it a communication protocol, an interface, or a user interaction—needs its own unique validation method. That’s why TestBot, our automated embedded testing framework, is built around a flexible, powerful, and scalable concept: Agents.
Agents are the functional modules of TestBot that enable targeted, modular test execution. Whether it’s simulating a communication protocol, reading a sensor, digitizing an HMI screen, or controlling a robotic manipulator, there’s a dedicated TestBot agent designed for the job.
In this article, we’ll explore:
- What agents are in TestBot
- How they function
- How they can be deployed
- A complete list of currently supported agents and their roles
- When and why to use different agents in your test setup
What Are Agents in TestBot?
In the TestBot architecture, an agent is a functional unit responsible for executing a specific type of testing or interacting with a particular part of the system under test.
Agents are modular, optional, and can be software-only or hardware-software hybrids, depending on the functionality they provide. This design allows TestBot to scale effortlessly across industries and testing scenarios—from IoT devices and automotive ECUs to industrial automation controllers.
Key Characteristics of TestBot Agents:
- Function-Specific: Each agent is tailored to a specific protocol or interface.
- Pluggable: Agents can be optionally added or removed as needed.
- Distributed: They can run on different machines, embedded boards, or microcontrollers across the test network.
- Extensible: New agents can be developed and integrated as needed.
This agent-based testing tool architecture ensures that test cases are modular, reusable, and closely aligned with the system functionalities being validated.
How Do Agents Work?
In a typical TestBot test case development flow:
- The TestBot server coordinates test execution and delegates function-specific tasks to the appropriate agents.
- Each agent connects to the Device Under Test (DUT) or a simulated system via physical or virtual interfaces.
- The agent executes actions, monitors responses, and sends results back to the server.
For example, if a test case involves reading a CAN message, the CAN Agent will handle that interaction. Similarly, if you’re validating an HMI display, the HMI Digitizer Agent takes care of screen capture and UI interpretation.
Types of Agents in TestBot
Protocol Communication Agents
These agents simulate or monitor standard communication protocols used in industrial, automotive, and IoT systems.
- Modbus Server Agent: Simulates a Modbus server/slave device, typically used in industrial PLC testing.
- Modbus Client Agent: Simulates a Modbus master/client for reading and writing data from actual devices.
- BACNet Server Agent: Emulates a BACNet server for BMS (Building Management System) device testing.
- BACNet Client Agent: Acts as a BACNet client to communicate with real-world BACNet devices.
- EtherNet/IP Server Agent: Emulates an EtherNet/IP adapter (I/O device) for industrial automation systems.
- EtherNet/IP Client Agent: Operates as a scanner/controller to send and receive EtherNet/IP data.
- UDS Server Agent: Implements a UDS (Unified Diagnostic Services) server for testing ECUs.
- UDS Client Agent: Simulates an automotive diagnostic tester tool using UDS protocol.
- J1939 Server Agent: Mimics a J1939 node in vehicle networks for heavy-duty applications.
- J1939 Client Agent: Acts as a controller sending/receiving J1939 messages to test ECUs.
- OBD-II Server Agent: Simulates an OBD-II compliant ECU for automotive diagnostics.
- OBD-II Client Agent: Simulates a scan tool that reads DTCs and live data from OBD systems.
Interface-Level Agents
These agents deal with physical and logical interfaces on the DUT.
- CAN Agent: Interfaces with CAN networks to send, receive, and analyze CAN messages.
- Ethernet Interface Agent: Manages data transmission and reception over Ethernet layers for network testing.
- I2C Interface Agent: Interacts with I2C peripherals, ideal for sensor communication validation.
- SPI Interface Agent: Enables SPI-based testing for high-speed, low-level peripheral interfaces.
- Analog/Digital IO Agent: Controls and monitors GPIOs and analog pins, useful in hardware signal validation.
Automotive-Specific Agents
Specialized agents for automotive embedded systems and ECU testing.
- Automotive Interface Agent: A combined agent for simulating ignition, battery conditions, LIN communication, and more.
Mechanical and UI Interaction Agents
These agents go beyond electronics, extending testing to physical interactions and user interfaces.
- SCARA Manipulator Agent: Controls robotic arms (like SCARA manipulators) for pressing buttons, flipping switches, etc., in EOL (End-of-Line) setups.
- HMI Digitizer Agent: Captures and processes the screen output of HMIs to validate graphical outputs and UI responses.
Why Agents Matter in TestBot
TestBot's agent-based architecture is what makes it adaptable and powerful. Here’s why agents are integral to the platform:
- Targeted Testing: Each agent focuses on a single domain, making test cases more modular and easier to manage.
- Ease of Scaling: Need to test 10 ECUs with CAN? Just spin up more CAN agents across machines.
- Cost Efficiency: Mix software-only agents with low-cost hardware agents to balance capability and budget.
- Test Parallelism: Distributed agents mean multiple tests can run simultaneously across various DUTs.
- Future-Proofing: Need support for a new protocol or sensor? Just build a new agent without disrupting the core framework.
Real-World Use Case Example
A typical automotive ECU test setup using TestBot might include:
- UDS Client Agent to send diagnostic commands
- CAN Agent to monitor bus activity
- Analog/Digital IO Agent to simulate sensor inputs
- SCARA Manipulator Agent to control mechanical switches on the ECU housing
- HMI Digitizer Agent to verify display outputs on cluster units
This modular agent-based setup allows automated, comprehensive, and repeatable testing under real-world conditions.
Conclusion
In the world of embedded systems, no two products are exactly alike. That’s why TestBot’s agent-centric design is so powerful—it allows you to tailor your test architecture to the product you're building.
Whether you're testing an industrial controller with Modbus, an automotive ECU with CAN and UDS, or a smart sensor over SPI, TestBot has an agent that can help. And if it doesn’t, building one is straightforward thanks to its modular API.
We believe that agent-based testing tools like TestBot are the future of embedded QA automation—offering unmatched flexibility, efficiency, and traceability.