200 likes | 365 Views
Testing distributed C2X systems with TTCN-3. Jürgen Großmann Fraunhofer FOKUS Kaiserin-Augusta-Allee 31 10589 Berlin Tel: +49-30-3463-7390 Email: juergen.grossmann@fokus.fraunhofer.de Ilja Radusch, Carsten Neumann, Andreas Hinnerichs (Fraunhofer FOKUS),
E N D
Testing distributed C2X systems with TTCN-3 Jürgen Großmann Fraunhofer FOKUS Kaiserin-Augusta-Allee 31 10589 Berlin Tel: +49-30-3463-7390 Email: juergen.grossmann@fokus.fraunhofer.de Ilja Radusch, Carsten Neumann, Andreas Hinnerichs (Fraunhofer FOKUS), Stephan Pietsch, Bogdan Stanca-Kaposta (Testing Technologies IST GmbH) TTCN-3 User Conference 2011 7 – 9 June 2011 - Bled, Slovenia 21.08.2014 | 1 Hier steht die Fußzeile Hier steht die Fußzeile
V2X Systems safety, efficiency, comfort • Different communication technologies • WiFi 802.11 b / g, 802.11 p • UMTS / GPRS • GPS / Galileo • Distributed dynamic system GPS/Galileo UMTS/GPRS ITS G5 ICS IVS IVS 802.11 b/g and ITS G5 IRS IRS Testing distributed C2X applications – T3UC 2011
The results presented here have been developed as part of the project simTD. The project simTD is funded by the Federal Ministries ofEconomics and Technology (BMWi) and the Federal Ministries of Education and Research (BMBF) in Germany. The project is supported by the Federal Ministry of Transport, Building and Urban Affairs. Testing distributed C2X applications – T3UC 2011
Characteristics of 802.11p • Unicast: data transport service from a single node (source) to just a single node (target) by communicating directly or via multiple hops to geographical addresses. • Topologically-scoped broadcast (TSB): data transport service from a single node (source) to all nodes in an ad-hoc network. • Single-Hop Broadcast (SHB): special situation of the topological broadcast. Messages are distributed to the immediate neighbours and not redirected by multi-hop communications. • Geographically-scoped broadcast (GBC): data transport service from a single node (source) to node in a specific geographical area. Testing distributed C2X applications – T3UC 2011
Systematic verification and validation of simTD systems validation of the system: utility, efficiency, usability Field test verification of the system: efficiency, functionality, availability System test Specification TTCN-3 test bed Integration test verification of simTD platform and features:functionality, robustness, efficiency, reliability Design Module test Implementation Testing distributed C2X applications – T3UC 2011
Challenges • Providing Test for several levels of integration (software integration, software / hardware integration, system integration) • Support for various types of testing (functional testing, protocol testing, robustness testing) • Independent of proprietary interfaces and vehicle manufacturer’s technologies (test shall run on systems that are used by different vehicle manufacturers) • Distributed test development in over 20 development teams • Analysis of complex data and protocols (e.g. complex C2X messages) • Continuous stimulation with vehicle data (e.g. velocity, position etc.) • Distributed system with heterogeneous components Testing distributed C2X applications – T3UC 2011
Testing scope of the test bench • Testing C2X scenarios in a laboratory environment • continuous integration • acceptance and regression testing • Support for test automation • For example, obstacle avoidance • Vehicle is stopped and sends obstacle avoidance messages • Verification that the following vehicles receive the messages and display the warning Testing distributed C2X applications – T3UC 2011
Realization of the test bed LSS template C2XMessage c2xMessage(in id := sid, payload := { protocolVersion := 1, actionID := 100, cancelationFlag := false, generationTime := {t, 0}, validityDuration := 100, referencePosition := {longitude := {isE, protocolMsg := pm } } IRS IVS Test Control HMI IVS • For example, obstacle avoidance • Vehicle is stopped and sends obstacle avoidance messages • Verification that the following vehicles receive the messages and display the warning ICT Testing distributed C2X applications – T3UC 2011
The test bed in the FOKUS automotive laboratory Hier steht die Fußzeile
Architecture of the target hardware Communication Unit (CCU) 2G/3G WLan GPS CAN C2X Protocols WirelessManager VAPI* Security Router API Application Unit (AU) Logging API COM Client VAPI Client LDM C2X Applications HMI Controller * The Vehicle API (VAPI) is provided by Volkswagen Testing distributed C2X applications – T3UC 2011
Systematic testing approach (overview) • Testing a single C2X application: The IVS system is stimulated using the Vehicle API (VAPI) with speed and position data that simulate a complete car ride. After about two seconds, the vehicle stopped and put the hazard lights on. It is verified if the system generates a suitable obstacle avoidance messages and if the message is sent. • Testing of Distributed C2X applications on one IVS or more IVS or on an IVS and IRS: The system is stimulated with speed and position data for two vehicles using the VAPI of the respective IVS. Vehicle 1 drives on the highway at a constant speed, vehicle 2 will follow with 15 delay on the same route. Vehicle 2 reduces the vehicle speed to zero and sets the hazard lights. The expected behaviour, vehicle 1 sends an obstacle avoidance and vehicle 2 warns the driver • Testing the protocol layer (802.11 p): The test of geographically-scoped broadcast communication is based on three IVS. All IVS will be stimulated with plausible vehicle data (e.g. constant speed and vehicle distance 300m). Using the communication interface of the vehicle 1 the test system sends a message (e.g. obstacle avoidance), which is addressed to a particular geographical area. It will be checked if the vehicle will receive the message when passing the area. Testing distributed C2X applications – T3UC 2011
Architecture of the test bed • Tool-independent interface (TPAPI) • Stimulating the system: • Traces: simulating the vehicle state and its change over time • C2X messages: selective triggering of events • Automated evaluation of the system output: • Detection and analysis of incoming messages • Detection of HMI activities • Analysis of log messages IRS IVS2 Test-PC IVS1 TP API VehicleSpeed,150 Simulator COM VAPI Another Testtool TC LDM C2X Applications Test Executable(TTCN-3) Logging API HMI Controller Logs Testing distributed C2X applications – T3UC 2011
Why TTCN-3 • Standardized and used in the standardization of C2X protocols • Established concepts with mature tool support: • Test specification language with well-defined syntax and semantics (textual and graphical) • Concepts to define and maintain heavily structured data and data patterns (TTCN-3 templates) • Graphical logging • High potential for test automation • Extendable to provide a commonly used set of test function and a user friendly interface • Coordinate and control the inputs for up to 5 different stations (IVS 3x and 2x IRS) • Trace player to easily play trace data • Access to the configuration interface of the simTD system Testing distributed C2X applications – T3UC 2011
AntiLockBrakeSystem, BrakeActuation, BrakingPressure, ClutchSwitchActuation, CruiseControlSystemState, CurrentGear, DirectionOfDriving, DoorPosition, ElectronicStabilityProgram, EngineSpeed, ExteriorTemperature, FogLight, FrontLights, FuelConsumption, GasConsumption, GearSelection, HazardWarningSystem, Horn, LateralAcceleration, LongitudinalAcceleration, ModelName, ModelType, Odometer, PanicBraking, PedalForce, RainIntensity, RearFogLight, SimTD_EmergencyLighting, SimTD_EmergencyResponseType, SimTD_FilteredPosition, SimTD_ImprovedLocating, SimTD_PublicTransportParameters, SimTD_PublicTransportState, SimTD_RawPosition, SimTD_Siren, SimTD_SpecialVehicleType, SimTD_TurnPrediction, SteeringWheelAngle, SteeringWheelAngularVelocity, TankLevel, TrackWidth, TripOdometer, TurnSignalLever, TurnSignalLights, VehicleDimensions, VehicleIdentificationNumber, VehicleSpeed, WheelBase, WiperSpeed, WiperSystem, YawVelocity; Providing the vehicle state <item> <date>24.06.2010 11:01:05.864</date> <FuelConsumption> <InstantaneousValuePerMilage>2.55</InstantaneousValuePerMilage> <InstantaneousValuePerTime>0.74</InstantaneousValuePerTime> <TotalValue>2.55</TotalValue> </FuelConsumption> <VehicleSpeed> <VehicleSpeed>78.43</VehicleSpeed> </VehicleSpeed> <YawVelocity> <YawVelocity>-1.18</YawVelocity> </YawVelocity> </item> Testing distributed C2X applications – T3UC 2011
C2X messages (CAM, DENM) template Message simpleMessage(intmID, PositionVector_TYPEoriginatorPos, C2XAppPayload_TYPE p) := { sourceId := 306999566, messageId := mID, contentType := 31, contentSubType := 0, packetType := 3, transportOptions := {trafficClass := 0, priority := 0, repetitionInteval := 0, lifeTime := 41789530309280}, secOptions := {cryption := "NONE", signature_ := "NONE", plausibility := "NONE"}, template Message hiwaMessage(intmID, PositionVector_TYPEoriginatorPos) := { type_ := "received", item := {type_ := 3, payloadLength := 15000}, sourceId := 306999566, messageId := mID, contentType := 31, contentSubType := 0, packetType := 3, transportOptions := {trafficClass := 0, priority := 0, repetitionInteval := 0, lifeTime := 41789530309280}, secOptions := {cryption := "NONE", signature_ := "NONE", plausibility := "NONE"}, destination := { type_ := "UNDEFINED", nodeId := 0, latitude1 := - 900000000, longitude1 := - 1800000000, latitude2 := - 900000000, longitude2 := - 1800000000, size := 0 }, originator := {originatorPosition := originatorPos, senderPosition := originatorPos, medium := "AUTO"}, C2XAppPayload := { protocolVersion := 0, actionID := 0, cancelationFlag := {bool := false}, generationTime := {timeStamp := 1282050379, milliSec := 72}, validityDuration := 604799, referencePosition := { longitude := 92371197, latitude := 490046194, elevation := 0, heading := omit, streetName := omit, positionConfidence := omit, elevationConfidence := omit, roadSegmentID := omit }, protocolMsg := { content := { decEnvNotification := { management := {reliability := 50, isNegation := {bool := false}, dataReference := omit}, event := { trafficFlowEffect := {effectCode := 3, tendency := omit, lengthAffected := omit, averageSpeedAbsolute := 500, delay := omit, segmentSpeedLimit := omit, prognosisTime := omit}, causeCode := 31, directCause := {severity := 2, subCause := 2, lengthEffected := 500, laneRestriction := 3, numberOfLanes := 1} }, taggedList := {content := {}}, location := { locationRef := { content := { trace := { referencePosition := { longitude := 92371197, latitude := 490046194, elevation := 0, heading := omit, streetName := omit, positionConfidence := omit, elevationConfidence := omit, roadSegmentID := omit }, approaches := { content := { {PositionList := {content := {{OffsetPosition2D := {longOffset := - 13166, latOffset := - 14775}}}}}, {PositionList := {content := {{OffsetPosition2D := {longOffset := - 11981, latOffset := - 15185}}}}}, {PositionList := {content := {{OffsetPosition2D := {longOffset := - 9424, latOffset := - 15960}}}}}, {PositionList := {content := {{OffsetPosition2D := {longOffset := - 5752, latOffset := - 16696}}}}} } }, extension_ := omit, endPosition := omit, extensionRange := omit, roadSegmentList := omit } } }, destinationArea := {content := {rectangle := {pos1Lon := 130000000, pos1Lat := 520000000, pos2LonOff := 8100000, pos2LatOff := 500000, width := 1000}}} } } } } } }+++ Testing distributed C2X applications – T3UC 2011
C2X message templates template Message sMessage(C2XAppPayload_TYPE p) := { sourceId := ?, messageId :=?, contentType := 31, contentSubType := 0, packetType := ?, transportOptions := {trafficClass := ?, priority := ?, repetitionInteval := ?, lifeTime := ?}, secOptions := ?, template Message hiwaMessage(intmID, PositionVector_TYPEoriginatorPos) := { type_ := "received", item := {type_ := 3, payloadLength := 15000}, sourceId := 306999566, messageId := mID, contentType := 31, contentSubType := 0, packetType := 3, transportOptions := {trafficClass := 0, priority := 0, repetitionInteval := 0, lifeTime := 41789530309280}, secOptions := {cryption := "NONE", signature_ := "NONE", plausibility := "NONE"}, destination := { type_ := "UNDEFINED", nodeId := 0, latitude1 := - 900000000, longitude1 := - 1800000000, latitude2 := - 900000000, longitude2 := - 1800000000, size := 0 }, originator := {originatorPosition := originatorPos, senderPosition := originatorPos, medium := "AUTO"}, C2XAppPayload := { protocolVersion := 0, actionID := 0, cancelationFlag := {bool := false}, generationTime := {timeStamp := 1282050379, milliSec := 72}, validityDuration := 604799, referencePosition := { longitude := 92371197, latitude := 490046194, elevation := 0, heading := omit, streetName := omit, positionConfidence := omit, elevationConfidence := omit, roadSegmentID := omit }, protocolMsg := { content := { decEnvNotification := { management := {reliability := 50, isNegation := {bool := false}, dataReference := omit}, event := { trafficFlowEffect := {effectCode := 3, tendency := omit, lengthAffected := omit, averageSpeedAbsolute := 500, delay := omit, segmentSpeedLimit := omit, prognosisTime := omit}, causeCode := 31, directCause := {severity := 2, subCause := 2, lengthEffected := 500, laneRestriction := 3, numberOfLanes := 1} }, taggedList := {content := {}}, location := { locationRef := { content := { trace := { referencePosition := { longitude := 92371197, latitude := 490046194, elevation := 0, heading := omit, streetName := omit, positionConfidence := omit, elevationConfidence := omit, roadSegmentID := omit }, approaches := { content := { {PositionList := {content := {{OffsetPosition2D := {longOffset := - 13166, latOffset := - 14775}}}}}, {PositionList := {content := {{OffsetPosition2D := {longOffset := - 11981, latOffset := - 15185}}}}}, {PositionList := {content := {{OffsetPosition2D := {longOffset := - 9424, latOffset := - 15960}}}}}, {PositionList := {content := {{OffsetPosition2D := {longOffset := - 5752, latOffset := - 16696}}}}} } }, extension_ := omit, endPosition := omit, extensionRange := omit, roadSegmentList := omit } } }, destinationArea := {content := {rectangle := {pos1Lon := 130000000, pos1Lat := 520000000, pos2LonOff := 8100000, pos2LatOff := 500000, width := 1000}}} } } } } } }+++ Testing distributed C2X applications – T3UC 2011
Testing the characteristics of the protocol layer 802.11 p Geographically-scoped broadcast • Configuration: 3 IVS • All IVS are stimulated with plausible vehicle data using the VAPI (e.g.constant speed and vehicle distance 600m). • Vehicle 3sends a message (e.g. obstacle avoidance), which is addressed to a specific geographical area (e.g. 1200m ahead). • Check if vehicle 1 states the reception of the message and vehicle 2 not. destination := { type_ := "circle", nodeId := 0, latitude1 := latVehicle1, longitude1 := longVehicle1, size := 300 } Testing distributed C2X applications – T3UC 2011
Testing one IVS: obstacle avoidance Reading trace data haltVehicleT.start(2.0); emergencyAction := false; alt { [] tracesPort.receive(item:?) -> valuelastTraceMsg { if (not emergencyAction) { lastFilteredPosition := lastTraceMsg.SimTD_FilteredPosition;} if (emergencyAction){ lastTraceMsg.SimTD_EmergencyLighting := { EmergencyLighting := {bool := true}}; …} ivsPort.send(lastTraceMsg); repeat;} [] loggingPort.receive(ereignisWarnung) -> valueccMsg { responseTimer.stop; setverdict(pass, "EinsatzfahrzeugWarnung received.");} [] loggingPort.receive(LogEntry:?) -> valuegenericLogEntry { repeat;} [] haltVehicleT.timeout { emergencyAction := true; repeat;} } • the system is stimulated with speed and position data that simulate a car ride. • after about 2 seconds, the vehicle stopped and turned on the hazard lights. • it is checked whether the system creates a perfect obstacle warning and sent Waiting for obstacle detection Replay of modified trace data Obstacle detection Testing distributed C2X applications – T3UC 2011
Summary and outlook • Test system is implemented and is currently being used in simTD: • TTCN-3 Framework distributed to the partners • Tool: TTworkbenchfrom Testing Technologies • Carrying out the tests on the virtual system (testing applications on a VM) • Carrying out the tests on the physical system • Next Steps: • Further testing activities in particular to common features of 802.11p • Integration of simulators for the generation of vehicle data • Dissemination and exploitation of ideas within other FOT projects, in standardization (ETSI) and with industrial partners Testing distributed C2X applications – T3UC 2011
Contact Jürgen Großmann Fraunhofer FOKUS Kaiserin-Augusta-Allee 31,10589 Berlin Tel: +49-30-3463-7390 juergen.grossmann@fokus.fraunhofer.de Hier steht die Fußzeile