on the generation of test cases for embedded software in
play

On the Generation of Test Cases for Embedded Software in Avionics - PowerPoint PPT Presentation

On the Generation of Test Cases for Embedded Software in Avionics or Overview of CESAR Philipp Rmmer Oxford University, Computing Laboratory philr@comlab.ox.ac.uk 8th KeY Symposium May 19th 2009 1 / 16 The Wonderful World of Oz Model


  1. On the Generation of Test Cases for Embedded Software in Avionics or Overview of CESAR Philipp Rümmer Oxford University, Computing Laboratory philr@comlab.ox.ac.uk 8th KeY Symposium May 19th 2009 1 / 16

  2. The Wonderful World of Oz Model Checking Background: I recently joined Daniel Kröning’s group in Oxford (. . . after 8 years of KeY . . . ) Now employed by the CESAR project Outline of the talk: Overview of CESAR Model checking Matlab/Simulink (Bounded) Model checking to generate test cases 2 / 16

  3. CESAR “ C ost- E fficient methods and processes for SA fety R elevant embedded systems” Artemis project Project started March 1st 2009 Some universities involved: Oxford , Manchester, INRIA, KTH, Athens, + Fraunhofer Some industry partners: Airbus/EADS, Volvo, Thales Overall project topic: Introduction of formal methods in development of embedded software Domains: Aerospace , Automotive, Rail, Industrial automation 3 / 16

  4. CESAR: Most relevant sub-projects SP2: Requirements engineering Define a formalised requirements capturing language In particular also: non-functional requirements Support requirement validation: consistency, completeness SP3: Component-based development Defined a component-based design language Incremental approaches for validation, verification, certification and qualification 4 / 16

  5. Simulink as de facto standard for embedded software 5 / 16

  6. Simulink for embedded software (2) Graphical dataflow language on top of Mathwork’s Matlab Supports discrete + continuous dataflow + stateflows Automatic simulation and code generation S-functions Further relevant language: Lustre/Scade 6 / 16

  7. Simulink for embedded software (2) Graphical dataflow language on top of Mathwork’s Matlab Supports discrete + continuous dataflow + stateflows Automatic simulation and code generation S-functions Further relevant language: Lustre/Scade Issues with Simulink Quite low-level No (strong) encapsulation Unclear semantics 6 / 16

  8. CESAR SP3: Component-based development New high-level component-based modelling/design language (CBD language) Mainly: University of Manchester Verification methods for: CBD language, Simulink, Lustre, etc. Primary approach: white-box test-case generation Model checking as underlying method Focus on: compositionality, replicated components Tool support Compositionality and coverage criteria Mainly: Oxford University 7 / 16

  9. Model Checking Algorithmic verification approach (in contrast to: deductive) Applicable to properties in temporal logic Can generate counterexamples for violated properties Two kinds of model checking that are mostly unrelated: (Full) Model checking Bounded model checking 8 / 16

  10. Full model checking Basically: Exhaustive search in the state space of a program Explicit or symbolic Abstraction to make state space small/finite Tool developed in Oxford: SatAbs 9 / 16

  11. Bounded model checking Principle of bounded model checking Examine finite unwinding of program: I ( s 0 ) ∧ R ( s 0 , s 1 ) ∧ · · · ∧ R ( s n − 1 , s n ) ∧ ¬ P ( s n ) I ( s ) . . . Initial states R ( s , s ′ ) . . . Transition relation of program P ( s ) . . . Safety property to be checked Typically: completely propositional encoding Incomplete for verification, but complete for disproving safety properties Quite similar to KeY . . . (yes it is!) How to encode heap? ( → answered by Carsten) Tool developed in Oxford: CBMC 10 / 16

  12. Test case generation using model checking Basic idea: Specify trap properties and use counterexample from model checker as a test case Idea goes back to 1996, Callahan, Engels Model-based testing technique Example (Model checking to achieve statement coverage) 1: void f(int x) { 2: ... 3: if (x > 10000) 4: causeSegFault(...); 5: } How to reach the blue statement? Trap property: � ( pc � = 4 ) Counterexample found: f(10001) 11 / 16

  13. Test case generation using model checking (2) Criteria that are most relevant for us: Structural coverage Trap properties to cover: Statements, control edges, MC/DC Dataflows Mutation detection Generate faulty mutants of program: Exchange operators, literals, introduce bit-faults, etc. Try to verify equivalence of original program and mutant ⇒ Use counterexample as test case Hypothesis: coupling effect Tests that detect simple faults probably also detect complex faults 12 / 16

  14. Verification of Simulink programs using CBMC For discrete dataflow and stateflows : Compile Simulink model to imperative program Statically generate schedule for program (order in which Simulink blocks are executed) C library with implementations of blocks Simply include code for S-functions Resulting code can be model-checked Counterexamples/tests can be translated back to Simulink Alternative approach: compile Simulink to Lustre PhD student working on Simulink front-end for CBMC : Michele Mazzucchi (ETH) Unclear: how to handle continuous dataflow? 13 / 16

  15. Floating-point arithmetic Essential to analyse Simulink models Difficult to handle also in bounded model checking Bit-precise encoding: large and very hard for SAT-solvers Interval arithmetic: no counterexamples ⇒ unusable Approach currently investigated in our group Bit-precise encoding Combination under- and over-approximation Over-approximation: Only include clauses for higher-valued bits Under-approximation: Assert that lowest-valued bits are zero PhD student working on floating-point support: Angelo Brillout (ETH) 14 / 16

  16. Conclusion Overall goal of CESAR: Improve quality + reduce costs of embedded software using formal methods Testing ⇒ Independent of compilers correctness, hardware, etc. (in contrast to deductive verification) Bounded model checking to generate tests CESAR includes pilot applications for evaluation: Aerospace, Automotive, Rail, Industrial automation Future work: basically everything 15 / 16

  17. Thanks for your attention! 16 / 16

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend