How To Test Automatically

Similar documents
Information and Communications Technology Courses at a Glance

Formal Software Testing. Terri Grenda, CSTE IV&V Testing Solutions, LLC

Model-based Testing of Automotive Systems

Contents. System Development Models and Methods. Design Abstraction and Views. Synthesis. Control/Data-Flow Models. System Synthesis Models

From Control Loops to Software

Software Development Workflow in Robotics

A Static Analyzer for Large Safety-Critical Software. Considered Programs and Semantics. Automatic Program Verification by Abstract Interpretation

Compliance and Requirement Traceability for SysML v.1.0a

The SPES Methodology Modeling- and Analysis Techniques

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Designing Real-Time and Embedded Systems with the COMET/UML method

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

Automotive Software Engineering

EMC Publishing. Ontario Curriculum Computer and Information Science Grade 11

Introducing Formal Methods. Software Engineering and Formal Methods

SOFTWARE TESTING. A Craftsmcm's Approach THIRD EDITION. Paul C. Jorgensen. Auerbach Publications. Taylor &. Francis Croup. Boca Raton New York

Towards a Framework for Generating Tests to Satisfy Complex Code Coverage in Java Pathfinder

Part I. Introduction

R214 SPECIFIC REQUIREMENTS: INFORMATION TECHNOLOGY TESTING LABORATORY ACCREDITATION PROGRAM

Cost Model: Work, Span and Parallelism. 1 The RAM model for sequential computation:

Experimental Comparison of Concolic and Random Testing for Java Card Applets

RATP safety approach for railway signalling systems

Chapter 4 Software Lifecycle and Performance Analysis

How To Test On A Model Driven Test On An Embedded System

Software testing. Objectives

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Introduction to Embedded Systems. Software Update Problem

Design of automatic testing tool for railway signalling systems software safety assessment

Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification

Application of UML in Real-Time Embedded Systems

Software Testing. Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program.

Static Program Transformations for Efficient Software Model Checking

Test Driven Mobile Applications Development

Software Engineering Reference Framework

Programming A PLC. Standard Instructions

Testing automation of projects in telecommunication domain

InvGen: An Efficient Invariant Generator

Introduction to Automated Testing

AUTOMATED TEST GENERATION FOR SOFTWARE COMPONENTS

Standard for Software Component Testing

Software Engineering

Automated Model Based Testing for an Web Applications

Module 10. Coding and Testing. Version 2 CSE IIT, Kharagpur

Verifying Semantic of System Composition for an Aspect-Oriented Approach

Systolic Computing. Fundamentals

Development of AUTOSAR Software Components within Model-Based Design

How To Develop Software

A Classification of Model Checking-based Verification Approaches for Software Models

Model-Driven Software Development for Robotics: an overview

TESSY Automated dynamic module/unit and. CTE Classification Tree Editor. integration testing of embedded applications. for test case specifications

Certification of a Scade 6 compiler

fakultät für informatik informatik 12 technische universität dortmund Data flow models Peter Marwedel Informatik 12 TU Dortmund Germany

Verification by. Simulation. Verification by. Simulation. Verification by. Simulation / Model Check. Validation and Testing.

Model Based System Engineering (MBSE) For Accelerating Software Development Cycle

Model Checking based Software Verification

MODEL DRIVEN DEVELOPMENT OF BUSINESS PROCESS MONITORING AND CONTROL SYSTEMS

ARIZONA CTE CAREER PREPARATION STANDARDS & MEASUREMENT CRITERIA SOFTWARE DEVELOPMENT,

Division of Mathematical Sciences

Verifying Real-Time Embedded Software by Means of Automated State-based Online Testing and the SPIN Model Checker Application to RTEdge Models

Design principles in Test Suite Architecture

Weighted Total Mark. Weighted Exam Mark

Formal Verification and Linear-time Model Checking

Rules and Business Rules

Applying 4+1 View Architecture with UML 2. White Paper

THREE YEAR DEGREE (HONS.) COURSE BACHELOR OF COMPUTER APPLICATION (BCA) First Year Paper I Computer Fundamentals

Introduction to Formal Methods. Các Phương Pháp Hình Thức Cho Phát Triển Phần Mềm

MEng, BSc Applied Computer Science

Different Approaches to White Box Testing Technique for Finding Errors

Embedded/Real-Time Software Development with PathMATE and IBM Rational Systems Developer

ESE566 REPORT3. Design Methodologies for Core-based System-on-Chip HUA TANG OVIDIU CARNU

Why is SAS/OR important? For whom is SAS/OR designed?

System modeling. Budapest University of Technology and Economics Department of Measurement and Information Systems

Reliability Guarantees in Automata Based Scheduling for Embedded Control Software

The Software Development Process

Analytics for Performance Optimization of BPMN2.0 Business Processes

FPGA area allocation for parallel C applications

One LAR Course Credits: 3. Page 4

Introduction to Engineering System Dynamics

SYSTEMS, CONTROL AND MECHATRONICS

A Modular Representation of a Business Process Planner

i. Node Y Represented by a block or part. SysML::Block,

Introduction to Computers and Programming. Testing

(BA122) Software Engineer s Workshop (SEW)

AC REUSABLE SOFTWARE COMPONENTS

BUSINESS RULES CONCEPTS... 2 BUSINESS RULE ENGINE ARCHITECTURE By using the RETE Algorithm Benefits of RETE Algorithm...

A Lab Course on Computer Architecture

Introduction of ISO/DIS (ISO 26262) Parts of ISO ASIL Levels Part 6 : Product Development Software Level

Software Engineering. System Modeling

Structure of Presentation. Stages in Teaching Formal Methods. Motivation (1) Motivation (2) The Scope of Formal Methods (1)

Axiomatic design of software systems

Business-Driven Software Engineering Lecture 3 Foundations of Processes

MEng, BSc Computer Science with Artificial Intelligence

Transcription:

Automated Model-Based Testing of Embedded Real-Time Systems Jan Peleska jp@tzi.de University of Bremen Bieleschweig Workshop 7 2006-05-05

Outline Technologie-Zentrum Informatik Objectives Basic concepts and definitions Conventional versus model-driven development and test cycle Overall Goals for Testautomation Resulting Major Work Packages Solutions: Intermediate model representation Solutions: Test case/test data generation Solutions: Tools chain Test case generation and test oracles for reactive real-time systems Test data generation Conclusion and ongoing research Jan Peleska 2

Objectives Methods, software tools and hardware test benches for Automated test case generation, Automated test oracles (= Checkers for SUT behaviour), Automated test data generation for reactive real-time systems SUT = System Under Test Jan Peleska 3

Basic concepts and definitions (1) Trustworthy test system sound and complete: For each deviation of SUT behaviour from its specification, a test case uncovering this behaviour will finally be executed System under test (SUT) which complies with its specification is never rejected in a test execution Combinational systems: Behaviour is specified by a Boolean mapping from inputs to outputs no dependencies on internal state State-based real-time systems: Behaviour depends on internal state one or more clocks (timers) are managed to control timed input/output behaviour Hybrid systems: Both time-discrete and time-continuous observables are managed Jan Peleska 4

Basic concepts and definitions (2) Specification-Based (Black-Box) Testing. Test cases, associated data and checkers against expected results are derived from system-/software-/module- requirements specification. Structural (White-Box) Testing. Test cases and associated data are derived from Code control structure (if-else, switch, while) of isolated methods (functions, procedures) Main focus in the railway domain: decision coverage (C1) Main focus for avionic software: multiple condition/decision coverage (MCDC) Control coupling among methods (f() calls g()) Control coupling among tasks (P sends message to Q) Data coupling (method accesses global data) Jan Peleska 5

Basic concepts and definitions (3) Examples for specification formalisms: Composite structure diagrams architecture, including interfaces and parallelism Class diagrams UML2.0 Statecharts extended by state invariants and flow conditions about time-continuous behaviour in the HybridUML profile Temporal logics or trace assertions implicit assertions about admissible I/O sequences and state transitions Method bodies specified in OCL implicit assertions about method functionality C/C++, Java etc. explicit low-level specification Pseudocode explicit higher-level specification Object diagrams and Configuration data (= Projektierung ) describing concrete instances of generic systems Jan Peleska 6

Basic concepts and definitions (4) Test levels Unit Test (= Module Test) Software Integration Test (SWI-Test) Hardware-/Software Integration Test (HSI Test) Jan Peleska 7

Conventional Development & Test Cycle Software Requirements manual Functional/ Robustness Test Cases manual SW & HW/SW Integration Test (Functional) manual Architectural SW Design SW Integration Test (Structural) manual Module Design manual Functional Module Test Cases manual Module Test Functional & Structural manual Code Jan Peleska 8

Model-Driven Development & Test Cycle PIM Platform Independent Model PSM Platform Specific Model semi automatic automatic automatic Functional/ Robustness Test Cases Functional Module Test Cases automatic SW&HW/SW Integration Test (Functional) SW Integration Test (Structural) Code Module Test Functional & Structural Jan Peleska 9

Conventional versus Model-Based Testing (1) Merits of the conventional development & test cycle: Manual activities performed by independent experts introduced redundant specifications : test cases were developed as partial functional requirements This redundancy helped to validate the specifications Manually developed structural tests helped to verify the architecture and code structure Jan Peleska 10

Conventional versus Model-Based Testing (2) For model-driven development & testing, the redundancy has to be introduced in the model, because test cases and associated data are derived in an automatic way: Functional/architectural Model Level: Temporal logic, trace logic in addition to behavioural and structural models (e. g. Statecharts, Composite Structure Diagrams) Module Level: Implicit specifications (e. g. OCL) in addition to explicit code Most of these consistency checks can be performed on model level, without executing the generated code!, but...... the implicit specifications will hardly ever be complete so correctness of checks does not imply model correctness! Jan Peleska 11

Conventional versus Model-Based Testing (3) The consequence for the model-driven approach: Two focal points for testing in the future, Testing on model level software tests in simulation environment complemented by model checking and automated theorem proving: Detect logical failures Hardware-in-the-Loop testing on HW/SW integration and system integration level: detect Failures in interface handling Failures in arithmetics on target processors Failures in memory management Failures in real-time behaviour Jan Peleska 12

Conventional versus Model-Based Testing (4) Testing the code against the original model is of minor importance, since mature code generators are / will become highly reliable The model will always remain an approximation of the real target environment! Jan Peleska 13

Overall Goals for Testautomation (1) Currently, our main goals and recently completed developments are: 1. Automated Test Case Generation for Specification-Based Testing Test Case formal specification of situation to be tested uses data abstraction Objective (1.1): generate test cases from abstract specification models such as HybridUML, Timed CSP Objective (1.2): make generation mechanisms easily available for variety of specification formalisms Ojective (1.3): Provide mechanisms to influence automated test case generation by available expert knowledge Jan Peleska 14

Overall Goals for Testautomation (2) 2. Automated Test Data Generation Test data concrete data to be used at interfaces to/from SUT and for checking SUT reactions against expected results Objective (2.1): generate concrete test data from abstract test cases data refinement Objective (2.2): generate concrete test data for structural testing of code Objective (2.3): make generation mechanisms of (2.2) easily available for different programming languages C, C++, Java, Assembler Observation: (2.1) is of currently of minor importance since Case Tools mostly use concrete programming languages to describe events, conditions and actions Jan Peleska 15

Overall Goals for Testautomation (3) 3. Automated Test Oracles Check SUT behaviour when executing test cases with concrete test data Checks have to be performed against one of the following types of specifications: Explicit specification model which is assumed to be correct for example validated beforehand by means of model checking Redundant explicit specification model generated by the test team Implicit specifications: Temporal logic formulae Trace logic Pre-/post conditions Regular expressions Jan Peleska 16

Resulting Major Work Packages (1) WP01: Intermediate representation model RT-Tester IRM IRM an infrastructure for test generation and test evaluation algorithms Based on transition systems represented as collections of graphs May consist of various sub-models WP02: Transformers to IRM HybridUML, Timed CSP, Scade, C, C++, Java, Assembler IRM WP03: IRM symbolic simulator IRM-SYSI Symbolic expression evaluation Determination of coverage achieved for given input data and timing behaviour Jan Peleska 17

Resulting Major Work Packages (2) WP04: IRM loop expansion generator IRM-LEG Expands cycles in the IRM until fixpoint is reached WP05: IRM path condition generator IRM-PCG Create logical expressions for data and timing conditions suitable for covering a path through the IRM WP06: IRM composer IRM-COP Combines different IRM sub models for global test generation Delegates sub-tasks of the global test data generation to sub-models and their generators Jan Peleska 18

Resulting Major Work Packages (3) WP07: PCG solver collection IRM-SLV Determines which concrete input data and timing conditions to be used, in order to cover a specific path in the IRM Observe that the general problem requires constraints solving for non-linear mixed Boolean-Discrete-Time-continuous problems: if ( a and not(b or c) and (i1 < 3*i2*i3) and (expf(x@now * y@now) > x@(now-delta)*expf(y@(now-delta)) ) {... } Enforces test data generation heuristics like Boundary value testing constraint solving with different objective functions to maximise Data generation from different equivalence classes each class defined by different constraint Jan Peleska 19

Resulting Major Work Packages (4) WP08: Path generators IRM-PG Construct specific paths through the IRM, in order to fulfil certain coverage or correctness criteria with the generated test data PG0: path generator to achieve state coverage Statement coverage C0 in code coverage testing Unknown meaning in specification-based testing? PG1: path generator to achieve transition coverage Multiple condition/decision coverage MC/DC in code coverage testing Requirements coverage in specification-based testing PG2: (Timed) W method and derivatives To demonstrate model equivalence in specification-based testing Would exercise every possible transition from every possible program state in code coverage testing no practical application possible here? Jan Peleska 20

Resulting Major Work Packages (5) WP08: Path generators IRM-PG (continued) Statistic path generation (M.-C. Gaudel) Guarantees good distribution of a random selection of paths to be exercised in the tests when exhaustive path coverage is impossible Jan Peleska 21

Resulting Major Work Packages (6) WP09: Data Flow Analyser IRM-DFA Helps to determine which objects influence the path selection performed by the SUT Avoids unnecessary expansion of loops in the IRM WP10: SAT or/and OBDD solver Helps to identify logically impossible solutions before starting constraint solver May generate the test data for Boolean or mixed Boolean/integer problems Jan Peleska 22

Resulting Major Work Packages (7) WP11: Stub Generator accepting behavioural specifications Generates stubs from specification of input parameter constraints ( expected input values ) for each stub call in a sequence specification of explicit return values / writes to reference values for each stub call in a sequence specification of constraints referring to (1) position of stub call in the call sequence, (2) logical formulae referring to input and output parameters and global variables WP12: Assertion evaluator Allows to specify assertions with pre-/post conditions and temporal constraints Jan Peleska 23

Solutions: Intermediate Model Representation A hierarchy graphs representing Statechart levels Control flow of methods Tree structures specifying hierarchic dependencies Intermediate code representation ( 3 address code ) for sequential algorithms conditions, actions, t integration of flows Jan Peleska 24

Solutions: Intermediate Model Representation Constraints attached to graph nodes and edges representing Transition conditions State invariants Flow conditions Tree structures representing active constraints Jan Peleska 25

Part1 Model-based simulation and testing Lighting_scenario_on INVARIANT: intensity < max INVARIANT: intensity < m2 FLOW: d intensity/dt = 0 FLOW: d intensity/dt = f(t) Lighting_scenario_off [CAB_ PRESS_LOW] Intermediate model INVARIANT: not CAB_PRESS_LOW Solution to differential equation: Lighting_scenario_on/ t0=now; activate(flow1); Flow1 : intensity(t) = intensity(t0) + œf(s)ds Lighting_scenario_off/ suspend(flow1); April 4th, 2006 Page 6 Jan Peleska 26

Part2 Large scale simulation Solutions: Multi-threading architecture with highspeed context switching in user space Abstract Machines encapsulate statebased sequential simulations as threads Flows encapsulate ûtintegration steps of time-continuous data changes as threads context switch Abstract Machine in1/x=v1; activate(flow) in1/x=v2; suspend(flow); Flow scheduled if not suspended x = x + f(ût,x,u); RT-Tester RT-Tester Scheduler Scheduler April 4th, 2006 Page 9 Jan Peleska 27

Solutions: Test Case/Test Data Generation A layered architecture of interacting generation algorithms Statechart traversal for generation of abstract timed traces Interval analysis for abstract interpretation of sequential algorithms and general constraint handling Differential geometric interpretation for finding interesting test data Jan Peleska 28

Solutions: Test Case/Test Data Generation A layered architecture of interacting generation algorithms Combinational solvers (OBDD, SAT) for small discrete data ranges and abstracted constraints Linear programming for simple, frequently occurring constraints of type (x 1 < c 1 )... (x n < c n ) Optimisation algorithms for real-valued constraints involving mathematical functions Solvers for differential equations Jan Peleska 29

Solutions: Tool Chain Integration of CASE tools for model development Solvers for mathematical problems: differential equations, constraint programming, optimisation Transformers to Intermediate Model Representation Code generators Test generators Simulation environment Hardware-in-the-loop test execution platform Jan Peleska 30

Part1 Tool chain - overview Specification Front-Ends UML-Case UML-Case Tool Tool Matlab/Simulink Matlab/Simulink State/Event State/Event Matrices Matrices other other formalisms formalisms UML2.0 UML2.0 Diagram Diagram Transformers Transformers Timed Timed State State Machines Machines Intermediate Model States/Events/Conditions/Actions States/Events/Conditions/Actions Time-continuous Time-continuous Flows Flows Test Test Case Case Generator Generator Code/Test Code/Test Data Data Generator Generator RT-Tester Tool Box Distributed Distributed Test Test Program Program + Test Test Data Data RT-Tester RT-Tester Engine Engine Hard Hard Real-Time Real-Time Test Test Execution Execution Environment Environment April 4th, 2006 Page 7 Jan Peleska 31

Test case generation and test oracles for reactive real-time systems Example: Signal Lamp Control System under test (SUT) switches relays on/off SUT checks feed-back from relays SUT checks whether current flows through lamp filament SUT takes bouncing of discretes/relays into account SUT checks whether desired state is reached in time and is kept stable Goal: Find test suite for checking SUT against Real-Time Statecharts specification Jan Peleska 32

Example: Signal Lamp Control SWITCH ON / r=1;s(tf);s(tg) set timer for relais feedback set timer when to reach stable ON status set timer for current feedback reset timer for current feedback 1 [f]/r(tf);s(ti) 2 [i]/r(ti) 3 e(tg)[f and i]/ok 4 [not(f)]/s(tf);r(ti) [not(f)]/s(tf) Feedbacks: relais status f current i e(tf)/ fail_relais e(ti)/ e(tg)[not(f and i)]/ fail_current fail [not(i)]/fail_current [not(f and i)]/ fail Controls: System Under Test r relais on/off ok fail, fail_relais fail_current FAILURE Jan Peleska 33

Example: Signal Lamp Control Region Graph 1 tf=1 and tg=2 [f] [not(f)] 1 0<tF<1 and tf+1=tg [not(f)] 1 0=tF and tg=1 FAIL [f] [f] [not(f)]/fail_relais 2 ti=1 and 1<tG<2 [f] [f] 2 0<tI<1 and 1<tG<2 [not(f)] 1 tf=1 and 1<tG<2 [not(f)] 1 * 0<tF<1 and 1<tG<2 [not(f)] 1 0<tF<1 and tg=1 [not(f)] 1 ** 0<tF<tG and 0<tG<1 [f] 2 ti=1 and 0<tG<1 [not(f)] 1 3 0=tF tg=0 and 0<tG<1 [not(f)]/fail_relais FAIL FAIL /fail [f and i] [not(f)] 3 0<tG<1 3 tg=0 4 [f and i] [f and i]/ok [not(f and i)]/fail Jan Peleska 34

Distinguishing Traces For each state in (minimal) region graph, determine I/O traces distinguishing this state from all other ones Example: distinguish states * and **: Trace < (0, [f ]), (ε, [not(f )]), (ε + 1, fail relais) > is possible for * and some 0 < ε < 1, but not for **. Trace < (0, [f ]), (ε, [not(f )]), (δ, fail) > is possible for ** and some 0 < ε, δ < 1, but not for *. Jan Peleska 35

Test Strategy For each specified state s, generate input trace which should force the system under test (SUT) into s (deterministic behaviour required!) Apply inputs of all distinguishing traces of s and check whether they lead to the specified outputs Jan Peleska 36

Evaluation Good news: Test strategy can prove correctness of real-time behaviour Problems: Size of region graph is only bounded by n!m n n number of timers M largest timer value Need to visit each state repeatedly for each of its distinguishing traces Jan Peleska 37

Test data generation In general, test cases are specified on an abstraction of input, output and state data Interface modules are suitable components of a test automation system to perform Refinement from abstract test case data to concrete interface data and driver calls Abstraction of concrete interface data to logical signals defined on test case level Jan Peleska 38

Conclusion Trustworthy algorithms for testing both combination and state-based real-time systems exist For state-based systems, the number of test cases (= traces to be checked) is too high to be executed in sufficient time. Jan Peleska 39

Ongoing research integration of algorithms into RT-Tester Test trace selection based on hazard analysis Test trace selection based on specification mutations Jan Peleska 40