Agile Interaction Design and Test-Driven Development of User Interfaces - A Literature Review

This chapter describes the development of GUI-based applications, from usability engineering and prototyping to acceptance test-driven development, in an agile context. An overview of current agile interaction design practices will be presented, including a thorough analysis of the current role of prototyping and current attempts to facilitate test-driven development of GUI systems, as presented in academic and industrial literature. Traditional usability engineering approaches shows that if user input is taken into consideration early in the development process by repeatedly conducting usability tests on low-fidelity prototypes of the GUI system, the final version of the GUI will be both more usable and less likely to require revision. The major risk associated with test-driven development of GUIs is the high likelihood of change in the target GUI, which can make test development unnecessarily expensive and time consuming. A unification of these styles of development will be presented, along with a prediction of how this process can be used to simplify creating testable GUI-based applications by agile teams.

[1]  L. F. Baum The Wonderful Wizard of Oz Coloring Book , 1974 .

[2]  Atif M. Memon,et al.  Studying the Characteristics of a "Good" GUI Test Suite , 2006, 2006 17th International Symposium on Software Reliability Engineering.

[3]  Rajesh Subramanyan,et al.  Automation of GUI testing using a model-driven approach , 2006, AST '06.

[4]  Marc Kellogg,et al.  Automating functional tests using Selenium , 2006, AGILE 2006 (AGILE'06).

[5]  A. Ruiz,et al.  GUI Testing Made Easy , 2008, Testing: Academic & Industrial Conference - Practice and Research Techniques (taic part 2008).

[6]  Randolph G. Bias,et al.  Cost-justifying usability , 2005 .

[7]  Jeff Patton,et al.  Hitting the target: adding interaction design to agile software development , 2002, OOPSLA '02.

[8]  Atif M. Memon,et al.  Using a pilot study to derive a GUI model for automated testing , 2008, TSEM.

[9]  John Hart The Art of the Storyboard: Storyboarding for Film, TV, and Animation , 1999 .

[10]  Mary Lou Soffa,et al.  Regression testing of GUIs , 2003, ESEC/FSE-11.

[11]  Frank Maurer Agile methods and interaction design: friend or foe? , 2009, EICS '09.

[12]  Gerard Meszaros,et al.  Adding usability testing to an agile project , 2006, AGILE 2006 (AGILE'06).

[13]  Grigori Melnik,et al.  Guest Editors' Introduction: TDD--The Art of Fearless Programming , 2007, IEEE Software.

[14]  Brian P. Bailey,et al.  DEMAIS: designing multimedia applications with interactive storyboards , 2001, MULTIMEDIA '01.

[15]  Penelope A. Brooks,et al.  An Initial Study of Customer-Reported GUI Defects , 2009, 2009 International Conference on Software Testing, Verification, and Validation Workshops.

[16]  Atif M. Memon,et al.  An event‐flow model of GUI‐based applications for testing , 2007, Softw. Test. Verification Reliab..

[17]  Chen Fu,et al.  Inferring Types of References to GUI Objects in Test Scripts , 2009, 2009 International Conference on Software Testing Verification and Validation.

[18]  Chen Fu,et al.  Maintaining and evolving GUI-directed test scripts , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[19]  Chun Wang,et al.  Development of an Improved GUI Automation Test System Based on Event-Flow Graph , 2008, CSSE.

[20]  Carol M. Barnum,et al.  Usability testing and research , 2001 .

[21]  Jakob Nielsen,et al.  Usability engineering , 1997, The Computer Science and Engineering Handbook.

[22]  Woei-Kae Chen,et al.  Integration of specification-based and CR-based approaches for GUI testing , 2005, 19th International Conference on Advanced Information Networking and Applications (AINA'05) Volume 1 (AINA papers).

[23]  Bill Buxton,et al.  Sketching User Experiences: Getting the Design Right and the Right Design , 2007 .

[24]  Mika Katara,et al.  Automatic GUI test generation for smartphone applications - an evaluation , 2009, 2009 31st International Conference on Software Engineering - Companion Volume.

[25]  Jean Vanderdonckt,et al.  Multi-fidelity Prototyping of User Interfaces , 2007, INTERACT.

[26]  Chun Wang,et al.  Development of an Improved GUI Automation Test System Based on Event-Flow Graph , 2008, 2008 International Conference on Computer Science and Software Engineering.

[27]  Laurie A. Williams,et al.  Realizing quality improvement through test driven development: results and experiences of four industrial teams , 2008, Empirical Software Engineering.

[28]  Alex Ruiz,et al.  Test-Driven GUI Development with TestNG and Abbot , 2007, IEEE Software.

[29]  Arie van Deursen,et al.  Invariant-based automatic testing of AJAX user interfaces , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[30]  Jakob Nielsen,et al.  Paper versus computer implementations as mockup scenarios for heuristic evaluation , 1990, INTERACT.

[31]  Jakob Nielsen,et al.  Chapter 4 – The Usability Engineering Lifecycle , 1993 .

[32]  Sheelagh Carpendale,et al.  Sketching user experiences , 2012 .

[33]  Sergiu M. Dascalu,et al.  Unit-level test adequacy criteria for visual dataflow languages and a testing methodology , 2008, TSEM.

[34]  Chunyan Miao,et al.  Actionable knowledge model for GUI regression testing , 2005, IEEE/WIC/ACM International Conference on Intelligent Agent Technology.

[35]  Hassan Reza,et al.  A Model-Based Approach for Testing GUI Using Hierarchical Predicate Transition Nets , 2007, Fourth International Conference on Information Technology (ITNG'07).

[36]  Jakob Nielsen,et al.  Guerrilla HCI: using discount usability engineering to penetrate the intimidation barrier , 1994 .

[37]  Charlie Poole Test-Driven User Interfaces , 2005, XP.

[38]  Atif M. Memon,et al.  What test oracle should I use for effective GUI testing? , 2003, 18th IEEE International Conference on Automated Software Engineering, 2003. Proceedings..

[39]  Mary Lou Soffa,et al.  A comprehensive framework for testing graphical user interfaces , 2001 .