RTIにおける厳格なソフトウェアテスト:Connext DDS全体での信頼性確保
RTIソフトウェアは無数のミッションクリティカルシステムを支えています。お客様は最高の信頼性と品質を求めるため、お客様とのミーティングでは開発プラクティス、ツール、RTI IIoTラボについてオープンに議論します。頻繁に話題となるのが我々が実施するソフトウェアテストであり、これは我々が大きな誇りを持つ領域です。本稿では、すべてのRTIリリースの背後にある包括的なテスト戦略を概説します。
Connext製品ファミリは統一された開発とテストプロセスを共有しています。唯一の例外は、安全認証アプリケーション向けに調整された独自のプロセスに従うConnext DDS CERTです。新しいソフトウェアがリリースされる前に、機能、性能、拡張性を検証する広範なテストスイートを実行します。
単体テスト
単体テストは個々の関数が期待通りに振る舞うことを確認します。これらは各製品リリースのリグレッションテストの骨子を形成します。単純な関数チェックを超えて、フレームワークは単一ノード機能テストをサポートし、最近のリリースでは顧客提供のQoS設定も組み込んでいます。目標は可能な限り現実的な運用環境をエミュレートすることです。
機能テスト
新機能追加時には機能テスト計画を作成し、エンドツーエンドテストを開発します。Connext DDS Microでは、別マシン上の複数の「テストランナー」を中央の「テストマネージャー」が調整する分散テストフレームワークを採用しています。カスタムDDSテスト言語で各シナリオを記述し、ランナーがスクリプトを実行、PASS/FAIL結果を公開、次のコマンドを待機します。機能テストの焦点:
- アプリケーションレベルAPIとDDS QoSポリシー(デッドライン、ライフネス等)
- リソース制限
- クロスエンディアン互換性
- ディスカバリメカニズム
- 性能指標
- 負荷下での安定性
相互運用性テスト
- RTI製品内 – 数千の設定組み合わせで自動テストを実行。Connext 6のような機能リリース後や、潜在的破壊リスクを特定した際に旧版RTIバージョンをテスト。
- 言語間相互運用性 – RTIのJavaツール(RTI Admin Console等)と他言語で書かれたアプリケーションを組み合わせて間接的にテスト。
- 他DDSベンダーと – OMG DDS会議で定期的な基本テストを実施。DDSセキュリティ、拡張可能型、RTPSワイヤープロトコルの詳細チェックはOMGコミュニティ経由で調整(https://github.com/omg-dds)。
インストールテスト
インストールテストは、複数RTI製品間の統合と相互運用性を検証します。手動および自動スイートで実行:
- 正しいファイルインストール
- GUI統合(現在手動)
- ドキュメント精度
- Getting Started Guideを含む出荷例を用いた基本機能、多プラットフォーム対応
- 製品と言語の相互運用性
自動インストールテストで検証:
- ファイルチェックによるインストール完全性
- ユーティリティ実行(rtiddsping、rtiddsspy、rtiprototyper)
- rtiddsgen生成例(C、C++、C++03、C++11、C++ CLI、C#、Java、静的/動的、リリース/デバッグ)
- 様々なビルド設定での出荷例
- 性能例(C++、Java)
- TCP出荷例(C)
これらのテストはWindows、Linux、Solaris、Lynx、QNX、Darwin、VxWorksを含む80の異なるアーキテクチャで実行されます。
性能とメモリプロファイリング
現実的な分散性能テストは本質的に複雑です。我々のツールは、バッファサイジング、スループット、レイテンシ、リアルタイム配信、スタック使用量、OS相互作用などの主要指標を測定するよう設計されています。
- 単体テストで関数レベルの性能とメモリ使用量を取得。
- perfTestでConnext DDSの総合性能をプロファイリング。現実的な測定のために広範にチューニングされ、Routing Service等他製品と並行実行可能。公開レイテンシとスループットデータはRTIベンチマークで入手可能。
- memTestでConnext DDS Coreのコアメモリフットプリントを監視。Connext DDS Microも単体テスト中に詳細メモリ使用量を記録。
- RTI Admin Console、RTI Recording Service等のアプリケーションに組み込み性能監視。
perfTestとmemTestの継続的統合により、新機能追加時に事前定義閾値を超えるリグレッションを防止。
耐久テスト
これらのテストは長期実行シナリオをシミュレートし、参加者やエンドポイントの作成/削除などの動的操作中のヒープ使用量を監視します。耐久フレームワークはRTIセキュリティプラグイン実行時にRTPSパケットをファジングし、すべて最新のGenerally Available Releaseで実行されます。
大規模およびストレステスト
大規模テストは新機能を中心に意図的に構築されます。例えば、Transport Mobility導入時には様々なワイヤレスアクセスポイントへの接続/切断をエミュレートするテストが必要でした。ディスカバリ強化時には、数千エンドポイントをシミュレートしディスカバリ成功を自動検証する専用フレームワークを構築。設備とネットワーク制約により毎リリース再実行はされませんが、ディスカバリロジック変更時に再実行されます。
どのテストプログラムもすべてのシナリオを網羅できるわけではありませんが、RTIの広範で多面的なアプローチにより、お客様は各新リリースに確信を持てます。
著者について
Janは2006年にRTI入社。Sun Microsystems、VLSI Technology等で20年以上の技術と顧客対面役割を経験。ミドルウェア、グリッドアプリケーション、OS設計、ネットワークチップ開発に精通。新サポート組織で98%顧客満足度記録達成に貢献。VP of Engineeringとして60名以上の分散チームを率い、R&D、ソフトウェア開発プロセス、RTI Connext製品品質を統括。ベルギーKIHK、GeelのElectronics、Digital Communications(Summa Cum Laude)でMS相当学位取得。
詳細はこちら:
- 自律走行車両生産
- DDSとは?
- Connext DDS Pro
モノのインターネットテクノロジー
- 634AI、RTI Connext DDSを採用しAMRフリート管理を効率化
- モダン製造業をマスター:16の専門記事で学ぶ
- 硬さ試験技法:ロックウェル法とブリネル法
- フライングプローブテスト(FPT)完全ガイド:信頼性の高いPCB機能検証
- ファンクショナル回路テスト(FCT)がPCB信頼性に不可欠な理由
- 低コスト携帯デバイスでウイルス・細菌病原体を30分で検出
- 雪のシミュレーション:自律走行車向けレーダー・LiDARテストの高度化
- OpenDDS vs RTI Connext DDS:適切なデータ配布サービスソリューションの選択
- RTI Connext 6リリース:性能向上、セキュリティ強化、統合接続性
- GE、12億ドル規模のIIoTスピンオフでデジタルポートフォリオ強化へ
- IoTデバイスのソフトウェアテスト:主要課題と解決策