Testes Rigorosos de Software na RTI: Garantindo Confiabilidade no Connext DDS
Software da RTI alimenta incontáveis sistemas críticos. Nossos clientes exigem a mais alta confiabilidade e qualidade, então discutimos abertamente nossas práticas de desenvolvimento, ferramentas e o laboratório IIoT da RTI ao nos encontrar com eles. Um tópico frequente é o teste de software que realizamos — uma área na qual temos grande orgulho. Este post descreve a estratégia abrangente de testes por trás de cada lançamento da RTI.
A família de produtos Connext compartilha um processo unificado de desenvolvimento e teste. A única exceção é o Connext DDS CERT, que segue um processo distinto adaptado para aplicações certificadas de segurança. Antes de qualquer novo software ser lançado, executamos uma suíte extensa de testes que validam funcionalidade, desempenho e escalabilidade.
Testes Unitários
Testes unitários confirmam que funções individuais comportam-se como esperado. Eles formam a espinha dorsal de nossos testes de regressão para cada lançamento de produto. Além de verificações simples de função, o framework suporta testes de recursos em nó único e até incorpora configurações QoS fornecidas por clientes em lançamentos recentes. Nosso objetivo é emular ambientes operacionais realistas sempre que possível.
Testes de Recursos
Quando um novo recurso é adicionado, criamos um plano de teste de recurso e desenvolvemos testes ponta a ponta. Para Connext DDS Micro, empregamos um framework de teste distribuído que usa múltiplos "test runners" em máquinas separadas, coordenados por um "test manager" central. Uma linguagem de teste DDS personalizada descreve cada cenário, e runners executam scripts, publicam resultados PASS/FAIL e aguardam o próximo comando. Testes de recursos focam em:
- APIs de nível de aplicação e políticas QoS DDS (deadline, liveliness, etc.)
- Limites de recursos
- Compatibilidade cross-endianness
- Mecanismos de descoberta
- Métricas de desempenho
- Estabilidade sob carga
Testes de Interoperabilidade
- Dentro de produtos RTI – Testes automatizados executam milhares de combinações de configuração, especialmente após lançamentos de recursos como Connext 6. Versões antigas da RTI são testadas quando identificamos riscos de quebra potenciais.
- Interoperabilidade de linguagem – Testes são realizados indiretamente combinando ferramentas Java da RTI (ex: RTI Admin Console) com aplicações escritas em outras linguagens.
- Com outros fornecedores DDS – Testes básicos regulares ocorrem em reuniões OMG DDS, enquanto verificações mais profundas em DDS Security, Extensible Types e protocolo RTPS wire são coordenadas via comunidade OMG (https://github.com/omg-dds).
Testes de Instalação
Testes de instalação capturam integração e interoperabilidade entre múltiplos produtos RTI. São executados manualmente e via suíte automatizada cobrindo:
- Instalação correta de arquivos
- Integração de interface gráfica (atualmente manual)
- Precisão da documentação
- Funcionalidade básica usando exemplos fornecidos, incluindo o Guia de Início Rápido, em muitas plataformas
- Interoperabilidade de produto e linguagem
Testes de instalação automatizados verificam:
- Integridade da instalação via verificações de arquivo
- Execução de utilitários (rtiddsping, rtiddsspy, rtiprototyper)
- Exemplos gerados por rtiddsgen em C, C++, C++03, C++11, C++ CLI, C# e Java (estático/dinâmico, release/debug)
- Exemplos fornecidos com várias configurações de build
- Exemplos de desempenho em C++ e Java
- Exemplos TCP fornecidos em C
Estes testes rodam em 80 arquiteturas distintas, incluindo Windows, Linux, Solaris, Lynx, QNX, Darwin e VxWorks.
Perfilamento de Desempenho e Memória
Testes de desempenho distribuídos realistas são inerentemente complexos. Nossas ferramentas são projetadas para medir métricas-chave como dimensionamento de buffer, throughput, latência, entrega em tempo real, uso de stack e interações com SO.
- Testes unitários capturam desempenho e uso de memória em nível de função.
- perfTest cria perfil do desempenho geral do Connext DDS. É extensivamente ajustado para medições realistas e pode rodar junto com outros produtos como Routing Service. Dados públicos de latência e throughput estão disponíveis em benchmarks RTI.
- memTest monitora a pegada de memória do núcleo do Connext DDS Core. Connext DDS Micro também registra uso detalhado de memória durante testes unitários.
- Aplicações como RTI Admin Console e RTI Recording Service incluem monitoramento de desempenho integrado.
Integração contínua de perfTest e memTest previne regressões além de um limite pré-definido conforme novos recursos são adicionados.
Testes de Resistência
Estes testes simulam cenários de longa duração, monitorando uso de heap durante operações dinâmicas como criar/deletar participantes ou endpoints. O framework de resistência também faz fuzzing de pacotes RTPS quando rodando com plugins RTI Security, todos executados contra o lançamento Generally Available mais recente.
Testes de Larga Escala e Estresse
Testes de larga escala são deliberadamente construídos em torno de novos recursos. Por exemplo, introduzir Transport Mobility exigiu testes que emulam conexão/desconexão a vários pontos de acesso sem fio. Aprimorar descoberta disparou um framework dedicado que simula milhares de endpoints, verificando automaticamente sucesso de descoberta. Embora estes testes não sejam re-executados a cada lançamento devido a restrições de equipamento e rede, são re-executados quando a lógica de descoberta muda.
Embora nenhum programa de testes possa cobrir todos os cenários possíveis, a abordagem extensa e multifacetada da RTI fornece confiança aos clientes em cada novo lançamento.
Sobre o Autor
Jan entrou na RTI em 2006 após mais de duas décadas de papéis técnicos e voltados ao cliente na Sun Microsystems, VLSI Technology e outros líderes da indústria. Com expertise abrangendo middleware, aplicações grid, design de OS e desenvolvimento de chips de rede, Jan ajudou a construir uma taxa de satisfação do cliente de 98% em uma nova organização de suporte. Como VP de Engenharia, lidera uma equipe distribuída de 60+ engenheiros, supervisionando P&D, processos de desenvolvimento de software e qualidade de produto para RTI Connext. Jan possui grau equivalente a MS em Eletrônica, Comunicações Digitais (Summa Cum Laude) da KIHK, Geel, Bélgica.
Saiba Mais:
- Produção de Veículos Autônomos
- O que é DDS?
- Connext DDS Pro
Tecnologia da Internet das Coisas
- OpenDDS vs. RTI Connext DDS: Escolhendo a Solução Certa de Data Distribution Service
- GE Lança Spin-Off de IIoT de US$ 1,2 Bilhões para Fortalecer Portfólio Digital
- Teste de Software para Dispositivos IoT: Principais Desafios e Soluções
- 634AI Escolhe RTI Connext DDS para Otimizar Gestão de Frota de AMRs
- Dispositivo Portátil Acessível Detecta Patógenos Virais e Bacterianos em 30 Minutos
- Simulando Neve: Testes Precisos de Radar e Lidar para Veículos Autônomos
- Domine a Manufatura Moderna: 16 Artigos de Especialistas
- Técnicas de Teste de Dureza: Métodos Rockwell e Brinell
- Teste de Sonda Voadora (FPT): Guia Profissional para Verificação Confiável de Funcionalidade de PCB
- Por Que o Teste de Circuito Funcional É Crucial para a Confiabilidade de PCBs