2
Goals: - Shorten development cycle for flight SW; Reduce cost; Increase reliability Current SW development cycle: - Coding and testing performed as separate activities - Testing is costly; performed after code development Continuous Incremental Checking: - Testing performed during code development - Excess workstation cycles used to continuously generate and run tests and to suggest repairs and invariants Continuous Incremental Software Checking for Robotic and Satellite Missions – Corina Pasareanu, CMU/NASA Ames User Code (Android ) + JML Specs Systematic Analysis JUnit Tests Pass Fail - Insert pre- condition - Modify code - Modify test Quick Fixes Sym Exe Tree Likely Invaria nts Test Execution Test Generation Invariant Generation Integrated Development Environment NASA PhoneSat SPHERES on ISS Target Applications Features: - Automatic test generation and execution - Automatic program and test repair - Rapid feedback to user: test failures, code and test fixes, invariants

Goals: Shorten development cycle for flight SW; Reduce cost; Increase reliability

  • Upload
    fleta

  • View
    27

  • Download
    0

Embed Size (px)

DESCRIPTION

Continuous Incremental Software Checking for Robotic and Satellite Missions – Corina Pasareanu , CMU/NASA Ames. Target Applications. Invariant Generation. Likely Invariants. Code (Android) + JML Specs. Systematic Analysis. JUnit Tests. Test Generation. Test Execution. User. - PowerPoint PPT Presentation

Citation preview

Page 1: Goals:  Shorten development  cycle for flight  SW; Reduce cost; Increase  reliability

Goals: - Shorten development cycle for flight SW; Reduce cost; Increase

reliability Current SW development cycle:- Coding and testing performed as separate activities- Testing is costly; performed after code developmentContinuous Incremental Checking:- Testing performed during code development- Excess workstation cycles used to continuously generate and

run tests and to suggest repairs and invariants- Seamless integration in coding environment familiar to

developers

Continuous Incremental Software Checking for Robotic and Satellite Missions – Corina Pasareanu, CMU/NASA Ames

User

Code (Android) + JML Specs

SystematicAnalysis

JUnit Tests

PassFail- Insert pre-condition- Modify code- Modify test

Quick Fixes

Sym Exe Tree

Likely Invariants

Test Execution

Test Generation

Invariant Generation

Integrated Development Environment

NASA PhoneSat

SPHERES on ISS

Target Applications

Features:- Automatic test generation and execution- Automatic program and test repair- Rapid feedback to user: test failures, code and

test fixes, invariants

Page 2: Goals:  Shorten development  cycle for flight  SW; Reduce cost; Increase  reliability

1: d=d+1;2: if (x > y)3: return d / (x-y); else 4: return d / (y-x);

PC: X>Y

x: X, y: Y, d: D+1PC: true

PC: X<=Y

PC: X>Yreturn: (D+1)/(X-Y)

PC: X<=Y & Y-X!=0return: (D+1)/(Y-X)

PC: X<=Y & Y-X=0Div by zero!

Solve path conditions → test inputs

Example code:

Symbolic execution tree:

[2:] [2:]

[3:] [4:] [4:]

x: X, y: Y, d: DPath condition PC: true

[1:]