Diagnosis of V2X communication via evaluation modules and textual rule sets Presented by Tim Ruß © All rights reserved.

Slides:



Advertisements
Similar presentations
Grey Box testing Tor Stålhane. What is Grey Box testing Grey Box testing is testing done with limited knowledge of the internal of the system. Grey Box.
Advertisements

Actors and use cases Use-case diagram Brief notation Prioritization Fully dressed notation Requirements Functional requirements  Use-cases.
Practical Object-Oriented Design with UML 2e Slide 1/1 ©The McGraw-Hill Companies, 2004 PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e Chapter 5: Restaurant.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Capturing the requirements
Modelling with Coloured Petri Nets Søren Christensen Department of Computer Science University of Aarhus.
THE OBJECT-ORIENTED DESIGN WORKFLOW Statechart Diagrams.
Monitoring systems COMET types MS55 & MS6 MS55/MS6 Configuration.
Chapter 13 & 14 Software Testing Strategies and Techniques
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Intro to Software System Modeling
Software Construction Lecture 18 Software Testing.
7 Systems Analysis and Design in a Changing World, Fifth Edition.
What to remember from Chap 13 (Logical architecture)
William Stallings Data and Computer Communications
3.2 Software Fundamentals. A protocol is a formal description of digital message formats and the rules for exchanging those messages in or between computing.
1 Graph Coverage (6). Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Section
Software Engineering 2004 Jyrki Nummenmaa 1 BACKGROUND There is no way to generally test programs exhaustively (that is, going through all execution.
Systems Analysis and Design in a Changing World, Fourth Edition
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
UML - Development Process 1 Software Development Process Using UML.
Capturing Requirements. Questions to Ask about Requirements 1)Are the requirements correct? 2)Consistent? 3)Unambiguous? 4)Complete? 5)Feasible? 6)Relevant?
THE EYESWEB PLATFORM - GDE The EyesWeb XMI multimodal platform GDE 5 March 2015.
SOFTWARE TESTING AND QUALITY ASSURANCE. Software Testing.
GEANT OpenCall – NSI CONTEST NSI CONTEST – Demonstrator Giacomo Bernini Nextworks GENI Networking Conference 22, March 2015, Washington DC.
WP4 Models and Contents Quality Assessment
Architecture Review 10/11/2004
Avoiding Redundancy in the Management of Technical Documentation and Models: Requirements Analysis and Prototypical Implementation for Enterprise Architecture.
Software Testing.
Monitoring systems COMET types MS55 & MS6
Software Overview Sonja Vrcic
TQS - Teste e Qualidade de Software (Software Testing and Quality) Test Case Design – Model Based Testing João Pascoal.
CS408/533 Computer Networks Text: William Stallings Data and Computer Communications, 6th edition Chapter 1 - Introduction.
Main issues: • What do we want to build • How do we write this down
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Programmable Logic Controllers: I/O
Channel Control Interim substates for adding new slaves
VIEWS II: Motivation and Plans for a Revised Validation Service
Chapter 8 – Software Testing
Graph Coverage for Specifications CS 4501 / 6501 Software Testing
SIMPL-T: SDL Intended for Management and Planning of Tests By
Understanding the OSI Reference Model
Chapter 13 & 14 Software Testing Strategies and Techniques
CAE-SCRUB for Incorporating Static Analysis into Peer Reviews
Packet Sniffing.
Entering a Budget Journal Voucher in Banner 9
Chapter 3: Open Systems Interconnection (OSI) Model
UML Activity Diagrams & State Charts
Software testing strategies 2
Workflow Management Systems
Use Cases 1.
Software testing.
Analysis models and design models
Graph Coverage for Specifications CS 4501 / 6501 Software Testing
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Fundamentals of Python: First Programs
Decentralized Model-Based Testing of Distributed Systems
Overview of the ETSI Test Description Language
Overview of the ETSI Test Description Language
PSS verification and validation
CSE 1020:Software Development
PSS0 Configuration Management,
New Tools In Education Minjun Wang
TS2 PSS Software Requirements and Software Design
System architecture, Def.
Exceptions and networking
Petri Nets Laurie Frazier.
Chapter 13 & 14 Software Testing Strategies and Techniques 1 Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Infokall Enterprise Solutions
Presentation transcript:

Diagnosis of V2X communication via evaluation modules and textual rule sets Presented by Tim Ruß © All rights reserved

Motivation © All rights reserved

ifak: Institute for Automation and Communication Applied research Test laboratories User Conference on Advanced Automated Testing © All rights reserved

Examples for our communication domains Factory Automation Vehicle-to-X (also: Car2X) Device Controller User Conference on Advanced Automated Testing Right image © CAR 2 CAR Communication Consortium © All rights reserved Left images © Phoenix Contact

Manual process: Checking Wireshark records Search for connection / startup sequence Search for errors (alarms, connection releases…)  Demand to automate such processes User Conference on Advanced Automated Testing © All rights reserved

Advanced Automated Testing Agenda Scope and methods Approach Use case Summary - present some techniques like Python, ANTLR(?) User Conference on Advanced Automated Testing © All rights reserved

Scope and methods © All rights reserved

Advanced Automated Testing Scope and terminology Network communication of distributed (computer) systems: OSI reference model Protocol Data Units of higher levels: “messages” “Checking” those messages: Verification: If a specification is correct according to the design. Prior to the implementation. Validation: Check if customer expectations fulfilled Conformance check: Check if an implementation matches the underlying specification User Conference on Advanced Automated Testing Image © CC BY-SA © All rights reserved

Testing methods for software (e.g. source code) Architecture: Test system around System Under Test (SUT) Stimulation via input parameters Check of states or return values E.g. Unit Tests Coverage criteria E.g. check program execution paths Test System Stimulation SUT Check User Conference on Advanced Automated Testing © All rights reserved

Testing network protocols Fuzzing: Generate random input/network data Conformance check Replace other protocol layers with test system (upper tester, lower tester) Run subsequent test cases… Difficult for already running systems without test interfaces Demand for diagnosis after commissioning User Conference on Advanced Automated Testing © All rights reserved

Protocol specifications given in different formats Example: Generation frequency of V2X status messages (CAMs) as plain text: User Conference on Advanced Automated Testing © All rights reserved

Formal graphical descriptions for network protocols (1) Time Flow Charts Sequence Charts Service User Service Provider Service User Connect Request Connect Indication Connect Response Connect Confirm User Conference on Advanced Automated Testing © All rights reserved

Formal graphical descriptions for network protocols (2) Finite State Machines Petri nets Transition Pre-place Post-place Arc Token s0 s1 Aim: Check requirements and errors at the same time (like parallel test cases, but not all have to be executed)  diagnosis User Conference on Advanced Automated Testing © All rights reserved

Approach © All rights reserved

Advanced Automated Testing 100101 1101001 Approach: Using a Petri net to compare network messages against requirements Network messages Continuously, at runtime Lorem ipsum dolor sit amet, consectetur adipisici elit… / Once, before-hand Requirements Petri net Verdict User Conference on Advanced Automated Testing Images © CC BY-SA © All rights reserved

Case 1: Check a sequence of messages Global start place (init) Example: “A connect request is followed by a connect response.” Connect request Connect response Global end place (success) User Conference on Advanced Automated Testing © All rights reserved

Case 2: Check parameter values within messages Example: “The ErrorCode of the response must be 0.” Response Response [ErrorCode == 0] [ErrorCode != 0] (success) (error) User Conference on Advanced Automated Testing © All rights reserved

Whole toolchain & workflow System Under Test Whole toolchain & workflow Messages Decoder C++, PCAP User/ Tester Textual „rules“ Parser Petri net generator Firing transitions Verdicts Currently own DSL ANTLR C++, (Python) User Conference on Advanced Automated Testing © All rights reserved

Creation of structures via subnets Structures for control flow, e.g. from UML Sequence Diagrams Considered most important: Alternatives (“alt”) Parallels (“par”) Loops (“loop”) Errors (“not”) Start and end places as interfaces between structures User Conference on Advanced Automated Testing © All rights reserved

Description of net creation with Python Text Mathematical Python „A net N consists of places P, transitions T and flow relations F.“ N = (P; T; F) class Petrinet : def __init__ (self): self.places = [] self.transitions = [] self.arcs = [] User Conference on Advanced Automated Testing © All rights reserved

Advanced Automated Testing def createPar(self, interfaces, operandCount): startTrans = self.petrinet.addTransition() self.petrinet.addArc(interfaces.getStartPlace(), startTrans) endTrans = self.petrinet.addTransition() self.petrinet.addArc(endTrans, interfaces.getEndPlace()) operands = [] for i in range(0, operandCount): operandStartPlace = self.petrinet.addPlace() self.petrinet.addArc(startTrans, operandStartPlace) operandEndPlace = self.petrinet.addPlace() self.petrinet.addArc(operandEndPlace, endTrans) operandInterfaces = NetInterfaces(operandStartPlace, operandEndPlace) operands.append(operandInterfaces) return operands possible interfaces to other structures User Conference on Advanced Automated Testing © All rights reserved

Use Case © All rights reserved

Use Case: Vehicle-to-X communication (V2X) Vehicles send out status messages periodically (Cooperative Awareness Messages, CAM) Monitoring modules shall capture and check messages according to user defined rules First prototype New version User Conference on Advanced Automated Testing © All rights reserved

User-selected requirements for CAM payload User defined: StationType == 11 (Tram) From CAM protocol specification: 1 Hz ≤ f ≤ 10 Hz User Conference on Advanced Automated Testing © All rights reserved

Check the vehicle role (1) Start of alternative “Every CAM shall have a station type of 1.” CAM [StationType == 1] CAM [StationType != 1] End of alternative Error User Conference on Advanced Automated Testing © All rights reserved

Check the vehicle role (2) Loop start Check the vehicle role (2) Alt start “Every CAM shall have a station type of 1.” Repeat loop [i < max] … Alt end Leave loop [i > max] Loop end User Conference on Advanced Automated Testing © All rights reserved

Check the message interval (1) Alt start “The transmit frequency shall always be between 1 Hz and 10 Hz.” CAM [∆t <= 1000 ms && ∆t >= 100 ms] CAM [∆t > 1000 ms || ∆t < 100 ms] ∆t = tCAM(n) – tCAM(n-1) Alt end Error User Conference on Advanced Automated Testing © All rights reserved

Check the message interval (2) Loop start Check the message interval (2) Alt start “The transmit frequency shall always be between 1 Hz and 10 Hz.” Repeat loop [i < max] … Alt end Leave loop [i > max] Loop end User Conference on Advanced Automated Testing © All rights reserved

Check parameter and frequency Global start Parameter loop start Frequency loop start … … Loop end Loop end Global end (all processes finished) User Conference on Advanced Automated Testing © All rights reserved

Summary © All rights reserved

Advanced Automated Testing Summary Requirement / rule … Start End Check several requirements and detect errors at the same time  Diagnosis User-selected requirements as “rules” Petri subnets with interface places Connect subnets React to decoded messages (move tokens), create verdicts User Conference on Advanced Automated Testing © All rights reserved

Thank you for your kind attention Tim Ruß tim.russ@ifak.eu © All rights reserved

Advanced Automated Testing (Backup) User Conference on Advanced Automated Testing © All rights reserved

Advanced Automated Testing Example for DSL import <denm_cancelation.components> as stations Rule { name: "DENM Cancelation"; description: "Abkündigung einer DENM prüfen" Declaration { Signal { name: "V2X_DENM"; use DENM.causeCode as cause; } sequence { Loop [3] { Message CyclistWarning(from == rsu and to == car1); Message CyclistWarning(from == rsu and to == Any); Message CyclistWarning(from == rsu and to == Any and canceled == true); User Conference on Advanced Automated Testing © All rights reserved