Application reliability
This presentation is the property of its rightful owner.
Sponsored Links
1 / 25

Application Reliability PowerPoint PPT Presentation


  • 50 Views
  • Uploaded on
  • Presentation posted in: General

Application Reliability. Robert J. Conti. Prelude…. If you thought designing and coding that program was hard, you ain’t seen nothing yet . GJ Myers, 1979 Testing of Java Web Services for Robustness . Chen Fu, Barbara G. Ryder, Ana Milanova, & David Wonnacott. ISSTA 2004. Today’s Agenda….

Download Presentation

Application Reliability

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


Application reliability

Application Reliability

Robert J. Conti

GCUU CSc-299 Graduate Seminar


Prelude

Prelude…

If you thought designing and coding that program was hard, you ain’t seen nothing yet.

  • GJ Myers, 1979

    Testing of Java Web Services for Robustness. Chen Fu, Barbara G. Ryder, Ana Milanova, & David Wonnacott. ISSTA 2004.

GCUU CSc-299 Graduate Seminar


Today s agenda

Today’s Agenda…

  • Introduction

  • A Step Back – What’s Def-Use Testing?

  • Application Reliability

  • Concluding Remarks

  • Q & A

GCUU CSc-299 Graduate Seminar


Introduction drilling down

Introduction – Drilling Down…

Application Reliability

Web Services

Java Web Services

IOEx

GCUU CSc-299 Graduate Seminar


Introduction java exceptions

Introduction - Java Exceptions…

void method1( )

{

...

try {

method2(“a:\\file.txt”); }

catch (IOException e) {

e.printStackTrace(System.out); }

...

}

void method2(String file) throws IOException

{

...

InputStream in = new FileInputStream(file);

int c = in.read( );

...

}

  • exception

  • throw

  • try

  • catch

GCUU CSc-299 Graduate Seminar


A step back what s def use testing

A Step Back – What’s def-use testing?

  • Black-box testing

  • White-box testing

    • Control-flow

      • e.g., statement

    • Data-flow

      • e.g., def-use

GCUU CSc-299 Graduate Seminar


A step back what s def use testing1

A Step Back – What’s def-use testing?

  • Def-use

  • 3 occurrences

    • def

    • c-use

    • p-use

GCUU CSc-299 Graduate Seminar


A step back what s def use testing2

A Step Back – What’s def-use testing?

  • Program graph

    • def

    • c-use

    • p-use

GCUU CSc-299 Graduate Seminar


A step back what s def use testing3

A Step Back – What’s def-use testing?

  • New family of path selection criteria

  • Bridges the gap

  • Why do we care?

GCUU CSc-299 Graduate Seminar


Application reliability metrics

Application Reliability - Metrics…

  • How can you gauge reliability?

    • By using e-c links and test set T

    • Determine set of faults (i.e., IOExceptions)

    • Determine F  { set of e-c links }

    • Determine E  { set of e-c links covered by T }

      Overall Exception Def-Catch Coverage = E / F

GCUU CSc-299 Graduate Seminar


Application reliability metrics1

Application Reliability - Metrics…

Reliability Faults

  • The big picture

Web Service

F

E

|E| / |F|

GCUU CSc-299 Graduate Seminar


Application reliability mendosus

Application Reliability - Mendosus…

  • Mendosus is a fault injection engine

    •  try  F – insert methods to request fault

    •  catch  F – insert method to record call stack (for E) and to cancel fault

    • Only one fault will be tested at a time

    • The facilitator behind this is the e-c link analysis

GCUU CSc-299 Graduate Seminar


Application reliability mendosus1

Application Reliability - Mendosus…

GCUU CSc-299 Graduate Seminar


Application reliability e c link analysis

Part I

Part II

Application Reliability – e-c Link Analysis…

  • Part I – Exception flow analysis

  • AST

  • Call graph

  • Compiler dataflow equations

  • Defines e-c links

  • Imprecise due to infeasible link generation!

GCUU CSc-299 Graduate Seminar


Application reliability e c link analysis1

Application Reliability – e-c Link Analysis…

  • Infeasible links

    • readFile( )

    • readNet( )

BufferInputStream

.fill()

GCUU CSc-299 Graduate Seminar


Application reliability e c link analysis2

Application Reliability – e-c Link Analysis…

readFile() readNet()

FilterInputStream.read()

BufferedInputStream.read()

BufferInputStream.fill()

FileInputStream.read() SocketInputStream.read()



  • Infeasible links (cont’d)

  • Twice the e-c links

  • How to fix?

GCUU CSc-299 Graduate Seminar


Application reliability e c link analysis3

Application Reliability – e-c Link Analysis…

  • Part II – Data reach analysis

  • Post pass filter

  • Call graph

  • Points-to graph

  • Removes infeasible links!

Part I

Part II

GCUU CSc-299 Graduate Seminar


Application reliability empirical results

Web Service Application Benchmarks

Application Reliability – Empirical Results…

  • FTPD

  • JNFS

  • Haboob

  • Muffin

GCUU CSc-299 Graduate Seminar


Application reliability empirical results1

Application Reliability – Empirical Results…

  • The setup

Java

Web Service

(Benchmark)

Configuration

E-C Link

Analysis

E/F

Reliability Faults

(IOEx)

GCUU CSc-299 Graduate Seminar


Application reliability empirical results2

Application Reliability – Empirical Results…

GCUU CSc-299 Graduate Seminar


Application reliability empirical results3

e-c Links and Coverage

Application Reliability – Empirical Results…

Overall Exception

Def-Catch Coverage

GCUU CSc-299 Graduate Seminar


Application reliability empirical results4

Application Reliability – Empirical Results…

GCUU CSc-299 Graduate Seminar


Concluding remarks

Concluding Remarks…

  • Summary

    • Java web services and IOExceptions

    • White-box data-flow def-use testing

    • Exception flow def-use

    • Overall Exception Def-Catch Coverage

    • Mendosus

    • e-c link analysis (E-F and DR)

    • Coverage

GCUU CSc-299 Graduate Seminar


Concluding remarks1

Concluding Remarks…

  • Conclusions

    • Telephone System

    • Outside the box

    • Compiler techniques

    • Other Java programs

    • To be continued…

GCUU CSc-299 Graduate Seminar


Questions answers

Questions & Answers…

?

GCUU CSc-299 Graduate Seminar


  • Login