250 likes | 385 Vues
In this graduate seminar, we delve into the critical aspect of application reliability, particularly focusing on Java web services. Beginning with an overview of def-use testing, we explore essential concepts such as exception handling, control flow, and data flow. Throughout the seminar, we examine tools like Mendosus for fault injection and the metrics for assessing reliability through empirical results. The session concludes with a discussion on exception coverage and the implications for robust service design, emphasizing the importance of reliable applications in today's digital landscape.
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