250 likes | 367 Views
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….
E N D
Application Reliability Robert J. Conti GCUU CSc-299 Graduate Seminar
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… • Introduction • A Step Back – What’s Def-Use Testing? • Application Reliability • Concluding Remarks • Q & A GCUU CSc-299 Graduate Seminar
Introduction – Drilling Down… Application Reliability Web Services Java Web Services IOEx GCUU CSc-299 Graduate Seminar
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? • 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 testing? • Def-use • 3 occurrences • def • c-use • p-use GCUU CSc-299 Graduate Seminar
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 testing? • New family of path selection criteria • Bridges the gap • Why do we care? GCUU CSc-299 Graduate Seminar
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 - Metrics… Reliability Faults • The big picture Web Service F E |E| / |F| GCUU CSc-299 Graduate Seminar
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 - Mendosus… GCUU CSc-299 Graduate Seminar
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 Analysis… • Infeasible links • readFile( ) • readNet( ) BufferInputStream .fill() GCUU CSc-299 Graduate Seminar
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 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
Web Service Application Benchmarks Application Reliability – Empirical Results… • FTPD • JNFS • Haboob • Muffin GCUU CSc-299 Graduate Seminar
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 Results… GCUU CSc-299 Graduate Seminar
e-c Links and Coverage Application Reliability – Empirical Results… Overall Exception Def-Catch Coverage GCUU CSc-299 Graduate Seminar
Application Reliability – Empirical Results… GCUU CSc-299 Graduate Seminar
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 Remarks… • Conclusions • Telephone System • Outside the box • Compiler techniques • Other Java programs • To be continued… GCUU CSc-299 Graduate Seminar
Questions & Answers… ? GCUU CSc-299 Graduate Seminar