Analysis and Testing of Ajax-based Single-page Web Applications
Analysis and Testing of Ajax-based Single-page Web Applications
Analysis and Testing of Ajax-based Single-page Web Applications
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Contents<br />
Preface<br />
List <strong>of</strong> Acronyms<br />
ix<br />
xi<br />
1 Introduction 1<br />
1.1 <strong>Web</strong> Evolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1<br />
1.1.1 Static Hypertext Documents . . . . . . . . . . . . . . . . 1<br />
1.1.2 Dynamically Generated Pages . . . . . . . . . . . . . . . 2<br />
1.1.3 <strong>Web</strong> Architecture . . . . . . . . . . . . . . . . . . . . . . . 4<br />
1.1.4 Rich Internet <strong>Applications</strong> . . . . . . . . . . . . . . . . . 4<br />
1.1.5 <strong>Web</strong> 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />
1.2 <strong>Ajax</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />
1.2.1 JavaScript <strong>and</strong> the Document Object Model . . . . . . . 6<br />
1.2.2 Cascading Style Sheets . . . . . . . . . . . . . . . . . . . . 7<br />
1.2.3 The XMLHttpRequest Object . . . . . . . . . . . . . . . . 7<br />
1.2.4 A New Approach to <strong>Web</strong> <strong>Applications</strong> . . . . . . . . . . 7<br />
1.2.5 Multi-<strong>page</strong> versus <strong>Single</strong>-<strong>page</strong> <strong>Web</strong> <strong>Applications</strong> . . . . 10<br />
1.2.6 Reverse <strong>Ajax</strong>: Comet . . . . . . . . . . . . . . . . . . . . 10<br />
1.3 Challenges <strong>and</strong> Research Questions . . . . . . . . . . . . . . . . 12<br />
1.3.1 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />
1.3.2 Reengineering . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
1.3.3 <strong>Analysis</strong> <strong>and</strong> <strong>Testing</strong> . . . . . . . . . . . . . . . . . . . . . 16<br />
1.4 Research Method <strong>and</strong> Evaluation . . . . . . . . . . . . . . . . . . 18<br />
1.5 Thesis Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />
1.6 Origin <strong>of</strong> Chapters . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />
2 A Component- <strong>and</strong> Push-<strong>based</strong> Architectural Style for <strong>Ajax</strong> 23<br />
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />
2.2 <strong>Ajax</strong> Frameworks . . . . . . . . . . . . . . . . . . . . . . . . . . . 25<br />
2.2.1 Echo2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26<br />
2.2.2 GWT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />
2.2.3 Backbase . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />
2.2.4 Dojo <strong>and</strong> Cometd . . . . . . . . . . . . . . . . . . . . . . . 28<br />
2.2.5 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />
2.3 Architectural Styles . . . . . . . . . . . . . . . . . . . . . . . . . . 30<br />
2.3.1 Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . 30<br />
2.3.2 Existing Styles . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />
2.3.3 A Style for <strong>Ajax</strong> . . . . . . . . . . . . . . . . . . . . . . . 32<br />
2.4 Architectural Properties . . . . . . . . . . . . . . . . . . . . . . . 32<br />
2.4.1 User Interactivity . . . . . . . . . . . . . . . . . . . . . . . 33