Helping end-users "engineer" dependable Web applications

End-user programmers are increasingly relying on Web authoring environments to create Web applications. Although often consisting primarily of Web pages, such applications are increasingly going further, harnessing the content available on the Web through "programs" that query other Web applications for information to drive other tasks. Unfortunately, errors can be pervasive in Web applications, impacting their dependability. This paper reports the results of an exploratory study of end-user Web application developers, performed with the aim of exposing prevalent classes of errors. The results suggest that end-users struggle the most with the identification and manipulation of variables when structuring requests to obtain data from other Web sites. To address this problem, we present a family of techniques that help end user programmers perform this task, reducing possible sources of error. The techniques focus on simplification and characterization of the data that end-users must analyze while developing their Web applications. We report the results of an empirical study in which these techniques are applied to several popular Web sites. Our results reveal several potential benefits for end-users who wish to "engineer" dependable Web applications

[1]  Mary Shaw,et al.  An approach to preserving sufficient correctness in open resource coalitions , 2000, Tenth International Workshop on Software Specification and Design. IWSSD-10 2000.

[2]  Gregg Rothermel,et al.  A methodology for testing spreadsheets , 2001, TSEM.

[3]  Rob Miller,et al.  Outlier finding: focusing user attention on possible errors , 2001, UIST '01.

[4]  David Chenho Kung,et al.  Structural testing of Web applications , 2000, Proceedings 11th International Symposium on Software Reliability Engineering. ISSRE 2000.

[5]  C. M. Sperberg-McQueen,et al.  Extensible markup language , 1997 .

[6]  Brad A. Myers,et al.  Designing the whyline: a debugging interface for asking questions about program behavior , 2004, CHI.

[7]  Matthias Felleisen,et al.  Validating the unit correctness of spreadsheet programs , 2004, Proceedings. 26th International Conference on Software Engineering.

[8]  Mary Shaw,et al.  An approach for categorizing end user programmers to guide software engineering research , 2005, ACM SIGSOFT Softw. Eng. Notes.

[9]  Matthias Felleisen,et al.  Programming the Web with High-Level Programming Languages , 2001, ESOP.

[10]  Henry Lieberman,et al.  Supporting User Hypotheses in Problem Diagnosis on the Web and Elsewhere , 2004 .

[11]  Paolo Tonella,et al.  Analysis and testing of Web applications , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[12]  M. Shaw Sufficient Correctness and Homeostasis in Open Resource Coalitions: How Much Can You Trust Your Software System? , 2000 .

[13]  Gregg Rothermel,et al.  Improving web application testing with user session data , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[14]  Michael Benedikt,et al.  VeriWeb: Automatically Testing Dynamic Web Sites , 2002 .

[15]  Gregg Rothermel,et al.  End-user software engineering with assertions in the spreadsheet paradigm , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[16]  Michael Bolin,et al.  Naming page elements in end-user web automation , 2005, WEUSE@ICSE.

[17]  C. M. Sperberg-McQueen,et al.  Extensible Markup Language (XML) , 1997, World Wide Web J..

[18]  Mary Beth Rosson,et al.  Programming at runtime: Requirements & paradigms for nonprogrammer web application development , 2003, IEEE Symposium on Human Centric Computing Languages and Environments, 2003. Proceedings. 2003.