Simulated Time for Host-Based Testing with TTCN-3 Stefan Blom (Innsbruck Univ.), Thomas Deiss (Nokia Research Center, NRC), Natalia Ioustinova (CWI), Ari.

Slides:



Advertisements
Similar presentations
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
Advertisements

Construction process lasts until coding and testing is completed consists of design and implementation reasons for this phase –analysis model is not sufficiently.
Background Virtual memory – separation of user logical memory from physical memory. Only part of the program needs to be in memory for execution. Logical.
More on Processes Chapter 3. Process image _the physical representation of a process in the OS _an address space consisting of code, data and stack segments.
TTCN-3 Based Automation Framework for LTE UE Protocol Stack Testing
Parallel and Distributed Simulation Global Virtual Time - Part 2.
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Timed Automata.
Leader Election Let G = (V,E) define the network topology. Each process i has a variable L(i) that defines the leader.  i,j  V  i,j are non-faulty.
WHAT IS AN OPERATING SYSTEM? An interface between users and hardware - an environment "architecture ” Allows convenient usage; hides the tedious stuff.
1st DWFTT - 21/06/05 - Amsterdam TT-Medal Project Overview Jaco van de Pol CWI, SEN 2 Amsterdam Stefan Blom, Jens Calamé, Wan Fokkink, Nicu Goga, Natalia.
Remote Procedure Call (RPC)
Sensor Network Platforms and Tools
Chapter 13 Embedded Systems
1 Complexity of Network Synchronization Raeda Naamnieh.
PTIDES: Programming Temporally Integrated Distributed Embedded Systems Yang Zhao, EECS, UC Berkeley Edward A. Lee, EECS, UC Berkeley Jie Liu, Microsoft.
Computer Science Lecture 12, page 1 CS677: Distributed OS Last Class Distributed Snapshots –Termination detection Election algorithms –Bully –Ring.
Group Communications Group communication: one source process sending a message to a group of processes: Destination is a group rather than a single process.
Diagnosis on Computational Grids for Detecting Intelligent Cheating Nodes Felipe Martins Rossana M. Andrade Aldri L. dos Santos Bruno SchulzeJosé N. de.
CPSC 668Set 16: Distributed Shared Memory1 CPSC 668 Distributed Algorithms and Systems Fall 2006 Prof. Jennifer Welch.
1 Soft Timers: Efficient Microsecond Software Timer Support For Network Processing Mohit Aron and Peter Druschel Rice University Presented By Jonathan.
Replication Management using the State-Machine Approach Fred B. Schneider Summary and Discussion : Hee Jung Kim and Ying Zhang October 27, 2005.
2/23/2009CS50901 Implementing Fault-Tolerant Services Using the State Machine Approach: A Tutorial Fred B. Schneider Presenter: Aly Farahat.
Chapter 13 Embedded Systems
Chapter 1 and 2 Computer System and Operating System Overview
Layered Diffusion based Coverage Control in Wireless Sensor Networks Wang, Bang; Fu, Cheng; Lim, Hock Beng; Local Computer Networks, LCN nd.
.NET Mobile Application Development Remote Procedure Call.
Introduction to Software Testing
Testing RAVEN Helmut Neukirchen Faculty of Industrial Engineering, Mechanical Engineering and Computer Science University of Iceland, Reykjavík, Iceland.
Computer Measurement Group, India Reliable and Scalable Data Streaming in Multi-Hop Architecture Sudhir Sangra, BMC Software Lalit.
- 1 -  P. Marwedel, Univ. Dortmund, Informatik 12, 2005/6 Universität Dortmund Specifications.
On Probabilistic Snap-Stabilization Karine Altisen Stéphane Devismes University of Grenoble.
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
Experience with Processes and Monitors in Mesa
LOGO OPERATING SYSTEM Dalia AL-Dabbagh
M i SMob i S Mob i Store - Mobile i nternet File Storage Platform Chetna Kaur.
FINAL MPX DELIVERABLE Due when you schedule your interview and presentation.
On Probabilistic Snap-Stabilization Karine Altisen Stéphane Devismes University of Grenoble.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
1. Validating Wireless Protocol Conformance Test Cases Amresh Nandan Paresh Jain June 2004.
An Approach To Automate a Process of Detecting Unauthorised Accesses M. Chmielewski, A. Gowdiak, N. Meyer, T. Ostwald, M. Stroiński
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Lecture 4: Sun: 23/4/1435 Distributed Operating Systems Lecturer/ Kawther Abas CS- 492 : Distributed system & Parallel Processing.
CS4231 Parallel and Distributed Algorithms AY 2006/2007 Semester 2 Lecture 8 Instructor: Haifeng YU.
Modeling and Simulation Discrete-Event Simulation
Testing Railway Interlockings with N. Ioustinova, J. van de Pol, N. Goga Centrum voor Wiskunde en Informatica Amsterdam, The Netherlands TT-Medal Review.
Page 1 Analysis of Asynchronous Systems Steven P. Miller Michael W. Whalen {spmiller, Advanced Computing Systems Rockwell.
TTCN-3 MOST Challenges Maria Teodorescu
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Global Time in Distributed Real-Time Systems Dr. Konstantinos Tatas.
Communicating Real-Time State Machines (CRSM) State machines that communicate synchronously Unique unidirectional channels are used for the communication.
Object Oriented Discrete-Event Simulation CS4730 Fall 2010 Jose M. Garrido Department of Computer Science and Information Systems Kennesaw State University.
A Software Framework for Distributed Services Michael M. McKerns and Michael A.G. Aivazis California Institute of Technology, Pasadena, CA Introduction.
Testing Railway Interlockings with TTCN-3 Stefan Blom University of Innsbruck Natalia Ioustinova,Jaco van de Pol
1 VxWorks 5.4 Group A3: Wafa’ Jaffal Kathryn Bean.
1 Distributed BDD-based Model Checking Orna Grumberg Technion, Israel Joint work with Tamir Heyman, Nili Ifergan, and Assaf Schuster CAV00, FMCAD00, CAV01,
Global Clock Synchronization in Sensor Networks Qun Li, Member, IEEE, and Daniela Rus, Member, IEEE IEEE Transactions on Computers 2006 Chien-Ku Lai.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Time Management.  Time management is concerned with OS facilities and services which measure real time.  These services include:  Keeping track of.
 Simulation enables the study of complex system.  Simulation is a good approach when analytic study of a system is not possible or very complex.  Informational,
Interrupts and Exception Handling. Execution We are quite aware of the Fetch, Execute process of the control unit of the CPU –Fetch and instruction as.
TTCN-3 Testing and Test Control Notation Version 3.
Fundamentals of Fault-Tolerant Distributed Computing In Asynchronous Environments Paper by Felix C. Gartner Graeme Coakley COEN 317 November 23, 2003.
Business Process Execution Language (BPEL) Pınar Tekin.
Topics Covered What is Real Time Operating System (RTOS)
Parallel and Distributed Simulation Techniques
DDoS Attack Detection under SDN Context
Operating Systems.
Software Engineering Group, Motorola India Electronics Pvt. Ltd.,
Presentation transcript:

Simulated Time for Host-Based Testing with TTCN-3 Stefan Blom (Innsbruck Univ.), Thomas Deiss (Nokia Research Center, NRC), Natalia Ioustinova (CWI), Ari Kontio (NRC), Jaco van de Pol (CWI), Axel Rennoch (FOKUS), Natalia Sidorova (TU/e)

Roadmap Motivation for host-based testing General structure of a TTCN-3 test system Simulated time for host-based testing Solution for host-based testing in simulated time with TTCN-3 Applications (transportation, telecom) Conclusion

Systems around us... Embedded Systems Distributed Systems

Many components/processes/services working in parallel Asynchronous communication Complex behavior driven by data and time limitations Open: in continuous interaction with the outside world Scalability etc. are complex and often unpredictable V&V Verification: are we building the product right? Validation: are we building the right product? (testing) (peer reviews)

Why host-based testing? Target environment: the environment where software is supposed to work Host environment: the environment used for developing the software Many of components do not exist until the latest phase of development => they are not always available for integration testing => testing in the target environment can be expensive and even dangerous host-based testing Find and fix as many errors as possible prior to testing in target environment => host-based testing

Host-based testing Host environment makes use of  simulated environments (1) (represent missing software/hardware components)  emulation of target OS services (2)  monitoring (3)  instrumentation (4) Time constraints are imposed on the system and its environment

Host-based testing Test results are adequate iff the effect of 1-3 on timed behavior of the system is negligible Simulators/emulators/monitoring/instrumentation with negligible effect are often expensive and system-specific In practice: probe effects are often “not negligible”  performance constraints (time limits on system) [target]  behavioral constraints (time limits on environment) [host] Here we focus on host-based testing of behavioral time-dependant features

TTCN-3 Test System

Timers in TTCN-3 Timer states: deactivated or active Active timer keeps information on time left until its expiration Timer operations: set, reset, timeout Time progression decreases time left until expiration of active timers When time left until expiration becomes 0, the timer expires Expiration results in producing a timeout (message) Timeout is enqueued at the component using the timer

Simulated Time Time is modeled by a discrete logical clock We work with systems where external delays are significantly larger compared to duration of computations within the system To obtain test results independent of probe effects we assume  instrumentation/monitoring are done at zero time  message passing, scheduling/synchronization and other emulated OS services are provided at zero time Actions are instantaneous => time progression has the least priority Time progresses by action tick decreasing the time left until expiration of active timers by one Periods between two ticks are time slice

Idleness We focus on closed systems (SUT+Test System) consisting of multiple components communicating with each other Local idleness: a component is idle iff it cannot proceed by performing computations, receiving messages or processing timeouts Global idleness: a closed system is idle iff all components are idle and there are no messages or timeouts pending

Challenge Time semantics in TTCN-3 has been intentionally left open to enable use of TTCN-3 with different time semantics Focus has been on using TTCN-3 for real time testing => existing TCI and TRI interfaces provide excellent support for real time but lack operations necessary for implementing simulated time. In simulated time all entities of TTCN-3 test system and SUT should agree on simulated time Time may progress only if the system is idle We need a mechanism that  detects global idleness of the closed system  progresses time if idleness is detected

Idleness of Closed System All components are idle No messages pending

Global Idleness of TTCN-3 test system All components are idle No messages pending from TS to SUT from SUT to TS from TSi to TSj from TEi to PAi & SAi from PAi & SAi to TEi

Distributed Termination Detection We extend DTD algorithm of Dijkstra-Safra to detect idleness and to progress time

Time Manager Initiates global idleness detection by sending a token consisting of a global message counter and a global flag along the ring. Initially, global message counter is 0 and the global flag has value IDLE_TAG. If time manager receives the token back with the global message counter equal to 0 and the global flag equal to IDLE_TAG, it detects global idleness. Otherwise, time manager repeats idleness detection. If global idleness is detected, time manager reactivates components in the new time slice, then progresses time by sending the token with flag TICK_TAG and restarts global idleness detection in the next time slice

idle flag Time Manager 0 idle Initially msg 0 idle sends a message to 4 4 and 1 update their message counters

idle flag 00 Time Manager 1 and 2 become idle 0 idle idle 1 updates the token 1 running 1 sends the token to the next running 1 1 updates local flag flag idle

flag 00 Time Manager idle 2 becomes idle and updates token running 1 flag 2 sends token to the next and updates local flag idle running 1 flag

idle flag 00 Time Manager idle 3 becomes idle and updates token flag 3 sends token to the next and updates local flag idle running 1 flag idle running 1 flag

idle flag 00 Time Manager idle flag 4 sends token to the next and updates local flag idle running 0 flag 4 updates token idle flag idle running 1 flag 0 Maybe one of the components is active, repeat detection 4 becomes idle flag

idle flag 00 Time Manager idle flag idle 0 flag idle flag idle flag The system is idle, progress time! idle flag idle

flag 00 Time Manager idle flag idle flag idle flag idle flag Reactivate components in the new time slice idle flag restart flag restart flag restart flag 0 restartflag 0 restart

idle flag 00 Time Manager idle flag idle flag idle flag idle flag Progress time idle flag tick flag tick flag tick flag 0 tickflag 0 tick Start new idleness detection round

TTCN-3 Test System

Simulated Time Interface Idle PAIdle(int TRISentPA, int TRIEnqdPA) SAIdle(int TRISentSA, int TRIEnqdSA, int SASentSUT, int SUTEnqdSA) TEIdle(int TRISentTE, int TRIEnqdTE, int TCISentTE, int TCIEnqdTE) Active PAActive() SAActive() TEActive()

Idleness Handler for TSi Counts number of messages exchanged by the TSi via TCI Counts number of messages exchanged by the TSi via TRI Counts number of messages exchanged by the TSi (actually SAi) with SUT Keeps idle variables for TEi, SAi and PAi Keeps flag variables for TEi and SAi If idleness token present, SAi/PAi/TEi are idle and there are no messages pending at TRI, then the idleness handler of a TSi detects local idleness of the TSi updates the idleness token and sends it to the next handler

Testing Railway Interlockings (FATES’05) Provide a framework for testing railway interlockings with TTCN-3 Railway Control System Apply the framework for testing interlocking software for Hoorn- Kersenboogerd station

Testing layer 3 of a 2G/3G

Conclusion We proposed host based testing with simulated time in TTCN-3 Possible to implement on the level of TTCN-3 code (FATES’05) Pro: does not require new interfaces Con: test suite is suitable for testing with simulated time only Proposed a solution on the level of adapters for distributed host-based testing Con: require new interface (submitted as change request to ETSI by Nokia) Pro: test suites are suitable for testing both in real and in simulated time