Test-Driven Development of Graphical User Interfaces: A Pilot Evaluation Thedore D. Hellmann, Ali Hosseini-Khayat, Frank Maurer XP 2011.

Slides:



Advertisements
Similar presentations
Customer: Rosalva Gallardo Team members: Susan Lin Buda Chiou Jim Milewski Marcos Mercado October 19, 2010.
Advertisements

Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
Customer: Rosalva Gallardo Team members: Susan Lin Buda Chiou Jim Milewski Marcos Mercado November 23, 2010.
Using Open-Source Solutions to Teach Computing Skills to Psychology Students David Allbritton DePaul University
SYSTEMS DEVELOPMENT Phases, Tools, and Techniques
Fundamentals of Information Systems, Second Edition
Bina Nusantara 7 C H A P T E R MODELING SYSTEM REQUIREMENTS WITH USE CASES.
SE 555 Software Requirements & Specification Requirements Validation.
Computers: Tools for an Information Age
1 Lecture 5 Introduction to Software Engineering Overview  What is Software Engineering  Software Engineering Issues  Waterfall Model  Waterfall Model.
Modeling System Requirements with Use Cases
SE 555 Software Requirements & Specification 1 SE 555 Software Requirements & Specification Prototyping.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Huseyin Ergin Advisor: Dr. Eugene Syriani University of Alabama Software Modeling Lab Software Engineering Group Department of Computer Science College.
Introduction to Software Testing
Software Test Automation and Tools Speaker: Jerry Gao Ph.D. San Jose State University URL:
Damian Gordon.  Summary and Relevance of topic paper  Definition of Usability Testing ◦ Formal vs. Informal methods of testing  Testing Basics ◦ Five.
Test-Driven Development “Test first, develop later!” –OCUnit.
Red-Green-Refactor! EclipseCon 2008 Kevin P. Taylor, Nicolaus Malnick Test-Driven Development (TDD) for Eclipse RCP.
Chapter 1 The Systems Development Environment
The Systems Development Environment. Learning Objectives Define information systems analysis and design. Describe the different types of information systems.
System design technique  System Development Life Cycle  Prototyping  Rapid Application Development.
INFORMATION SYSTEM APPLICATIONS System Development Life Cycle.
Data Processing Machine Learning Algorithm The data is processed by machine algorithms based on hidden Markov models and deep learning. They are then utilized.
N By: Md Rezaul Huda Reza n
Introduction to SDLC: System Development Life Cycle Dr. Dania Bilal IS 582 Spring 2009.
Tutorial 10 Adding Spry Elements and Database Functionality Dreamweaver CS3 Tutorial 101.
Phil Cronin Anne Hill Allen Schones CIS841 Summer on Campus 1998 IN-PROCESS INSPECTIONS FOR OBJECT ORIENTED DESIGNS.
S556 SYSTEMS ANALYSIS & DESIGN Week 11. Creating a Vision (Solution) SLIS S556 2  Visioning:  Encourages you to think more systemically about your redesign.
Research on the Interaction Between Human and Machines University of Houston-Clear Lake Tasha Y. David.
What is Usability? Usability Is a measure of how easy it is to use something: –How easy will the use of the software be for a typical user to understand,
B Copyright © 2009, Oracle. All rights reserved. Creating Experts.
Slide 1V&V 10/2002 Software Quality Assurance Dr. Linda H. Rosenberg Assistant Director For Information Sciences Goddard Space Flight Center, NASA
Supporting rapid design and evaluation of pervasive application: challenges and solutions Lei Tang 1,2, Zhiwen Yu 1, Xingshe Zhou 1, Hanbo Wang 1, Christian.
1 ISE 412 Usability Testing Purpose of usability testing:  evaluate users’ experience with the interface  identify specific problems in the interface.
1 Event Driven Automated Testing for GUI-based Java Programs Presented by Yanhong Sun Thesis Advisor: Dr. Edward L. Jones July 17, 2003.
2131 Structured System Analysis and Design By Germaine Cheung Hong Kong Computer Institute Lecture 8 (Chapter 7) MODELING SYSTEM REQUIREMENTS WITH USE.
Chapter 8 Usability Specification Techniques Hix & Hartson.
Fundamentals of Information Systems, Second Edition 1 Systems Development.
CIS 112 Exam Review. Exam Content 100 questions valued at 1 point each 100 questions valued at 1 point each 100 points total 100 points total 10 each.
ICALT 2001 How students learn to program: Observations of practical tasks completed Dr. Pete Thomas & Carina Paine Centre for Informatics Education Research.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
Comparing model-based and dynamic event-extraction based GUI testing techniques : An empirical study Gigon Bae, Gregg Rothermel, Doo-Hwan Bae The Journal.
Chapter 4 Automated Tools for Systems Development Modern Systems Analysis and Design Third Edition 4.1.
The Systems Development Environment Systems Analysis and Design II.
Use Cases Todd S. Bacastow Professor of Practice John A. Dutton e-Education Institute The Pennsylvania State University.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Software Project Management
ANALISA & PERANCANGAN SISTEM Disusun Oleh : Dr. Lily Wulandari Program Pasca Sarjana Magister Sistem Informasi Universitas Gunadarma.
UML Course Instructor: Rizwana Noor. Overview  Modeling  What is UML?  Why UML?  UML Diagrams  Use Case  Components  Relationships  Notations.
Requirement Analysis SOFTWARE ENGINEERING. What are Requirements? Expression of desired behavior Deals with objects or entities, the states they can be.
T EST T OOLS U NIT VI This unit contains the overview of the test tools. Also prerequisites for applying these tools, tools selection and implementation.
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
 System Requirement Specification and System Planning.
Day 8 Usability testing.
Chapter 0: Introduction
User Interface Evaluation
Working in the Forms Developer Environment
Unified Modeling Language
ICT Database Lesson 1 What is a Database?.
CS 321: Human-Computer Interaction Design
CLINICAL INFORMATION SYSTEM
Software Test Automation and Tools
Capability Maturity Model
Applying Use Cases (Chapters 25,26)
Applying Use Cases (Chapters 25,26)
Capability Maturity Model
Presentation transcript:

Test-Driven Development of Graphical User Interfaces: A Pilot Evaluation Thedore D. Hellmann, Ali Hosseini-Khayat, Frank Maurer XP 2011

Outline  Capture and Replay Tools  Introduction  Difficulties  A Prototype-Driven Approach to UITDD  Pilot Evaluation  Conclusion  Capture and Replay Tools  Introduction  Difficulties  A Prototype-Driven Approach to UITDD  Pilot Evaluation  Conclusion

Capture and Replay Tools  Capture and Replay Tools(CRTs)  Tools that record users’ interactions with an application.  Can be used to record test scripts.  Capture and Replay Tools(CRTs)  Tools that record users’ interactions with an application.  Can be used to record test scripts.

Introduction  Test-driven development (TDD) has proven benefits for the software engineering process  increased developer confidence  increased software quality  In the approach, user interface prototypes are created in such a way as to allow capture/replay tools to record interactions with them.  These recordings can then be replayed on the actual GUI as it is being developed in a test-driven fashion.  TDD of GUI-based applications (UITDD)  Test-driven development (TDD) has proven benefits for the software engineering process  increased developer confidence  increased software quality  In the approach, user interface prototypes are created in such a way as to allow capture/replay tools to record interactions with them.  These recordings can then be replayed on the actual GUI as it is being developed in a test-driven fashion.  TDD of GUI-based applications (UITDD) Does having tests for a GUI written before the functionality of the GUI is implemented help developers?

Difficulty  What Makes GUI Testing and UITDD Difficult? 1.Complexity 2.Verification 3.Finding Widgets from Test code  What Makes GUI Testing and UITDD Difficult? 1.Complexity 2.Verification 3.Finding Widgets from Test code

Difficulty - Complexity  Modern GUIs are composed of a set of user interface elements, or widgets. Like most classes in object-oriented systems, widgets tend to have a long chain of inheritances.  Even a simple GUI has a huge number of possible user interactions, GUI states, and events.  For Example:  Modern GUIs are composed of a set of user interface elements, or widgets. Like most classes in object-oriented systems, widgets tend to have a long chain of inheritances.  Even a simple GUI has a huge number of possible user interactions, GUI states, and events.  For Example:

Difficulty - Verification  A test is separated into two parts:  test procedure  test oracle  The test procedure interacts with part or all of an application in order to generate a state that is interesting from a testing perspective.  The test oracle verifies that the system behaves as expected in response to this interaction.  The effectiveness of automated tests is directly limited by the difficulty of writing useful test oracles.  A test is separated into two parts:  test procedure  test oracle  The test procedure interacts with part or all of an application in order to generate a state that is interesting from a testing perspective.  The test oracle verifies that the system behaves as expected in response to this interaction.  The effectiveness of automated tests is directly limited by the difficulty of writing useful test oracles.

Difficulty - Finding Widgets from Test code  In GUI testing, it is necessary to look up widgets when a test is run based on information about the widget that is recorded when a test is created.  This process of look up widgets is in large part responsible for the fragility of GUI tests.  There are two ways of performing this search:  testing with object maps  keyword-based testing  In GUI testing, it is necessary to look up widgets when a test is run based on information about the widget that is recorded when a test is created.  This process of look up widgets is in large part responsible for the fragility of GUI tests.  There are two ways of performing this search:  testing with object maps  keyword-based testing

A Prototype-Driven Approach to UITDD  ExpenseManager  ExpenseManager is a GUI-based application.  Vies Totals  New Report  Modify Report  ExpenseManager  ExpenseManager is a GUI-based application.  Vies Totals  New Report  Modify Report

A Prototype-Driven Approach to UITDD(2)  After defining the features of ExpenseManager, a prototype of the application was created. This prototype was created using SketchFlow.  SketchFlow  Prototypes are created by dragging-and-dropping widgets onto a canvas.  Widgets can also be assigned behaviors such as transitioning to a different state.  we used LEET (LEET Enhances Exploratory Testing) to record events from interactions with prototypes of ExpenseManager.  LEET  It is based on the Automation API  Using keyword-based identification to determine which widget to interact with for each step in the test script.  After defining the features of ExpenseManager, a prototype of the application was created. This prototype was created using SketchFlow.  SketchFlow  Prototypes are created by dragging-and-dropping widgets onto a canvas.  Widgets can also be assigned behaviors such as transitioning to a different state.  we used LEET (LEET Enhances Exploratory Testing) to record events from interactions with prototypes of ExpenseManager.  LEET  It is based on the Automation API  Using keyword-based identification to determine which widget to interact with for each step in the test script.

Pilot Evaluation  We designed a pilot evaluation to determine whether our approach is actually useful to developers.  Based on 3 particepants:  We designed a pilot evaluation to determine whether our approach is actually useful to developers.  Based on 3 particepants: 1.Researchers completed the development of ExpenseManager, including its GUI and event handlers, based on the tests. 2.The researchers removed all of the code contained in ExpenseManager’s 7 event handlers. 1.Researchers completed the development of ExpenseManager, including its GUI and event handlers, based on the tests. 2.The researchers removed all of the code contained in ExpenseManager’s 7 event handlers.

Pilot Evaluation(2)  Interestingly, all three participants entered into the same development cycle during their development of ExpenseManager.  Participants used the provided automated GUI tests as the sole indication of completeness of functionality.  Interestingly, all three participants entered into the same development cycle during their development of ExpenseManager.  Participants used the provided automated GUI tests as the sole indication of completeness of functionality. Observations Collected during the Study

Pilot Evaluation(3)  The participants asked to fill out a survey, which perception of the usefulness and usability of this approach. Observations Collected from Post-Study Surveys  The first and second questions were ranked from A (Very Useful) to E (Useless).  These responses imply that the participants saw the potential of this approach to be of some benefit in their own work.  The first and second questions were ranked from A (Very Useful) to E (Useless).  These responses imply that the participants saw the potential of this approach to be of some benefit in their own work.

Pilot Evaluation(4)  Participants were also asked to rank the resources they were provided with in terms of decreasing usefulness for their development task.  Instead of ranking features by frequency of use, participants seem to have ranked resources based on the value they provided to the development effort.  Participants were also asked to rank the resources they were provided with in terms of decreasing usefulness for their development task.  Instead of ranking features by frequency of use, participants seem to have ranked resources based on the value they provided to the development effort. Observations Collected from Post-Study Surveys  This implies that one way to immediately make this approach to UITDD provide higher value to users :  Making technical details of widgets being tested more visible so that users can understand the expected details of the system they are building.  This implies that one way to immediately make this approach to UITDD provide higher value to users :  Making technical details of widgets being tested more visible so that users can understand the expected details of the system they are building.

Study Limitations 1.Only three participants took part in this study. 2.The time allotted for each study session was limited to one hour in order to avoid inconveniencing participants. 3.The application used for this study was, based on Table 2, too complicated for a one- hour study. 1.Only three participants took part in this study. 2.The time allotted for each study session was limited to one hour in order to avoid inconveniencing participants. 3.The application used for this study was, based on Table 2, too complicated for a one- hour study.

Conclusion  In this paper we present a pilot evaluation of an approach to test-driven development of GUI-based applications.  we hope to test our approach to UITDD on multi-touch and gesture-based interfaces.  we were able to determine that participants seemed to feel that UITDD had benefits, and would be a useful practice.  In this paper we present a pilot evaluation of an approach to test-driven development of GUI-based applications.  we hope to test our approach to UITDD on multi-touch and gesture-based interfaces.  we were able to determine that participants seemed to feel that UITDD had benefits, and would be a useful practice.

Question Time