Conformance Test Experiments for Distributed Real-Time Systems Rachel Cardell-Oliver Complex Systems Group Department of Computer Science & Software Engineering.

Slides:



Advertisements
Similar presentations
© 2004 Wayne Wolf Topics Task-level partitioning. Hardware/software partitioning.  Bus-based systems.
Advertisements

COS 461 Fall 1997 COS 461: Networks and Distributed Computing u Prof. Ed Felten u u.
Design and Computer Modeling of Ultracapacitor Regenerative Braking System Adam Klefstad, Dr. Kim Pierson Department of Physics & Astronomy UW-Eau Claire.
Lab Meeting Performance Analysis of Distributed Embedded Systems Lothar Thiele and Ernesto Wandeler Presented by Alex Cameron 17 th August, 2012.
CPSC 668Set 14: Simulations1 CPSC 668 Distributed Algorithms and Systems Spring 2008 Prof. Jennifer Welch.
Chapter 13 Embedded Systems
Software Engineering for Real- Time: A Roadmap H. Kopetz. Technische Universitat Wien, Austria Presented by Wing Kit Hor.
© 2005 Prentice Hall7-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
Testing and Monitoring at Penn Testing and Monitoring Model-based Generated Program Li Tan, Jesung Kim, and Insup Lee July, 2003.
CPSC 668Set 16: Distributed Shared Memory1 CPSC 668 Distributed Algorithms and Systems Fall 2006 Prof. Jennifer Welch.
Scheduling for Embedded Real-Time Systems Amit Mahajan and Haibo.
Department of Electrical and Computer Engineering Texas A&M University College Station, TX Abstract 4-Level Elevator Controller Lessons Learned.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
WPDRTS ’05 1 Workshop on Parallel and Distributed Real-Time Systems 2005 April 4th and 5th, 2005, Denver, Colorado Challenge Problem Session Detection.
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Real-Time Kernels and Operating Systems. Operating System: Software that coordinates multiple tasks in processor, including peripheral interfacing Types.
1 Ivan Lanese Computer Science Department University of Bologna Italy Concurrent and located synchronizations in π-calculus.
Designing Predictable and Robust Systems Tom Henzinger UC Berkeley and EPFL.
November 18, 2004 Embedded System Design Flow Arkadeb Ghosal Alessandro Pinto Daniele Gasperini Alberto Sangiovanni-Vincentelli
CprE 458/558: Real-Time Systems
Misconceptions About Real-time Computing : A Serious Problem for Next-generation Systems J. A. Stankovic, Misconceptions about Real-Time Computing: A Serious.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
An Introduction to Rational Rose Real-Time
EMBEDDED SOFTWARE Team victorious Team Victorious.
Process-oriented System Automation Executable Process Modeling & Process Automation.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Computer System Lifecycle Chapter 1. Introduction Computer System users, administrators, and designers are all interested in performance evaluation. Whether.
1 Real-Time Queueing Network Theory Presented by Akramul Azim Department of Electrical and Computer Engineering University of Waterloo, Canada John P.
University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec22 1 Lecture 22: Software Measurement Basics of software measurement.
Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Instructore: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Concurrent and.
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Real Time Process Control (Introduction)
Software Engineering 2003 Jyrki Nummenmaa 1 REQUIREMENT SPECIFICATION Today: Requirements Specification Requirements tell us what the system should.
ECE 720T5 Winter 2014 Cyber-Physical Systems Rodolfo Pellizzoni.
Software Engineering Chapter 23 Software Testing Ku-Yaw Chang Assistant Professor Department of Computer Science and Information.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 16 System Architecture and Design II.
1. Introduction 1.1 Background 1.2 Real-time applications 1.3 Misconceptions 1.4 Issues in real-time computing 1.5 Structure of a real-time system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
CS4730 Real-Time Systems and Modeling Fall 2010 José M. Garrido Department of Computer Science & Information Systems Kennesaw State University.
Software Engineering – University of Tampere, CS DepartmentJyrki Nummenmaa REQUIREMENT SPECIFICATION Today: Requirements Specification.
© Oxford University Press 2011 DISTRIBUTED COMPUTING Sunita Mahajan Sunita Mahajan, Principal, Institute of Computer Science, MET League of Colleges, Mumbai.
EEL Software development for real-time engineering systems.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Scheduling policies for real- time embedded systems.
Chapter 101 Multiprocessor and Real- Time Scheduling Chapter 10.
Ch. 2. Specification and Modeling 2.1 Requirements Describe requirements and approaches for specifying and modeling embedded systems. Specification for.
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
1 Black-box conformance testing for real-time systems Stavros Tripakis VERIMAG Joint work with Moez Krichen.
CS4730 Real-Time Systems and Modeling Fall 2010 José M. Garrido Department of Computer Science & Information Systems Kennesaw State University.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
OPERATING SYSTEMS CS 3530 Summer 2014 Systems and Models Chapter 03.
CSCI1600: Embedded and Real Time Software Lecture 28: Verification I Steven Reiss, Fall 2015.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Course: Software Engineering – Design I IntroductionSlide Number 1 What is a specification Description of a (computer) system, which:  is precise;  defines.
Parallelizing Functional Tests for Computer Systems Using Distributed Graph Exploration Alexey Demakov, Alexander Kamkin, and Alexander Sortov
Agenda  Quick Review  Finish Introduction  Java Threads.
Embedded Real-Time Systems Processing interrupts Lecturer Department University.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
 System Requirement Specification and System Planning.
CHaRy Software Synthesis for Hard Real-Time Systems
OPERATING SYSTEMS CS 3502 Fall 2017
Methodological Issues in Model-Based Testing (MBT)
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
Software testing.
CS 501: Software Engineering Fall 1999
CSCI1600: Embedded and Real Time Software
Presentation transcript:

Conformance Test Experiments for Distributed Real-Time Systems Rachel Cardell-Oliver Complex Systems Group Department of Computer Science & Software Engineering The University of Western Australia July 2002

Talk Overview Research Goal: to build correct distributed real-time systems 1. Distributed Real-Time Systems 2. Correctness: Formal Methods & Testing 3. Experiments: A New Test Method

1. Distributed Real-Time Systems

Real Time Reactions

Distributed

System Characteristics React or interact with their environment Must respond to events within fixed time Distributed over two or more processors Fixed network topology Each processor runs a set of tasks Processors embedded in other systems Built with limited HW & SW resources

Testing Issues for these Systems Many sources of non-determinism  2 or more processors with independent clocks  Set of tasks scheduled on each processor  Independent but concurrent subsystems  Inputs from uncontrolled environment e.g. people  Limited resources affects test control e.g. speed Our goal: to develop robust test specification and execution methods

2. Correctness: Formal Methods & Testing

Goal: Building Correct Systems Design (intended behaviour) Implementation behaves like this?

Software Tests are experiments designed to answer the question “does this implementation behave as intended?” Defect tests are tests which try to try to force the implementation NOT to behave as intended Our focus is to specify and execute robust defect tests

Related Work on Test Case Generation Chow TSE 1978 deterministic Mealy FSM Clarke & Lee 1997 timed requirements graphs Neilsen TACAS 2000 event recording automata Cardell-Oliver FACJ 2000 Uppaal timed automata Specific experiments are described by a test case: a timed sequence of inputs and outputs Non-determinism is not handled well (if at all) Not robust enough for our purposes

3. Experiments: A New Test Method

Our Method for Defect Testing 1. Identify types of behaviour which are likely to uncover implementation defects (e.g. extreme cases) 2. Describe these behaviours using a formal specification language 3. Translate the formal test specification into a test program to run on a test driver 4. Connect the test driver to the system under test and execute the test program 5. Analyse test results (on-the-fly or off-line)

Example System to Test

Step 1 – Identify interesting behaviours Usually extreme behaviours such as Inputs at the maximum allowable rate Maximum response time to events Timely scheduling of tasks

Example Property to Test Whenever the light level changes from low to high then the valve starts to open within 60cs assuming the light level alternates between high and low every 100cs

Step 2 – choose a formal specification language which is able to model  real-time clocks  persistent data  concurrency and communication use Uppaal Timed Automata (UTA)

Example UTA for timely response m:=0

Writing Robust Tests with UTA Test cases specify all valid test inputs  no need to test outside these bounds Test cases specify all expected test outputs  if an output doesn’t match then it’s wrong No need to model the implementation explicitly Test cases may be concurrent programs Test cases are executed multiple times

Step 3. Translate Spec to Exec UTA specs are already program-like Identify test inputs and how they will be controlled by the driver Identify test outputs and how they will be observed by the driver then straightforward translation into NQC (not quite C) programs

Example NQC for timely response task dolightinput() { while (i<=MAXRUNS) { Wait(100); setlighthigh(OUT_C); setlighthigh(OUT_A); record(FastTimer(0),HIGH- LIGHT); i++; Wait(100); setlightlow(OUT_C); setlightlow(OUT_A); record(FastTimer(0),LOW- LIGHT); i++; }// end while }// end task task monitormessages() { while (i<=MAXRUNS) { monitor (EVENT_MASK(1)) { Wait(LONGINTERVAL); } catch (EVENT_MASK(1)) { record(FastTimer(0), Message()); i++; ClearMessage(); } } // end while } // end task

Step 4 –test driver

Step 4 - connect tester and execute tests

Step 5: Analyse Results

Scheduling Deadlines Test Results

Concluding Observations Defect testing requires active test drivers able to control extreme inputs and observe relevant outputs Test generation methods must take into account the constraints of executing test cases  Robust to non-determinism in the SUT  Measure what can be measured Engineers must design for testability

Results 1: Observation Issues Things you can’t see Probe effect Clock skew Tester speed

Things you can’t see Motor outputs can’t be observed directly because of power drain  so we used IR messages to signal motor changes But we can observe  touch & light sensors via piggybacked wires  broadcast IR messages

The probe effect We can instrument program code to observe program variables but the time taken to record results disturbs the timing of the system under test Solutions  observe only externally visible outputs  design for testability: allow for probe effects

Clock Skew Clocks may differ for local results from two or more processors Solutions:  user observations timed only by the tester  including tester events gives a partial order

Tester speed Tester must be sufficiently fast to observe and record all interesting events Beware  scheduling and monitoring overheads  execution time variability Solution: use NQC parallel tasks and off-line analysis for speed

Results 2: Input Control Issues Input value control Input timing control

Input Values can be Controlled Touch sensor input (0..1)  good by piggybacked wire Light sensor input (0..100)  OK by piggybacked wire Broadcast IR Messages  good from tester Also use inputs directly from the env.  natural light or button pushed by hand

Input Timing Control is hard to control Can’t control input timing precisely  e.g. offered just before SUT task is called Solution: Run tests multiple times and analyse average and spread of results Can’t predict all system timings for a fully accurate model  c.f. WCET research, but our problem is harder

Conclusions from Experiments Defect testing requires active test drivers able to control extreme inputs and observe relevant outputs Test generation methods must take into account the constraints of executing test cases  Robust to non-determinism in the SUT  Measure what can be measured Engineers must design for testability