Hierarchical GUI Test Case Generation Using Automated Planning Atif M. Memon, Student Member, IEEE, Martha E. Pollack, and Mary Lou Soffa, Member, IEEE.

Slides:



Advertisements
Similar presentations
Software Development Languages and Environments. Programming languages High level languages are problem orientated contain many English words are easier.
Advertisements

DETAILED DESIGN, IMPLEMENTATIONA AND TESTING Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Lecture # 2 : Process Models
Key-word Driven Automation Framework Shiva Kumar Soumya Dalvi May 25, 2007.
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.
Software Design Deriving a solution which satisfies software requirements.
Visual Basic 2010 How to Program. © by Pearson Education, Inc. All Rights Reserved.2.
Visual Basic 2010 How to Program Reference: Instructor: Maysoon Bin Duwais slides Visual Basic 2010 how to program by Deitel © by Pearson Education,
Software Testing and Quality Assurance
Artificial Intelligence Chapter 11: Planning
Interact: RETSINA’s Agent Editor Provides a GUI interface to agent’s task and reduction libraries Allows –quick development of new libraries –easy extensions.
Computers: Tools for an Information Age
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
1 An Introduction to Visual Basic Objectives Explain the history of programming languages Define the terminology used in object-oriented programming.
System Design Decomposing the System. Sequence diagram changes UML 2.x specifications tells that Sequence diagrams now support if-conditions, loops and.
MS Access Advanced Instructor: Vicki Weidler Assistant:
Chapter 2 Build Your First Project A Step-by-Step Approach 2 Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta Eaton.
1 Integrated Development Environment Building Your First Project (A Step-By-Step Approach)
Reverse Engineering State Machines by Interactive Grammar Inference Neil Walkinshaw, Kirill Bogdanov, Mike Holcombe, Sarah Salahuddin.
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
Microsoft Visual Basic 2005: Reloaded Second Edition
An Introduction to Software Architecture
Department of Mechanical Engineering, LSUSession VII MATLAB Tutorials Session VIII Graphical User Interface using MATLAB Rajeev Madazhy
1 ISA&D7‏/8‏/ ISA&D7‏/8‏/2013 Systems Development Life Cycle Phases and Activities in the SDLC Variations of the SDLC models.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Introduction To System Analysis and Design
Software Engineering Research paper presentation Ali Ahmad Formal Approaches to Software Testing Hierarchal GUI Test Case Generation Using Automated Planning.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 13 Introduction to Classes.
1 Introduction to Software Engineering Lecture 1.
1 AutoCAD Electrical 2008 What’s New Name Company AutoCAD Electrical 2008 What’s New AMS CAD Solutions
Chapter 12: Design Phase n 12.1 Design and Abstraction n 12.2 Action-Oriented Design n 12.3 Data Flow Analysis n Data Flow Analysis Example n
1 Graphical User Interfaces Graphical User Interfaces (GUIs) have become an important and accepted way of interacting with today's software. Although.
Operating System What is an Operating System? A program that acts as an intermediary between a user of a computer and the computer hardware. An operating.
Creating Graphical User Interfaces (GUI’s) with MATLAB By Jeffrey A. Webb OSU Gateway Coalition Member.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Systems Analysis and Design in a Changing World, Fourth Edition
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
BOĞAZİÇİ UNIVERSITY DEPARTMENT OF MANAGEMENT INFORMATION SYSTEMS MATLAB AS A DATA MINING ENVIRONMENT.
1.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Comparing model-based and dynamic event-extraction based GUI testing techniques : An empirical study Gigon Bae, Gregg Rothermel, Doo-Hwan Bae The Journal.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
Chapter 2 Principles of Programming and Software Engineering.
Whole Test Suite Generation. Abstract Not all bugs lead to program crashes, and not always is there a formal specification to check the correctness of.
CSCI 383 Object-Oriented Programming & Design Lecture 7 Martin van Bommel.
INTRODUCTION TO COMPUTER PROGRAMMING(IT-303) Basics.
OCR A Level F453: The function and purpose of translators Translators a. describe the need for, and use of, translators to convert source code.
Visual Programming Borland Delphi. Developing Applications Borland Delphi is an object-oriented, visual programming environment to develop 32-bit applications.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Computer Systems Architecture Edited by Original lecture by Ian Sunley Areas: Computer users Basic topics What is a computer?
Chapter 2 Build Your First Project A Step-by-Step Approach 2 Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta Eaton.
1 Visual Computing Institute | Prof. Dr. Torsten W. Kuhlen Virtual Reality & Immersive Visualization Till Petersen-Krauß | GUI Testing | GUI.
LINGO TUTORIAL.
Introduction toData structures and Algorithms
Software Design.
Software Testing for Non-traditional Software
About the Presentations
Introduction to Operating System (OS)
Model-Driven Analysis Frameworks for Embedded Systems
VISUAL BASIC.
CIS16 Application Development Programming with Visual Basic
Chapter 2: System Structures
Analysis models and design models
An Introduction to Software Architecture
Presentation transcript:

Hierarchical GUI Test Case Generation Using Automated Planning Atif M. Memon, Student Member, IEEE, Martha E. Pollack, and Mary Lou Soffa, Member, IEEE

Introduction Graphical User Interfaces – important in interacting with today’s software Makes software easier to use Makes software testing more difficult than conventional software - must find a PATH from some initial state to a solution

Consists of labels, buttons, menus, and pop-up lists User interacts with components to create events What is a GUI? GUI Window Object Window Microsoft WordPad

Challenges in Testing GUI Applications GUI’s becoming more complex  Complexity in testing correctness and underlying software Enormous amounts of possible interaction Determining coverage of Test Cases Regression testing Goal: Automatic generation of test cases Solution: P lanning A ssisted T ester for grap H ical U ser interface S ystems

State of the Art A new technique both scalable and partially automated that reduces dependence on user expertise ProsCons Mimic novice users Not scalable Scalable Semi-automated Test case quality depends on user expertise Automated test case generation Finite state machine models

35,000 foot View of the Mountain Performs hierarchical structure of GUI  create hierarchical operators Test designers describe operators(preconditions, effects)‏ Takes goals as input and generates multiple sequences of events (“plans”) automatically Plans becomes the test cases for GUI PATHS… …easier to specify goals than all the possible PATHS toward the goal

PATHS: AI Planning with Operators Operator (preconditions, effects)‏ Given to the AI planning algorithm Guaranteed to result in the goal state when executed in the initial state Initial StateGoal State

The PATHS Test Case Generation Process Setup Phase – PATHS creates a hierarchical model of the GUI and returns list of operators from the model to test designer Design preconditions and effects in simple, planning system language Plan Generation Phase – Test designer describes scenarios by defining a set of initial and goal states for test case generation PATHS generates a test suite for test case generation

Phase 1: Setup PATHS partitions GUI into several classes using structural properties. Menu-open Events – expand set of GUI events available to user Unrestricted-focus Events – open GUI windows that do not restrict user’s focus, expand set of GUI events available to user (ex. Toolbar) Restricted-focus Events – open GUI windows that have special property once invoked, monopolize GUI interaction, restrict user view of GUI to specific range until window is terminate (ex. Pop-up window) System-interaction Events – interact with underlying software to perform some action

Phase 1: Operator Types System-Interaction Operators – derived from those GUI events that generate interactions with the underlying software Ex. Prefix_Suffix  File_Open = Abstract Operators – represents a sequence of GUI events that invoke a window which monopolizes the GUI interaction Treat this restricted-focus window as a separate planning problem and decompose

Phase 1: Setup Example GUI Events File + Edit + New Open* Save Save As* Cut Copy Paste Open.Up Open.Select Open.Cancel Open.Open SaveAs.Up SaveAs.Select SaveAs.Cancel SaveAs.Save Planning Operators File_ File_ File_ File_ Edit_ Edit_ Edit_ New Open* Save SaveAs* Cut Copy Paste

Phase 1: Operator Event Mapping Transforms GUI menu events into planning operators These results Returned as Planning operators to the Designer …who then specifies preconditions and effects for each planning operator

Phase 2: Test Case Generation Test case designer inputs defined operators into PATHS and identifies a task (initial state, goal state)‏ Planning Operators PATHS Defined Task Tests Cases Achieving Goal

Abstract Operator Decomposition Operators from the higher level need to be decomposed into lower level operations by Inserting expansion from operator-event mappings, or Making an additional call to the planner Hierarchical mechanism aids in regression testing since changes made to one component to do not necessarily invalidate all test cases.

Plan Generation: AI Planning Problem Planning Problem – P( Λ, D, I G ) P(Operator Set, Finite Set of Objects, Initial State, Goal State)‏ Solution – S i < S j – Step i must occur before Step j (not necessarily right before)‏ Causal Links -- Ensure no step threatens a required link

Partial Order Plans… …aids in deriving total order plan Add ordering constraints i.e. Linearization of partial-order plan … are solutions to a planning problem iff every consistent linearization of the partial-order plan meets the solution conditions Want to learn more about how the Authors implemented AI Planning…? We invite you to read about it in the paper. (IPP and HTN)‏

Evaluation: Empirical Approach A PATHS prototype was developed based Microsoft WordPad 325 GUI events Reduced to 32 system-interaction and abstract operators Evaluation: Empirical Approach 10-fold reduction of operators streamline plan generation (phase 2 of PATHS)‏

Evaluation: Run Two Experiments Two experiments were run using the PATHS prototype Experiment 1: Generate test cases for multiple tasks Is PATHS practical and efficient? Experiment 2: Compare hierarchical vs. single- level test case generation Is the hierarchical modeling approach more efficient than single-level?

Experiment 1: Generating Test Cases for Multiple Tasks Use PATHS prototype to generate a suite of test cases for 9 WordPad tasks Deploy experiment on Pentium-based computer running Linux on 200Mb RAM Track times required to generate high-level plans and subplans PATHS is practical and efficient

Experiment 2: Hierarchical vs. Single-Level Test Case Generation Use PATHS prototype to generate test cases for 6 WordPad tasks Deploy experiment on same computer (Pentium-based running Linux on 200Mb RAM)‏ Track plan lengths Track times required to generate a single-level and a hierarchical test case Hierarchical test case generation is more efficient

Conclusions Applying AI planning to the problem is a good match Hierarchy of the model is efficient in generating test cases 4- to 6-fold saving in plan length Test case generated in seconds rather than hours New technique is scalable when software releases new version, operators can be recycled New technique is highly automated

PATHS: Contributions Use well-known and used AI planning technique capable of solving large-space problems Exploits structural features present in GUIs to reduce model size & complexity, and efficiently generate test cases Hierarchical Planning makes regression testing easier Increased portability – platform specific details incorporated last in test case generation Reuse of commonly-appearing operator definitions

Open Questions PATHS is practical, but is it useful? Preliminary exploration achieves 20-fold reduction in GUI events How does one measure usefulness? How well does PATHS scale? Manual analysis of operators will vary from application to application How good are the test cases generated by PATHS? Coverage Negative test cases

Related / Future Work Use library of operators to minimize human intervention How to automatically generate preconditions and effects of operators