Pengujian Software Ketat di RTI: Memastikan Keandalan di Seluruh Connext DDS

Perangkat lunak RTI menggerakkan sistem-sistem misi-kritis yang tak terhitung banyak. Pelanggan kami mengharapkan keandalan dan kualitas tertinggi, jadi kami secara terbuka membicarakan praktik pengembangan, alat, dan lab IIoT RTI saat bertemu dengan mereka. Topik yang sering muncul adalah pengujian perangkat lunak yang kami lakukan—bidang yang kami banggakan. Posting ini menggambarkan strategi pengujian komprehensif di balik setiap rilis RTI.
Keluarga produk Connext berbagi proses pengembangan dan pengujian yang terpadu. Pengecualian tunggal adalah Connext DDS CERT, yang mengikuti proses yang berbeda yang disesuaikan untuk aplikasi terifikasi keselamatan. Sebelum perangkat lunak baru dirilis, kami menjalankan serangkaian tes yang luas yang memvalidasi fungsionalitas, performa, dan skalabilitas.
Unit Tests
Unit tests memastikan bahwa fungsi individu berperilaku sesuai harapan. Mereka membentuk tulang punggung pengujian regresi kami untuk setiap rilis produk. Di luar pemeriksaan fungsi sederhana, framework mendukung pengujian fitur satu-node dan bahkan mengintegrasikan pengaturan QoS yang disediakan pelanggan dalam rilis terbaru. Tujuan kami adalah meniru lingkungan operasi yang realistis sebanyak mungkin.
Feature Tests
Saat fitur baru ditambahkan, kami membuat rencana pengujian fitur dan mengembangkan tes ujung-ke-ujung. Untuk Connext DDS Micro, kami menggunakan framework pengujian terdistribusi yang menggunakan beberapa “test runner” pada mesin terpisah, dikoordinasi oleh “test manager” pusat. Bahasa tes DDS kustom menggambarkan setiap skenario, dan runner mengeksekusi skrip, mempublikasikan hasil PASS/FAIL, dan menunggu perintah berikutnya. Feature tests fokus pada:
- API tingkat aplikasi dan kebijakan QoS DDS (deadline, liveliness, dll.)
- Batas sumber daya
- Kompatibilitas lintas-endianness
- Mekanisme penemuan
- Metrik performa
- Kestabilan di bawah beban
Interoperability Testing
- Di dalam produk RTI – Tes otomatis menjalankan ribuan kombinasi konfigurasi, terutama setelah rilis fitur seperti Connext 6. Versi RTI yang lebih lama diuji ketika kami mengidentifikasi risiko kerusakan potensial.
- Interoperabilitas bahasa – Tes dilakukan secara tidak langsung dengan menggabungkan alat Java RTI (misalnya, RTI Admin Console) dengan aplikasi yang ditulis dalam bahasa lain.
- Dengan vendor DDS lainnya – Tes dasar rutin terjadi pada rapat OMG DDS, sementara pemeriksaan yang lebih dalam tentang DDS Security, Extensible Types, dan protokol kawat RTPS dikoordinasi melalui komunitas OMG (https://github.com/omg-dds).
Install Tests
Install tests menangkap integrasi dan interoperabilitas di seluruh berbagai produk RTI. Tes ini dilakukan secara manual dan melalui suite otomatis yang mencakup:
- Pemasangan file yang benar
- Integrasi antarmuka pengguna grafis (saat ini manual)
- Ketepatan dokumentasi
- Fungsionalitas dasar menggunakan contoh yang dikirim, termasuk Getting Started Guide, di banyak platform
- Interoperabilitas produk dan bahasa
Install tests otomatis memverifikasi:
- Integritas instalasi melalui pemeriksaan file
- Eksekusi utilitas (rtiddsping, rtiddsspy, rtiprototyper)
- Contoh yang dihasilkan rtiddsgen di C, C++, C++03, C++11, C++ CLI, C#, dan Java (statis/dinamis, release/debug)
- Contoh yang dikirim dengan berbagai konfigurasi build
- Contoh performa di C++ dan Java
- Contoh yang dikirim TCP di C
Tes ini berjalan di 80 arsitektur yang berbeda, termasuk Windows, Linux, Solaris, Lynx, QNX, Darwin, dan VxWorks.
Performance and Memory Profiling
Tes performa terdistribusi yang realistis secara inheren kompleks. Alat kami dirancang untuk mengukur metrik kunci seperti penyesuaian buffer, throughput, latensi, pengiriman real-time, penggunaan stack, dan interaksi OS.
- Unit tests menangkap performa dan penggunaan memori tingkat fungsi.
- perfTest memprofil performa keseluruhan Connext DDS. Ini sangat disesuaikan untuk pengukuran realistis dan dapat berjalan bersama produk lain seperti Routing Service. Data latensi dan throughput publik tersedia di RTI benchmarks.
- memTest memantau jejak memori inti Connext DDS Core. Connext DDS Micro juga mencatat penggunaan memori detail selama unit tests.
- Aplikasi seperti RTI Admin Console dan RTI Recording Service termasuk pemantauan performa bawaan.
Integrasi berkelanjutan perfTest dan memTest mencegah regresi di atas ambang yang ditetapkan saat fitur baru ditambahkan.
Endurance Tests
Tes ini mensimulasikan skenario berjalan lama, memantau penggunaan heap selama operasi dinamis seperti membuat/menghapus peserta atau titik akhir. Framework ketahanan juga melakukan fuzzing paket RTPS saat berjalan dengan plugin keamanan RTI, semuanya dieksekusi terhadap rilis Generally Available terbaru.
Large-Scale and Stress Testing
Tes skala besar sengaja dibangun di sekitar fitur baru. Misalnya, memperkenalkan Transport Mobility memerlukan tes yang mensimulasikan menyambungkan/mengputuskan sambungan ke berbagai titik akses nirkabel. Meningkatkan penemuan memicu framework khusus yang mensimulasikan ribuan titik akhir, secara otomatis memverifikasi keberhasilan penemuan. Sementara tes ini tidak dijalankan ulang dengan setiap rilis karena keterbatasan peralatan dan jaringan, mereka dijalankan ulang ketika logika penemuan berubah.
Sementara tidak ada program pengujian yang dapat mencakup setiap skenario yang mungkin, pendekatan RTI yang luas dan multifaset memberikan pelanggan kepercayaan pada setiap rilis baru.
Tentang Penulis

Jan bergabung dengan RTI pada 2006 setelah lebih dari dua dekade peran teknis dan menghadap pelanggan di Sun Microsystems, VLSI Technology, dan pemimpin industri lainnya. Dengan keahlian yang meliputi middleware, aplikasi grid, desain OS, dan pengembangan chip jaringan, Jan membantu membangun tingkat kepuasan pelanggan 98% yang mendatangkan rekor dalam organisasi dukungan baru. Sebagai VP Engineering, dia memimpin tim terdistribusi 60+ insinyur, mengawasi R&D, proses pengembangan perangkat lunak, dan kualitas produk untuk RTI Connext. Jan memiliki gelar setara MS di Elektronika, Komunikasi Digital (Summa Cum Laude) dari KIHK, Geel, Belgia.
Learn More:
- Autonomous Vehicle Production
- What is DDS?
- Connext DDS Pro