1 / 25

Application Reliability

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….

paiva
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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Application Reliability Robert J. Conti GCUU CSc-299 Graduate Seminar

  2. 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

  3. Today’s Agenda… • Introduction • A Step Back – What’s Def-Use Testing? • Application Reliability • Concluding Remarks • Q & A GCUU CSc-299 Graduate Seminar

  4. Introduction – Drilling Down… Application Reliability Web Services Java Web Services IOEx GCUU CSc-299 Graduate Seminar

  5. 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

  6. 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

  7. A Step Back – What’s def-use testing? • Def-use • 3 occurrences • def • c-use • p-use GCUU CSc-299 Graduate Seminar

  8. A Step Back – What’s def-use testing? • Program graph • def • c-use • p-use GCUU CSc-299 Graduate Seminar

  9. 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

  10. 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

  11. Application Reliability - Metrics… Reliability Faults • The big picture Web Service F E |E| / |F| GCUU CSc-299 Graduate Seminar

  12. 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

  13. Application Reliability - Mendosus… GCUU CSc-299 Graduate Seminar

  14. 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

  15. Application Reliability – e-c Link Analysis… • Infeasible links • readFile( ) • readNet( ) BufferInputStream .fill() GCUU CSc-299 Graduate Seminar

  16. 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

  17. 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

  18. Web Service Application Benchmarks Application Reliability – Empirical Results… • FTPD • JNFS • Haboob • Muffin GCUU CSc-299 Graduate Seminar

  19. 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

  20. Application Reliability – Empirical Results… GCUU CSc-299 Graduate Seminar

  21. e-c Links and Coverage Application Reliability – Empirical Results… Overall Exception Def-Catch Coverage GCUU CSc-299 Graduate Seminar

  22. Application Reliability – Empirical Results… GCUU CSc-299 Graduate Seminar

  23. 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

  24. Concluding Remarks… • Conclusions • Telephone System • Outside the box • Compiler techniques • Other Java programs • To be continued… GCUU CSc-299 Graduate Seminar

  25. Questions & Answers… ? GCUU CSc-299 Graduate Seminar

More Related