Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial Internet of Things >> Internet of Things-technologie

Software testen bij RTI

RTI-software vormt de kern van veel bedrijfskritische systemen. Onze klanten hechten natuurlijk veel waarde aan de betrouwbaarheid en kwaliteit van hun systemen. Dus wanneer ik klanten ontmoet en het RTI-ontwikkelingsproces presenteer, bespreken we de ontwikkelingspraktijken, de tools die we gebruiken en het RTI IIoT-lab. Velen zijn vooral benieuwd naar de softwaretesten die we bij RTI doen en de testkaders die we gebruiken. Ik geniet altijd van deze gesprekken; we zijn trots op onze aandacht voor testen. Deze blogpost vat de tests samen die we uitvoeren.

Ons ontwikkelingsproces en testen zijn gebruikelijk in de gehele RTI Connext-productsuite. De uitzondering is RTI Connext DDS CERT, dat zich richt op toepassingen waarvoor veiligheidscertificering vereist is en een ander ontwikkelingsproces volgt. Tijdens de ontwikkeling en voordat RTI nieuwe software uitbrengt, voeren we een groot aantal tests uit om de juiste functionaliteit te valideren en om ervoor te zorgen dat de software goed presteert en schaalt.

Eenheidstests valideren dat individuele functies presteren zoals verwacht. Bij elke productrelease worden eenheidstests gebruikt als het belangrijkste regressietestmechanisme. Het unit-testraamwerk doet meer dan alleen afzonderlijke functies testen. Het maakt ook een niveau van single-node feature testing mogelijk. In recentere releases hebben we zelfs door de klant geleverde Quality of Service (QoS)-instellingen opgenomen als onderdeel van onze testconfiguratie. Onze processen zijn ontworpen om een ​​correcte werking te garanderen in omgevingen die zo realistisch mogelijk zijn.

Als onderdeel van de ontwikkeling van nieuwe functies maken we een functietestplan en implementeren we een reeks end-to-end functietests . Deze tests worden geïmplementeerd via een op maat gemaakte set tests of, in het geval van Connext DDS Micro, in een nieuw gedistribueerd testraamwerk. Deze testomgeving maakt gebruik van een aantal “testlopers” die testen uitvoeren op verschillende machines en een “testmanager” die de testuitvoering tussen testlopers synchroniseert. Er is een eenvoudige DDS-testtaal ontwikkeld om de tests te beschrijven, en elke testrunner voert een script uit, publiceert de resultaten (PASS/FAIL) en wacht tot het volgende script wordt uitgevoerd. De primaire focus van de functietests zijn:

  • Api's op applicatieniveau en DDS QoS-beleid testen (deadline, levendigheid, enz.)
  • Testresourcelimieten
  • Test cross endianness
  • Ontdekking testen
  • Testprestaties
  • Zorg voor stabiliteit

We voeren verschillende niveaus van interoperabiliteitstesten uit:

  • We testen interoperabiliteit met andere RTI-producten tijdens de ontwikkeling en tijdens het testen van de installatie. We hebben een reeks geautomatiseerde interoperabiliteitstests ontwikkeld. Connext 6 heeft bijvoorbeeld een aantal nieuwe functies geïntroduceerd die gemeenschappelijk zijn tussen Connext DDS Micro 3.0 en Connext DDS core 6.0-bibliotheken. We hebben automatisch duizenden configuratiecombinaties gegenereerd en correct gedrag gevalideerd. Interoperabiliteit met oudere RTI-versies wordt getest wanneer we na analyse vaststellen dat er een risico bestaat dat de interoperabiliteit wordt verbroken.
  • Taalinteroperabiliteit gebeurt indirect, aangezien verschillende van onze tools in Java of andere talen zijn geschreven. We testen bijvoorbeeld de interoperabiliteit met een op Java gebaseerde applicatie bij gebruik van RTI's op Java gebaseerde tools zoals RTI Admin Console in combinatie met applicaties in andere talen.
  • Een basisniveau van interoperabiliteit met andere DDS-leveranciers wordt regelmatig gedaan op DDS-bijeenkomsten van Object Management Group (OMG). Leveranciers coördineren een meer diepgaande reeks tests om DDS-beveiliging, uitbreidbare typen en het DDS-RTPS-draadprotocol te valideren (https://github.com/omg-dds).

Tests installeren vastleggen integratie en interoperabiliteit testen tussen verschillende producten. Deze tests worden zowel handmatig als via een geautomatiseerde installatietestsuite uitgevoerd. Test installeren omvat een breed scala aan integratie- en interoperabiliteitsproblemen:

  • Installatie - Zijn alle bestanden correct geïnstalleerd?
  • Grafische gebruikersinterface (GUI) - Er is momenteel geen geautomatiseerde GUI-test. Tijdens de handmatige installatietest controleren we of integraties goed werken:bijvoorbeeld tussen RTI Launcher en rtiddsgen> , of rtiprototyper .
  • Documentatie - Wordt de juiste documentatie verzonden?
  • Basisfunctionaliteit testen voor alle producten die de verzonden voorbeelden gebruiken. Voor sommige producten nemen we de volledige Aan de slag-gids door. Deze test wordt herhaald op verschillende platforms.
  • Basis product- en taalinteroperabiliteitstesten .

Om deze tests te versnellen en uit te breiden, hebben we geautomatiseerde installatietests voor vele functies. Huidige tests omvatten:

  • Installatie - bestandscontrole om te controleren of bestanden correct zijn geïnstalleerd.
  • De hulpprogramma's uitvoeren, inclusief rtiddsping , rtiddsspy en rtiprototyper.
  • Het uitvoeren van door rtiddsgen gegenereerde voorbeelden in C, C++, C++03, C++11, C++ CLI, C# en Java, met een combinatie van statische/dynamische en release/debug DDS-bibliotheken.
  • Verzonden voorbeelden uitvoeren met een combinatie van statische/dynamische en release/debug DDS-bibliotheken.
  • Prestatievoorbeelden in C++ en Java.
  • TCP-verzonden voorbeelden in C.

Deze tests worden uitgevoerd op 80 verschillende architecturen, waaronder Windows-, Linux-, Solaris-, Lynx-, QNX-, Darwin- en VxWorks-platforms.

We hebben verschillende prestatie- en geheugenprofileringstests. Het creëren van een geldige en zinvolle gedistribueerde prestatietest is een enorme uitdaging. Eenvoudige benaderingen kunnen de afwegingen in buffers, doorvoer, latentie, realtime levering, stapels en besturingssysteem niet aan of zelfs ruwweg meten. RTI heeft uitgebreide ervaring in het evalueren van de prestatiestatistieken die het belangrijkst zijn voor real-world systemen.

  • Eenheidstests leggen prestatie- en geheugeninformatie vast voor specifieke functies.
  • We gebruiken onze prestatietest (perfTest) om de prestaties van Connext DDS te karakteriseren. We hebben veel geïnvesteerd in perfTest, zodat het realistische metingen kan doen. Het kan worden gebruikt in combinatie met andere producten, zoals Routing Service. We gebruiken PerfTest om onze openbare latentie- en doorvoergegevens te verzamelen. Prestatieresultaten zijn beschikbaar op https://www.rti.com/products/dds/benchmarks.html.
  • memTest is gemaakt om de geheugenvoetafdruk van Connext DDS Core te controleren. Connext DDS Micro verzamelt gedetailleerde informatie over de geheugenvoetafdruk als onderdeel van de unit-tests.
  • Andere toepassingen zoals RTI Admin Console en RTI Recording Service hebben ingebouwde prestatiebewakingsmogelijkheden.

Continue integratie van PerfTest en MemTest zorgt ervoor dat we niet achteruit gaan (meer dan een vooraf ingesteld percentage) als er nieuwe functies worden toegevoegd aan het Connext DDS-product.

Duurtests emuleren van langlopende scenario's. Duurtests bewaken heapgeheugen in verschillende dynamische gebruiksscenario's, zoals het maken en verwijderen van deelnemers op afstand of het maken en verwijderen van externe eindpunten. Het duurzaamheidstestraamwerk werkt ook met RTI-beveiligingsplug-ins in een fuzz-testgebruiksgeval waarbij de RTPS-pakketten willekeurig worden gewijzigd. De tests worden uitgevoerd met de meest recente algemeen beschikbare release (GAR).

Grootschalige en stresstesten is doelbewust gebouwd als onderdeel van de ontwikkeling van nieuwe functies. Toen we bijvoorbeeld Transport Mobility (ook bekend als IP-mobiliteit) introduceerden, hebben we een reeks tests gemaakt om het verbinden en loskoppelen van verschillende draadloze toegangspunten te emuleren. Toen we de discovery-implementatie verbeterden, creëerden we een speciaal testraamwerk om duizenden eindpunten te simuleren en automatisch te verifiëren dat ze door elke applicatie werden ontdekt. Meestal worden deze tests niet bij elke release opnieuw uitgevoerd, mede vanwege de apparatuur en netwerkvereisten. Sommige tests (bijvoorbeeld een grootschalige detectietest) worden opnieuw uitgevoerd wanneer we wijzigingen aanbrengen in de detectie-implementatie.

Ons product is krachtig en complex en moet werken in een verbazingwekkende reeks van nog complexere toepassingen. We kunnen dus natuurlijk niet elk scenario testen of elk mogelijk probleem vinden. Maar we zijn ervan overtuigd dat we een van de meest uitgebreide testprogramma's in de branche hebben. Door dit rigoureuze en veelzijdige testproces weten we dat onze klan

[1] [2] 下一页

Internet of Things-technologie

  1. Open DDS versus RTI DDS-software
  2. Connex 6:Nu beschikbaar!
  3. GE lanceert $ 1,2 miljard IIoT Company
  4. De uitdagingen van het softwaretesten van IOT-apparaten
  5. 634AI selecteert RTI-software om wagenparken van autonome mobiele robots te beheren
  6. Voordelige draagbare detector identificeert ziekteverwekkers in enkele minuten
  7. Voertuigsimulatiesoftware:Radar en Lidar testen in de sneeuw
  8. Productie artikelen
  9. 16 Deel 2:Hardheidstest
  10. Flying Probe Test (FPT):weet over deze PCB-testtechniek
  11. Betekenis van het uitvoeren van functionele circuittests op PCB's