Formal Verification of Models and Code Prashant Mathapati Application Engineer Polyspace & Model Verification

Similar documents
Leveraging Formal Methods for Verifying Models and Embedded Code Prashant Mathapati Application Engineering Group

Simulink 모델과 C/C++ 코드에대한매스웍스의정형검증툴소개 The MathWorks, Inc. 1

Leveraging Formal Methods Based Software Verification to Prove Code Quality & Achieve MISRA compliance

Verification and Test with Model-Based Design

WHITE PAPER. 10 Reasons to Use Static Analysis for Embedded Software Development

Model-Based Design for High Integrity Software Development Mike Anthony Senior Application Engineer The MathWorks, Inc.

Intro to Proving Absence of Errors in C/C++ Code

Production Code Generation and Verification for Industry Standards Sang-Ho Yoon Senior Application Engineer

Verification and Validation of Models for Embedded Software Development Prashant Hegde MathWorks India Pvt. Ltd.

Developing AUTOSAR Compliant Embedded Software Senior Application Engineer Sang-Ho Yoon

Automating Best Practices to Improve Design Quality

Verification and Validation of High-Integrity Systems

Automatización de Métodos y Procesos para Mejorar la Calidad del Diseño

Automating Best Practices to Improve Design Quality

Simulink 를이용한 효율적인레거시코드 검증방안

Guidelines for deployment of MathWorks R2010a toolset within a DO-178B-compliant process

Increasing Design Confidence Model and Code Verification

Utilisation des Méthodes Formelles Sur le code et sur les modèles

Increasing Embedded Software Confidence Model and Code Verification. Daniel Martins Application Engineer MathWorks

Jay Abraham 1 MathWorks, Natick, MA, 01760

From Design to Production

Using Model-Based Design in conformance with safety standards

Model-Based Design for Safety-Critical and Mission-Critical Applications Bill Potter Technical Marketing April 17, 2008

Static Analysis in C/C++ code with Polyspace

Standardkonforme Absicherung mit Model-Based Design

2015 The MathWorks, Inc. 1

Implementation and Verification Daniel MARTINS Application Engineer MathWorks

정형기법을활용한 AUTOSAR SWC 의구현확인및정적분석

Reducing Design Errors in Complex State Machines using Model-Based Design

Testing, Validating, and Verifying with Model-Based Design Phil Rottier

A Model-Based Reference Workflow for the Development of Safety-Related Software

By V-cubed Solutions, Inc. Page1. All rights reserved by V-cubed Solutions, Inc.

Testen zur Absicherung automatisierter Transformationsschritte im Model-Based Design

Simulink Verification and Validation

Generating Industry Standards Production C Code Using Embedded Coder

Model-Based Design for Safety Critical Automotive Applications

AVS: A Test Suite for Automatically Generated Code

IDE for medical device software development. Hyun-Do Lee, Field Application Engineer

Ein Modell - viele Zielsysteme

Architecture-driven development of Climate Control Software LMS Imagine.Lab Embedded Software Designer Siemens DF PL

People tell me that testing is

Testing and Validation of Simulink Models with Reactis

Fault-Injection testing and code coverage measurement using Virtual Prototypes on the context of the ISO standard

automatisiertensoftwaretests

Verification, Validation and Test in Model Based Design Manohar Reddy

DRYING CONTROL LOGIC DEVELOPMENT USING MODEL BASED DESIGN

Automated Requirements-Based Testing

Simulink for AUTOSAR: Best Practices

Objectives. Chapter 19. Verification vs. validation. Topics covered. Static and dynamic verification. The V&V process

Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 22 Slide 1

18-642: Code Style for Compilers

Verification and Validation Introducing Simulink Design Verifier

ISO compliance

StackAnalyzer Proving the Absence of Stack Overflows

Addressing Future Challenges in the Development of Safe and Secure Software Components The MathWorks, Inc. 1

Leveraging Formal Verification Throughout the Entire Design Cycle

Designing and Analysing Power Electronics Systems Using Simscape and SimPowerSystems

Automatic Qualification of Abstract Interpretation-based Static Analysis Tools. Christian Ferdinand, Daniel Kästner AbsInt GmbH 2013

Deriving safety requirements according to ISO for complex systems: How to avoid getting lost?

Don t Be the Developer Whose Rocket Crashes on Lift off LDRA Ltd

SOFTWARE QUALITY OBJECTIVES FOR SOURCE CODE

Formal Methods and their role in Software and System Development. Riccardo Sisto, Politecnico di Torino

Verification and Validation

Verification, Validation, and Test with Model-Based Design

Examination Questions Time allowed: 1 hour 15 minutes

Introduction & Formal Methods

Static Analysis of Embedded Systems

Changing the way the world does software

Part 5. Verification and Validation

Formal Verification for safety critical requirements From Unit-Test to HIL

ΗΜΥ 317 Τεχνολογία Υπολογισμού

1 Visible deviation from the specification or expected behavior for end-user is called: a) an error b) a fault c) a failure d) a defect e) a mistake

Three General Principles of QA. COMP 4004 Fall Notes Adapted from Dr. A. Williams

By Jason Ghidella, PhD, and Pieter J. Mosterman, PhD. Left Elevator. actuator. hydraulic system 1 left outer. left inner

Verification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1

Testing. ECE/CS 5780/6780: Embedded System Design. Why is testing so hard? Why do testing?

Testing! Prof. Leon Osterweil! CS 520/620! Spring 2013!

Certification Authorities Software Team (CAST) Position Paper CAST-25

ISO compliant verification of functional requirements in the model-based software development process

Sample Exam Syllabus

GNAT Pro Innovations for High-Integrity Development

Certified Automotive Software Tester Sample Exam Paper Syllabus Version 2.0

Seven Roadblocks to 100% Structural Coverage (and how to avoid them)

Introduction to Control Systems Design

Formal Verification of Flight Control Applications along a Model- Based Development Process A Case Study

Baseline Testing Services. Whitepaper Vx.x

Verification and Validation

Verification and Validation

What s New with the MATLAB and Simulink Product Families. Marta Wilczkowiak & Coorous Mohtadi Application Engineering Group

Race Catcher. Automatically Pinpoints Concurrency Defects in Multi-threaded JVM Applications with 0% False Positives.

Simulation-based Test Management and Automation Sang-Ho Yoon Senior Application Engineer

Automatic Code Generation Technology Adoption Lessons Learned from Commercial Vehicle Case Studies

1. Introduction to Model Checking

Vector Software. Using VectorCAST to Satisfy Software Verification and Validation for ISO W H I T E P A P E R

Safety Manual. for ait, Astrée, StackAnalyzer. AbsInt Angewandte Informatik GmbH

CERTIFICATION ISSUES IN AUTOMOTIVE SOFTWARE

Software Verification and Validation (VIMMD052) Introduction. Istvan Majzik Budapest University of Technology and Economics

SCADE. SCADE Suite Tailored for Critical Applications EMBEDDED SOFTWARE

IBM Rational Rhapsody

Static Analysis methods and tools An industrial study. Pär Emanuelsson Ericsson AB and LiU Prof Ulf Nilsson LiU

Transcription:

Formal Verification of Models and Code Prashant Mathapati Application Engineer Polyspace & Model Verification 2011 The MathWorks, Inc. 1

Agenda Examples of Software Defect Failures Gaps in Simulation Based Testing Formal Verification of Model (Simulink Design Verifier) Formal Verification of Code (Polyspace) Formal Verification and Existing Process User Case Studies Key Takeaways 2

Examples of Software Defect Failures BMW glitch locks Thai minister in By Staff ZDNet Asia General Motors Friday, ACADIA May 16, 2003 10:13 Recall AM Feb 21, 2007 Recall Summary A high-ranking Thai official was forced to crawl out of his shattered windows of his The sensing luxury and diagnostic car following module, an onboard which glitch that sealed all exits. controls BMW the has function told CNETAsia of front that air bags, an electronic may not fault caused the problem, rather than a system crash of the operated properly. car s Windows-based As a result, central the front computer, air bags as other reports have speculated. may fail Suchart to deploy Jaovisdha, in a frontal Thailand s crash. finance minister, was on his way to address central bank officials from around Embedded the world when Experts: his state-assigned Fix Code BMW Bugs stalled, Or the Cost Associated Lives Press reported. In the event The engine of crash, stopped, this the condition air conditioning could increase Attendees at last week's Embedded shut Systems down, the Conference doors got locked got an and earful the windows on the high wouldn t roll the risk of injury down, to Suchart occupants was quoted in the as front Volkswagen saying seat. price to be paid by poorly written or tested New code. Beetle Recall Sep 29, 2003 We couldn t By Rick breathe Merritt because EE Times there April was no Recall 10, air, 2006 he Summary 10:00 added. AM The passenger detection function of the passive San Jose, Calif. The Therac 25 was supposed occupant to detection save lives by system zapping may tumors become with disabled. targeted blasts of radiation. Instead, Consequence the device delivered massive overdoses that killed three patients and injured several others Should because the PODS of software control glitches unit by malfunction, a lone the air programmer whose code was never bag properly system inspected the and vehicle tested. will not work as designed and may not be able to properly protect Inspections of software after the crash occupants of a U.S. Army in a crash. Chinook helicopter revealed 500 errors, including 50 critical ones, in just the first 17 percent of code tested. Consequence www.informationweek.com/news/management/showarticle.jhtml?articleid=185300011 3

Reasons for Failure Cause of failure; BMW, GM, Therac 25, U.S. Army helicopter Design or Code defects resulting in run-time errors What are run-time errors? Also known as latent faults Rarely manifest directly and frequently Effects include Software crashes Unexpected software behavior Exhaustive testing is out of reach, allowing errors to remain in the design and code. 30-40% of errors found in software are run-time errors. 4

Early errors found late are costly. Relative Cost to Fix Defects per Phase Found Requirements Design Code Test Requirements Design Code Phase Found Test 35 30 25 20 15 10 5 0 50 45 40 Test Code Design Requirements Engineers didn t understand the problem to solve! Engineers got the problem, but the solution doesn t work! Relative Cost to Fix The solution works, but the implementation has errors! Source: Return on Investment for Independent Verification & Validation, NASA, 2004 5

Problem Statement Let s look at the problem we are trying to solve What is unique about control logic as oppose to dataflow algorithm? 6

Difficulties with Complex Logic Multiple entry/exit transitions Simultaneous transitions Execution order 7

Difficulties with Complex Logic Complex conditional statements 8

How do you test your models today? Simulation Based Testing Develop test inputs Apply the test inputs to model Analyze the results with Expected output Requirements 9

How do you ensure a test case exercised all simulation pathways? Model Coverage Model coverage is a measure of how thoroughly a test case tests a model and the percentage of pathways that a test case exercises. Model coverage helps you validate your model tests. 10

Simulation Based Testing The quality of your verification activity is based on the input vectors you created. Error or design defect can only be detected if the proper stimulus exists. Requirements 11

% Complete Gaps in Simulation Based Testing The method itself is inefficient in being exhaustive or complete. A set of functional test case that meets MC/DC coverage objective is only a minimum set of test cases. Test cases can t cover every possible combination of different scenarios. Inputs are defined based on what we already knew. What about the unknown? Priority, synchronization, timeout etc 100 We are performing Acceptance test. 0 Effort / Time 12

Formal Verification Formal verification is mathematically rigorous procedures to search through the possible execution paths of your model for design errors, test cases and counterexamples. (Simulink Design Verifier homepage) act of proving or disproving the correctness of intended algorithms underlying a system with respect to a certain formal specification or property, using formal methods of mathematics.: (Wikipedia)? 13

Formal Verification Example Example application of formal verification: Error detection in model and code Model: Simulink Design Verifier Code: Polyspace Code Verifier 14

Simulink Design Verifier use cases finding design errors Determine unreachable or dead transitions/states without manually generating any test vectors. Identify missing use cases or missing requirements. Prove correctness of your design Use of condition and objective Use of requirements modeling 15

Determine Unreachable or Dead Transitions/States Without Manually Generating Test Vectors Ensure algorithmic logic is structurally correct during design phase. Early detection Transition expression can never be True 16

Identify Missing Use Cases or Missing Requirements Search for hard to find and/or missing functional test cases. User can use test cases generated by Simulink Design Verifier and reverse engineer missing requirements. Understand missing functional test cases associated with missing requirements or functionalities. Requirements Simulation Why do we have missing coverage? Simulink Design Verifier Generate Test Vector for Missing Coverage Missing Coverage Component Models 17

Automatically Generate Test Cases for Equivalence Testing Quickly create a set of test cases that can be used for meeting the equivalence testing criteria in high-integrity application standards ISO26262 Software-in-the-Loop Processor-in-the-Loop Code Generation Model Simulink Design Verifier Automatic Test Generation Test Harness C Target Processor Component Source Code Production Code Generation 18

Suitable Model Characteristics for Formal Methods Decision-, State-, or Event- Based Control Examples Automatic transmission Power window Best modeled in Stateflow, Truth Tables, and Simulink decision logics Compensator Design For systems where actuation is based on deviation from a commanded value (e.g. PID) Examples Robot position Motor speed Best modeled with Simulink Control Design and other control design tools good bad Speed > 24km/h 1 st Gear Speed > 64km/h 2 nd Gear Speed > 96km/h Speed < 32 km/h 3 rd Gear Speed < 56 km/h 4 th Gear Speed < 88km/h + - v K i R e m wind L wind di m dt 19

Formal Methods based Static Code Analysis Find run-time errors In legacy or hand code In the model caused by mixed code integration In the design - when missed by the workflow Prove the absence of run-time errors Prove code is free of run-time errors Check MISRA or MISRA AC AGC compliance Prepare for independent code verification (DO-178B, IEC 61508, ) Check workflow integrity, including mixed environments Browse code-model level to verify the implementation Catch defects missed by the workflow Find implementation errors 20

sophistication Augmenting Static Code Analysis with Formal Methods low Static code analysis scan source code to automate verification Range from unsound methods to sound techniques Compiler warnings Incompatible type detection, etc. Bug finding Pattern matching, heuristics, data/control flow high Formal methods Sound proof based techniques, applied to source code Can show SW is robust for wide operating conditions 21

Polyspace Formal Methods based Static Code Analysis Exhaustively verify code Detect and prove absence of runtime errors Precisely determines and propagates variable ranges Languages supported C, C++, and Ada Verify SW robustness Analyze for full range operating conditions OR Specified ranges of parameters and inputs 22

Polyspace in Model Based Design Polyspace results on generated code are traced back to the model Available for Embedded Coder, dspace TargetLink, and Telelogic Rhapsody 23

Proving Absence of Runtime Errors You Can Prove That: c = a + b; will never overflow j = arr[i]; i will always be within array bounds *ptr = 12; will never be an illegal dereference w = x / (y + z); y never equal to -z or visa versa (divide by zero) And many more 24

Example: Proving Absence of Run-time Errors There are none. Proven 25

Why prove the absence of run-time errors? Implications of verification, static analysis & unit testing T0 +3 months +6 months Improvement is possible and measurable Number of operations x input values Static analysis One-time improvement, but nothing measurably proven 0% proven reliable............. Required for functional testing. Not suitable to prove code correctness 26

Formal DO-178B Methods Verification Certification Supplement and Credit Existing to DO-178C Processes and DO-278A Table Allows A-5 the (ref use section: of Formal 6.3.4b, 6.3.4c, Methods 6.3.4d, Analysis 6.3.4f) for verification Dataflow, control of: flow Software Dead code requirements Can Software Compliance I get certification design with standards credit (MISRA, if I use JSF++) formal verification techniques Source code in my process? Arithmetic overflow, resource contention, uninitialized variables, Executable object code Adds an objective that the formal analysis method must Table be shown A-6 (ref to section: be sound 6.4.2.1, 6.4.2.2, 6.4.3) Uninitialized variables, parameter passing errors, data corruption, What does this mean Polyspace Incorrect loop/logic is a formal decisions, methods arithmetic tool for faults, analysis violations of source of array code limits, As a Criteria 2 tool, partial credit may be taken for analysis of executable Diagnostics of object runtime code failure, and operation this is included under full in range the DO conditions, Qualification non terminating Kit loops, DO Qualification Kit already includes a Theoretical Foundation document to justify the soundness of Abstract Interpretation 27

ISO 26262 Certification of MathWorks Products TÜV SÜD certified: Real-Time Workshop Embedded Coder Simulink Design Verifier Simulink Verification and Validation Polyspace products for C/C++ For use in development processes which need to comply with IEC 61508, ISO 26262, or EN 50128 Note: The products listed above were not developed using certified processes 28

TRW Automotive Develops and Tests Electric Parking Brake Using Simulink and Simulink Design Verifier Challenge Design tests for an electric parking brake control system Solution Use Simulink Design Verifier to automatically generate tests that maximize model coverage and enable systematic design verification Results Test development time reduced from days to hours 100% model coverage achieved Formal testing begun two months into the project Electronic parking brake control system. Everyone knows that errors are much less expensive to fix when you find them early. With Simulink Design Verifier, we build on the advantages of Model-Based Design by performing formal testing in the first phases of development." Christoph Hellwig TRW Link to user story 29

Nissan Increases Software Reliability with Polyspace Products for C/C++ Challenge Identify hard-to-find run-time errors to improve software quality The Nissan Fairlady Z. Solution Use MathWorks tools to exhaustively analyse Nissan and supplier code Results Suppliers' bugs detected and measured Software reliability improved Polyspace products for C/C++ adopted by Nissan suppliers "Polyspace products for C/C++ can ensure a level of software reliability that is unmatched by any tools in the industry. Mitsuhiko Kikuchi, Nissan 30

Test Case Generation with Simulink Design Verifier Challenge Automotive OEM wanted to use Simulink Design Verifier to generate test cases, but was unsure of how it would affect their verification & validation (V&V) process. Also they wanted to generate test cases that were limited to a subset of their model. Solution Developed a process for test case generation that includes model preparation and model settings. Developed scripts to automate a majority of the process. Developed a script that reduces an integrated model to only those components that need testing, further speeding up analysis. Value With the use of SLDV with automated model preparation, cut time to generate test cases from days to hours. Time to perform model reduction down from hours to minutes. 31

Key Takeaways Simulink Design Verifier: Design Error Detection Dead Logic, Divide by Zero etc Test Case Generation Decision, Condition and MC/DC Coverage. Property Proving To prove or disprove specified property Polyspace: Prove code correctness: Provide sustainable quality measures Identify which part of the code is reliable Detect run-time errors: Clean functional tests of run-time errors Detect software errors quickly and early 32