Using Symbolic PathFinder at NASA Corina Pãsãreanu Carnegie Mellon/NASA Ames.

Slides:



Advertisements
Similar presentations
.NET Technology. Introduction Overview of.NET What.NET means for Developers, Users and Businesses Two.NET Research Projects:.NET Generics AsmL.
Advertisements

Automated Test Data Generation Maili Markvardt. Outline Introduction Test data generation problem Black-box approach White-box approach.
Symbolic Execution with Mixed Concrete-Symbolic Solving
Test Automation Success: Choosing the Right People & Process
Abstraction and Modular Reasoning for the Verification of Software Corina Pasareanu NASA Ames Research Center.
Testing and Quality Assurance
Parallel Symbolic Execution for Structural Test Generation Matt Staats Corina Pasareanu ISSTA 2010.
1 Symbolic Execution for Model Checking and Testing Corina Păsăreanu (Kestrel) Joint work with Sarfraz Khurshid (MIT) and Willem Visser (RIACS)
Alternate Software Development Methodologies
Automated creation of verification models for C-programs Yury Yusupov Saint-Petersburg State Polytechnic University The Second Spring Young Researchers.
Software Engineering COMP 201
Software Testing and Quality Assurance
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
Software Reliability Methods Sorin Lerner. Software reliability methods: issues What are the issues?
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
Introduction to Software Testing
Scalable and Flexible Static Analysis of Flight-Critical Software Guillaume P. Brat Arnaud J. Venet Carnegie.
Agile Testing with Testing Anywhere The road to automation need not be long.
TIBCO Designer TIBCO BusinessWorks is a scalable, extensible, and easy to use integration platform that allows you to develop, deploy, and run integration.
LÊ QU Ố C HUY ID: QLU OUTLINE  What is data mining ?  Major issues in data mining 2.
Verification technique on SA applications using Incremental Model Checking 컴퓨터학과 신영주.
What is R By: Wase Siddiqui. Introduction R is a programming language which is used for statistical computing and graphics. “R is a language and environment.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Introduction to Software Engineering CEN 4010.
WorkPlace Pro Utilities.
Assurance techniques for code generators Ewen Denney USRA/RIACS, NASA Ames Bernd Fischer ECS, U Southampton.
Topics Covered: Software requirement specification(SRS) Software requirement specification(SRS) Authors of SRS Authors of SRS Need of SRS Need of SRS.
An intro to programming. The purpose of writing a program is to solve a problem or take advantage of an opportunity Consists of multiple steps:  Understanding.
Chapter 8 – Software Testing Lecture 1 1Chapter 8 Software testing The bearing of a child takes nine months, no matter how many women are assigned. Many.
Advanced Technology Center Slide 1 Requirements-Based Testing Dr. Mats P. E. Heimdahl University of Minnesota Software Engineering Center Dr. Steven P.
Lifecycle Verification of the NASA Ames K9 Rover Executive Dimitra Giannakopoulou Mike Lowry Corina Păsăreanu Rich Washington.
Proof Carrying Code Zhiwei Lin. Outline Proof-Carrying Code The Design and Implementation of a Certifying Compiler A Proof – Carrying Code Architecture.
1 New Development Techniques: New Challenges for Verification and Validation Mats Heimdahl Critical Systems Research Group Department of Computer Science.
1 Software Reliability Assurance for Real-time Systems Joel Henry, Ph.D. University of Montana NASA Software Assurance Symposium September 4, 2002.
DEPICT: DiscovEring Patterns and InteraCTions in databases A tool for testing data-intensive systems.
WSMX Execution Semantics Executable Software Specification Eyal Oren DERI
1 Hybrid-Formal Coverage Convergence Dan Benua Synopsys Verification Group January 18, 2010.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Introduction to Software Testing. Types of Software Testing Unit Testing Strategies – Equivalence Class Testing – Boundary Value Testing – Output Testing.
16 October Reminder Types of Testing: Purpose  Functional testing  Usability testing  Conformance testing  Performance testing  Acceptance.
Model Checking and Model-Based Design Bruce H. Krogh Carnegie Mellon University.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Symbolic Execution with Abstract Subsumption Checking Saswat Anand College of Computing, Georgia Institute of Technology Corina Păsăreanu QSS, NASA Ames.
Towards a Compositional SPIN Corina Păsăreanu QSS, NASA Ames Research Center Dimitra Giannakopoulou RIACS/USRA, NASA Ames Research Center.
March 2004 At A Glance autoProducts is an automated flight dynamics product generation system. It provides a mission flight operations team with the capability.
Confidential Continuous Integration Framework (CIF) 5/18/2004.
Learning Symbolic Interfaces of Software Components Zvonimir Rakamarić.
Open Incremental Model Checking (OIMC) and the Role of Contracts Model-Based Programming and Verification.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Software Engineering Saeed Akhtar The University of Lahore.
USING MODEL CHECKING TO DISCOVER AUTOMATION SURPRISES Java class User: - getExpectation() - checkExpectation() FAULTY EXECUTION start incrMCPAlt pullAltKnob.
PROGRAMMING TESTING B MODULE 2: SOFTWARE SYSTEMS 22 NOVEMBER 2013.
Grigore Rosu Founder, President and CEO Professor of Computer Science, University of Illinois
R-Verify: Deep Checking of Embedded Code James Ezick † Donald Nguyen † Richard Lethin † Rick Pancoast* (†) Reservoir Labs (*) Lockheed Martin The Eleventh.
( = “unknown yet”) Our novel symbolic execution framework: - extends model checking to programs that have complex inputs with unbounded (very large) data.
Tieflow Workflow Toolkit -:By:- CSCI 6831 Capstone project Instructor: Dr. Kwok-Bun Yue Mentor: Mr. Scott Hetherington Midterm Presentation 04/15/2008.
MOPS: an Infrastructure for Examining Security Properties of Software Authors Hao Chen and David Wagner Appears in ACM Conference on Computer and Communications.
Table of Contents Program Model Checking: Case Studies and Practitioner’s Guide John Penix, ARC Owen O’Malley, QSS Lawrence Markosian, QSS Peter Mehlitz,
Mechanisms for Requirements Driven Component Selection and Design Automation 최경석.
Your Interactive Guide to the Digital World Discovering Computers 2012 Chapter 13 Computer Programs and Programming Languages.
Sub-fields of computer science. Sub-fields of computer science.
Chapter 8 – Software Testing
runtime verification Brief Overview Grigore Rosu
Introduction to Software Testing
CodePeer Update Arnaud Charlet CodePeer Update Arnaud Charlet
A test technique is a recipe these tasks that will reveal something
CodePeer Update Arnaud Charlet CodePeer Update Arnaud Charlet
Introduction To software engineering
Analysis models and design models
Presentation transcript:

Using Symbolic PathFinder at NASA Corina Pãsãreanu Carnegie Mellon/NASA Ames

Introduction Modern software Modern software Multi-core, cloud-based, cyber-physical Multi-core, cloud-based, cyber-physical Needs to be highly reliable and secure Needs to be highly reliable and secure Testing Testing Most widely used Most widely used May miss important errors May miss important errors Formal analysis Formal analysis theorem proving, model checking, symbolic execution, static analysis, etc. theorem proving, model checking, symbolic execution, static analysis, etc. Strong guarantees of reliability and safety Strong guarantees of reliability and safety Goal Goal Use formal techniques to make testing more effective Use formal techniques to make testing more effective

Symbolic PathFinder (SPF) Performs Performs Automated test case generation Automated test case generation Property checking Property checking Integrates Integrates Symbolic execution, model checking and constraint solving Symbolic execution, model checking and constraint solving Uses analysis engine of Ames’ JPF tool Uses analysis engine of Ames’ JPF tool Test case generation – the easiest path towards the infusion of advanced formal verification technologies JPF

Uses of SPF Analysis/test generation for Analysis/test generation for Byte-code Byte-code Models (Simulink/Stateflow, UML) Models (Simulink/Stateflow, UML) Translation into Java Translation into Java Polyglot Framework – w/ U. Vanderbilt, U. Minnesota Polyglot Framework – w/ U. Vanderbilt, U. Minnesota SPF handles SPF handles Pre-conditions, data structures, concurrency Pre-conditions, data structures, concurrency User customizes User customizes Coverage, search strategy, output format Coverage, search strategy, output format Used at NASA, Fujitsu, academia Used at NASA, Fujitsu, academia Orion orbits the moon (Image Credit: Lockheed Martin) Polyglot

Experience: Onboard Abort Executive (OAE) Prototype for CEV ascent abort handling being developed by JSC GN&C Inputs Pick Highest Ranked Abort Checks Flight Rules to see if an abort must occur Select Feasible Aborts OAE StructureResults Baseline Baseline Manual testing: time consuming Manual testing: time consuming Guided random testing could not cover all aborts Guided random testing could not cover all aborts Symbolic PathFinder Symbolic PathFinder Generates tests to cover all aborts and flight rules Generates tests to cover all aborts and flight rules Found major bug in new version of OAE Found major bug in new version of OAE Environment constraints Environment constraints Input data is constrained by environment/physical laws Input data is constrained by environment/physical laws Example: inertial velocity can not be ft/s when the geodetic altitude is 0 ft Need to encode these environment constraints explicitly Need to encode these environment constraints explicitly Solution Solution Use simulation runs and machine learning to get data correlations Use simulation runs and machine learning to get data correlations

Lessons Learned Not enough to generate test cases that achieve good coverage Not enough to generate test cases that achieve good coverage Should also make sense to developers Should also make sense to developers Environment assumptions need to be made explicit Environment assumptions need to be made explicit Using both input from the user and automated inference techniques Using both input from the user and automated inference techniques True for any analysis tool that can only analyze components (not entire systems) True for any analysis tool that can only analyze components (not entire systems)

Usability Challenges Tool Usability Tool Usability Research Challenges Research Challenges Domain Specific Domain Specific

Tool Usability Easy set-up -- Not true for JPF/SPF Easy set-up -- Not true for JPF/SPF Portability for multiple platforms Portability for multiple platforms Animation and/or graphical display of results Animation and/or graphical display of results Intermediate results Intermediate results Important for tools that do not give “instant” results like SPF Important for tools that do not give “instant” results like SPF Informative counterexamples/Explanation of errors Informative counterexamples/Explanation of errors Documentation easily accessible on-line -- JPF’s wiki Documentation easily accessible on-line -- JPF’s wiki Integration with other tools familiar with developers Integration with other tools familiar with developers JPF’s Eclipse plug-in; SPF outputs JUnit tests and Antares scripts JPF’s Eclipse plug-in; SPF outputs JUnit tests and Antares scripts Clear display of different options --Not true for JPF/SPF Clear display of different options --Not true for JPF/SPF Availability --JPF is open-source Availability --JPF is open-source …

Research Challenges Scalable and timely verification Scalable and timely verification Analysis as efficient as possible Analysis as efficient as possible Parallelization, compositional techniques, fast constraint solvers Parallelization, compositional techniques, fast constraint solvers New constraint solvers New constraint solvers Solve complex, non-linear constraints (NASA applications) Solve complex, non-linear constraints (NASA applications) Solve strings combined with numeric constraints (web applications, security) Solve strings combined with numeric constraints (web applications, security) Automatic discovery of interfaces Automatic discovery of interfaces With (minimal) inputs from user With (minimal) inputs from user Combinations of automata and machine learning techniques Combinations of automata and machine learning techniques …

Domain Specific Knowledge Add the user to the picture Add the user to the picture Integration of domain specific knowledge Integration of domain specific knowledge Adaptation of tools to users’; specific needs Adaptation of tools to users’; specific needs E.g. NASA uses models; adapt SPF from code to models; customize search strategies/output format E.g. NASA uses models; adapt SPF from code to models; customize search strategies/output format …

?