Cs527 topics in software engineering software testing and analysis
Sponsored Links
This presentation is the property of its rightful owner.
1 / 11

CS527 Topics in Software Engineering (Software Testing and Analysis) PowerPoint PPT Presentation

  • Uploaded on
  • Presentation posted in: General

CS527 Topics in Software Engineering (Software Testing and Analysis). Darko Marinov September 9, 2010. Schedule. First few lectures to help you select projects Testing: ReAssert, UDITA, Pex, Randoop Today: JPF (model checking), note: journal paper Sep 14: CHESS (multithreaded testing)

Download Presentation

CS527 Topics in Software Engineering (Software Testing and Analysis)

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

Cs527 topics in software engineering software testing and analysis

CS527Topics in Software Engineering(Software Testing and Analysis)

Darko Marinov

September 9, 2010



  • First few lectures to help you select projects

    • Testing: ReAssert, UDITA, Pex, Randoop

    • Today: JPF (model checking), note: journal paper

    • Sep 14: CHESS (multithreaded testing)

    • Sep 16: Regression testing, note: survey paper

    • Sep 21: Static (code) analysis?

    • Sep 23: GUI testing?

    • Sep 28: Analysis of code comments?

    • Testing distributed or real-time systems?

    • Your suggestions?

Paper today

Paper Today

  • Model Checking Programs by W. Visser, K. Havelund, G. Brat,S. Park and F. Lerda(J-ASE, vol. 10, no. 2, April 2003)

  • JPF web site

    • http://babelfish.arc.nasa.gov/trac/jpf

    • First open-source project from NASA

  • Slides courtesy of Peter Mehlitz and Willem Visser

Paper overview

Paper Overview

  • Problem

    • Model checking of real code

      • Terminology: Systematic testing, state-space exploration

  • Solution

    • Specialized Java Virtual Machine

      • Supports backtracking, state comparison

      • Many optimizations to make it scale

    • Publicly available tool (Java PathFinder)

  • Evaluation/applications

    • Remote Agent Spacecraft Controller

    • DEOS Avionics Operating System

Questions for discussion 1

Questions for Discussion (1)

  • Reports on time but not early: [CR], [AS], [JC]

  • Can an explicit-state model checker really scale to million lines of code? [AA]

  • Tools are top down (execute the program and evaluate it as it runs) but code is written bottom up (unit by unit)? [AL]

  • When is a state revisited? [JN]

  • Can we move some part of search and bytecode interpretation to C? [MG]

  • How to use JPF for sequential programs? [QL]

Questions for discussion 2

Questions for Discussion (2)

  • Omitted? [DM]

    • Reminder: you can omit up to two reports

  • How many kinds of abstraction are available? [ST]

  • Too much work for too little benefit? [HY]

    • Does it only find bugs that other tools can find?

  • Make JPF distibuted/parallel? [MK]

  • Combine JPF and Radoop (or X and Y)?

  • How can false positives be managed for a better user experience?

Questions for discussion 3

Questions for Discussion (3)

  • Level of adoption outside NASA/Research?

  • Have any high profile bugs been found?

  • If JPF a valid approach outside of real-time systems and safety/mission critical software?

  • How do you know the tool is correct?

    • Especially first version with Java -> Promela

    • What about differences between JPF and JVM

  • Does it find bugs or prove software correct?

  • What about non-Java languages?

Old questions for discussion 1

Old Questions for Discussion (1)

  • Which part of JPF can be incorrect?

  • Can a compiler be model checked?

  • How difficult is it to set environments?

  • What to check in sequential programs (some examples are multi-threaded)?

  • What about checking design not code?

  • Comparison of testing, model checking, and static analysis

Old questions for discussion 2

Old Questions for Discussion (2)

  • When is model checking applicable?

  • What kind of bugs it can find?

  • How well does it scale?

  • What about memory requirements?

  • What about time requirements?

  • Why work with Java not C/C++?

  • How can I apply this on my code?

Old questions for discussion 3

Old Questions for Discussion (3)

  • What’s recent work in this area?

    • There’s some work in my group if interested

  • How do they compare states?

  • How good are heuristics?

  • How to use the tool in practice?

    • Hopefully the tutorial is helpful

    • You can download from NASA servers

  • Problem set based on some tool???

Sample project ideas

Sample Project Ideas

  • Apply JPF on some software

    • Did you read the optional reading/report?

    • Compare with more tools and techniques

  • Improve JPF

    • Add new functionality (e.g., backtrackable time)

    • Implement more library methods (e.g., reflection)

    • Patch some bugs

    • Use for another language (Scala, X10…)

    • Automate creation of environments

  • Check 427 Final Project Proposals

  • Login