Rigorous Software Testing at RTI: Ensuring Reliability Across Connext DDS
RTI software powers countless mission‑critical systems. Our customers demand the highest reliability and quality, so we openly discuss our development practices, tooling, and the RTI IIoT lab when meeting with them. A frequent topic is the software testing we perform—an area we take great pride in. This post outlines the comprehensive testing strategy behind every RTI release.
The Connext product family shares a unified development and testing process. The sole exception is Connext DDS CERT, which follows a distinct process tailored for safety‑certified applications. Before any new software is released, we run an extensive suite of tests that validate functionality, performance, and scalability.
Unit Tests
Unit tests confirm that individual functions behave as expected. They form the backbone of our regression testing for each product release. Beyond simple function checks, the framework supports single‑node feature testing and even incorporates customer‑supplied QoS settings in recent releases. Our goal is to emulate realistic operating environments whenever possible.
Feature Tests
When a new feature is added, we create a feature test plan and develop end‑to‑end tests. For Connext DDS Micro, we employ a distributed test framework that uses multiple “test runners” on separate machines, coordinated by a central “test manager.” A custom DDS test language describes each scenario, and runners execute scripts, publish PASS/FAIL results, and await the next command. Feature tests focus on:
- Application‑level APIs and DDS QoS policies (deadline, liveliness, etc.)
- Resource limits
- Cross‑endianness compatibility
- Discovery mechanisms
- Performance metrics
- Stability under load
Interoperability Testing
- Within RTI products – Automated tests run thousands of configuration combinations, especially after feature releases like Connext 6. Older RTI versions are tested when we identify potential breakage risks.
- Language interoperability – Tests are performed indirectly by combining RTI’s Java tools (e.g., RTI Admin Console) with applications written in other languages.
- With other DDS vendors – Regular basic tests occur at OMG DDS meetings, while deeper checks on DDS Security, Extensible Types, and the RTPS wire protocol are coordinated via the OMG community (https://github.com/omg-dds).
Install Tests
Install tests capture integration and interoperability across multiple RTI products. They are run manually and via an automated suite covering:
- Correct file installation
- Graphical user interface integration (currently manual)
- Documentation accuracy
- Basic functionality using shipped examples, including the Getting Started Guide, across many platforms
- Product and language interoperability
Automated install tests verify:
- Installation integrity via file checks
- Utility execution (rtiddsping, rtiddsspy, rtiprototyper)
- rtiddsgen‑generated examples in C, C++, C++03, C++11, C++ CLI, C#, and Java (static/dynamic, release/debug)
- Shipped examples with various build configurations
- Performance examples in C++ and Java
- TCP‑shipped examples in C
These tests run on 80 distinct architectures, including Windows, Linux, Solaris, Lynx, QNX, Darwin, and VxWorks.
Performance and Memory Profiling
Realistic distributed performance tests are inherently complex. Our tools are designed to measure key metrics such as buffer sizing, throughput, latency, real‑time delivery, stack usage, and OS interactions.
- Unit tests capture function‑level performance and memory usage.
- perfTest profiles Connext DDS’s overall performance. It’s extensively tuned for realistic measurements and can run alongside other products like Routing Service. Public latency and throughput data are available at RTI benchmarks.
- memTest monitors the core memory footprint of Connext DDS Core. Connext DDS Micro also records detailed memory usage during unit tests.
- Applications such as RTI Admin Console and RTI Recording Service include built‑in performance monitoring.
Continuous integration of perfTest and memTest prevents regressions beyond a pre‑defined threshold as new features are added.
Endurance Tests
These tests simulate long‑running scenarios, monitoring heap usage during dynamic operations like creating/deleting participants or endpoints. The endurance framework also fuzzes RTPS packets when running with RTI Security plugins, all executed against the latest Generally Available Release.
Large‑Scale and Stress Testing
Large‑scale tests are deliberately built around new features. For instance, introducing Transport Mobility required tests that emulate connecting/disconnecting to various wireless access points. Enhancing discovery triggered a dedicated framework that simulates thousands of endpoints, automatically verifying discovery success. While these tests aren’t re‑run with every release due to equipment and network constraints, they are re‑executed when discovery logic changes.
While no testing program can cover every possible scenario, RTI’s extensive, multi‑faceted approach provides customers with confidence in each new release.
About the Author
Jan joined RTI in 2006 after more than two decades of technical and customer‑facing roles at Sun Microsystems, VLSI Technology, and other industry leaders. With expertise spanning middleware, grid applications, OS design, and network chip development, Jan helped build a record‑setting 98% customer satisfaction rate in a new support organization. As VP of Engineering, he leads a distributed team of 60+ engineers, overseeing R&D, software development processes, and product quality for RTI Connext. Jan holds an MS‑equivalent degree in Electronics, Digital Communications (Summa Cum Laude) from KIHK, Geel, Belgium.
Learn More:
- Autonomous Vehicle Production
- What is DDS?
- Connext DDS Pro
Internet of Things Technology
- OpenDDS vs. RTI Connext DDS: Choosing the Right Data Distribution Service Solution
- Imperas Arm Models Integrated into Razorcat TESSY for Advanced Embedded Software Testing
- Why Modular & Scalable Software Solutions Drive Cost‑Effective Test & Measurement
- Software Testing for IoT Devices: Key Challenges & Solutions
- Affordable Portable Device Detects Viral & Bacterial Pathogens in 30 Minutes
- Leveraging RPA for Software Testing: A Strategic Approach
- Mastering PCB Solderability Testing: Ensure Reliable Assembly & Production Success
- Hardness Testing Techniques: Rockwell & Brinell Methods
- Cable Testing: Essential Inspections & Procedures for Reliability
- Why Functional Circuit Testing Is Crucial for PCB Reliability