21.08.2014 | 1
DESCRIPTION
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: [email protected] Ilja Radusch, Carsten Neumann, Andreas Hinnerichs (Fraunhofer FOKUS), - PowerPoint PPT PresentationTRANSCRIPT
22.04.23 | 1 Hier steht die Fußzeile22.04.23 | 1 Hier steht die Fußzeile
Testing distributed C2X systems with TTCN-3
Jürgen GroßmannFraunhofer FOKUSKaiserin-Augusta-Allee 3110589 BerlinTel: +49-30-3463-7390Email: [email protected]
Ilja Radusch, Carsten Neumann, Andreas Hinnerichs (Fraunhofer FOKUS), Stephan Pietsch, Bogdan Stanca-Kaposta (Testing Technologies IST GmbH)
TTCN-3 User Conference 20117 – 9 June 2011 - Bled, Slovenia
V2X Systems safety, efficiency, comfort
• Different communication technologies- WiFi 802.11 b / g, 802.11 p
- UMTS / GPRS
- GPS / Galileo
• Distributed dynamic system
ICSICS
GPS/GalileoUMTS/GPRS
802.11 b/g and ITS G5
IRSIRS
ITS G5
IVS IVS
Testing distributed C2X applications – T3UC 201122.04.23 | 2
22.04.23 | 3 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 of
Economics 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.
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.
22.04.23 | 4 Testing distributed C2X applications – T3UC 2011
Fiel
d te
stFiel
d te
st
TTC
N-3
test
bed
TTC
N-3
test
bed
Systematic verification and validation of simTD systems
Specification
Design
Implementation
Module test
Integration test
System test
validation of the system: utility, efficiency, usability
verification of the system: efficiency, functionality,
availability
verification of simTD platform and features:functionality, robustness,
efficiency, reliability
Testing distributed C2X applications – T3UC 201122.04.23 | 5
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 201122.04.23 | 6
Testing scope of the test bench
• Testing C2X scenarios in a laboratory environment- continuous integration- acceptance and regression testing
• Support for test automation
22.04.23 | 7
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
22.04.23 | 8
template C2XMessage c2xMessage(in id := sid, payload := { protocolVersion := 1, actionID := 100, cancelationFlag := false, generationTime := {t, 0}, validityDuration := 100, referencePosition := {longitude := {isE, protocolMsg := pm } }
IRSIRS
IVSIVS
Test Control
HMI
IVSIVS
ICT LSS
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
The test bed in the FOKUS automotive laboratory
22.04.23 | 9 Hier steht die Fußzeile
Architecture of the target hardware
22.04.23 | 10
Application Unit (AU)Application Unit (AU)
VAPIClient
VAPIClient
LDMLDM
C2X ApplicationsC2X Applications
COM ClientCOM Client
HMI ControllerHMI Controller
Communication Unit (CCU)Communication Unit (CCU)
VAPI*VAPI*WirelessManager
WirelessManager
GPSGPS
Router APIRouter API
CANCAN2G/3G2G/3G WLanWLan
SecuritySecurity
C2X ProtocolsC2X Protocols
LoggingAPI
LoggingAPI
Testing distributed C2X applications – T3UC 2011
* The Vehicle API (VAPI) is provided by Volkswagen
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.
22.04.23 | 11 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
22.04.23 | 12
IRSIRS
IVS2IVS2
IVS1IVS1
VAPIVAPI
LDMLDMTCTC
Test-PCTest-PC
Test Executable(TTCN-3)
Test Executable(TTCN-3)
TP API
TP API
C2X ApplicationsC2X Applications
LoggingAPI
LoggingAPI
LogsLogs
COM COM
Another Testtool
Another Testtool
HMI ControllerHMI Controller
VehicleSpeed,150
SimulatorSimulator
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 201122.04.23 | 13
Providing the vehicle state
22.04.23 | 14
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;
<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 hiwaMessage(int mID, PositionVector_TYPE originatorPos) := { 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}}} } } } } }}+++
template Message simpleMessage(int mID, PositionVector_TYPE originatorPos, 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"},
Testing distributed C2X applications – T3UC 201122.04.23 | 15
C2X message templates
template Message hiwaMessage(int mID, PositionVector_TYPE originatorPos) := { 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}}} } } } } }}+++
template Message sMessage(C2XAppPayload_TYPE p) := { sourceId := ?, messageId :=?, contentType := 31, contentSubType := 0, packetType := ?, transportOptions := {trafficClass := ?, priority := ?, repetitionInteval := ?, lifeTime := ?}, secOptions := ?,
22.04.23 | 16 Testing distributed C2X applications – T3UC 2011
Testing the characteristics of the protocol layer 802.11 p
Geographically-scoped broadcast
1.Configuration: 3 IVS
2.All IVS are stimulated with plausible vehicle data using the VAPI (e.g. constant speed and vehicle distance 600m).
3.Vehicle 3 sends a message (e.g. obstacle avoidance), which is addressed to a specific geographical area (e.g. 1200m ahead).
4.Check if vehicle 1 states the reception of the message and vehicle 2 not.
22.04.23 | 17
destination := { type_ := "circle", nodeId := 0, latitude1 := latVehicle1, longitude1 := longVehicle1,
size := 300 }
Testing distributed C2X applications – T3UC 2011
Testing one IVS: obstacle avoidance
22.04.23 | 18
haltVehicleT.start(2.0); emergencyAction := false;alt {[] tracesPort.receive(item:?) -> value lastTraceMsg { if (not emergencyAction) { lastFilteredPosition := lastTraceMsg.SimTD_FilteredPosition;} if (emergencyAction){ lastTraceMsg.SimTD_EmergencyLighting := { EmergencyLighting := {bool := true}}; …} ivsPort.send(lastTraceMsg); repeat;}[] loggingPort.receive(ereignisWarnung) -> value ccMsg { responseTimer.stop; setverdict(pass, "EinsatzfahrzeugWarnung received.");}[] loggingPort.receive(LogEntry:?) -> value genericLogEntry { repeat;}[] haltVehicleT.timeout { emergencyAction := true; repeat;}}
Reading trace data
Replay of modified trace data
Waiting for obstacle detection
Obstacle detection
• 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
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: TTworkbench from 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
22.04.23 | 19 Testing distributed C2X applications – T3UC 2011
Contact
22.04.23 | 20 Hier steht die Fußzeile
Jürgen GroßmannFraunhofer FOKUS
Kaiserin-Augusta-Allee 31,10589 BerlinTel: +49-30-3463-7390