Software Engineering Research paper presentation Ali Ahmad Formal Approaches to Software Testing Hierarchal GUI Test Case Generation Using Automated Planning.

Slides:



Advertisements
Similar presentations
A Method for Validating Software Security Constraints Filaret Ilas Matt Henry CS 527 Dr. O.J. Pilskalns.
Advertisements

© SMARTESTING 2011 – This document is the property of Smartesting. It may not be reproduced in whole or in part Cliquez pour modifier le style du titre.
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
CS0004: Introduction to Programming Visual Studio 2010 and Controls.
CS 290C: Formal Models for Web Software Lecture 4: Implementing and Verifying Statecharts Specifications Using the Spin Model Checker Instructor: Tevfik.
Karolina Muszyńska Based on:
UML (Sequence Diagrams, Collaboration and State Chart Diagrams) Presentation By - SANDEEP REDDY CHEEDEPUDI (Student No: ) - VISHNU CHANDRADAS (Student.
Software Requirements Engineering
1 Formal Methods in SE Qaisar Javaid Assistant Professor Lecture 05.
Automated creation of verification models for C-programs Yury Yusupov Saint-Petersburg State Polytechnic University The Second Spring Young Researchers.
Object-Oriented Analysis and Design
Introduction To System Analysis and Design
Software Testing and Quality Assurance
Software Testing and Quality Assurance
Rational Rose Basics Visual Modeling Textbook – Chapter 3
Hierarchical GUI Test Case Generation Using Automated Planning Atif M. Memon, Student Member, IEEE, Martha E. Pollack, and Mary Lou Soffa, Member, IEEE.
Modeling State-Dependent Objects Using Colored Petri Nets
Chapter 1 Principles of Programming and Software Engineering.
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.
Introduction to Software Testing
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
02/06/05 “Investigating a Finite–State Machine Notation for Discrete–Event Systems” Nikolay Stoimenov.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
Cheng/Dillon-Software Engineering: Formal Methods Model Checking.
Java Programming, 2E Introductory Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
1 Object-Oriented Testing CIS 375 Bruce R. Maxim UM-Dearborn.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 8: Modelling Interactions and Behaviour.
Copyright © Siemens AG All rights reserved. Essential Criteria on MBT to Ensure Quality of Software in Industry PVR Murthy Andreas Ulrich Siemens.
Scientific Computing By: Fatima Hallak To: Dr. Guy Tel-Zur.
Institute e-Austria in Timisoara 1 Author: prep. eng. Calin Jebelean Verification of Communication Protocols using SDL ( )
Object-Oriented Modeling Using UML CS 3331 Section 2.3 of Jia 2003.
Model Based Testing Group 7  Nishanth Chandradas ( )  George Stavrinides ( )  Jeyhan Hizli ( )  Talvinder Judge ( )  Saajan.
Systems Analysis and Design in a Changing World, 3rd Edition
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
1 Introduction to Software Engineering Lecture 1.
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
7 Systems Analysis and Design in a Changing World, Fifth Edition.
1 Qualitative Reasoning of Distributed Object Design Nima Kaveh & Wolfgang Emmerich Software Systems Engineering Dept. Computer Science University College.
1 Checking Interaction Consistency in MARMOT Component Refinements Yunja Choi School of Electrical Engineering and Computer Science Kyungpook National.
1 CSEP590 – Model Checking and Automated Verification Lecture outline for August 6, 2003.
Formal Methods.
Slide 13.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
12 Chapter 12: Advanced Topics in Object-Oriented Design Systems Analysis and Design in a Changing World, 3 rd Edition.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Systems Analysis and Design in a Changing World, Fourth Edition
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Generating Software Documentation in Use Case Maps from Filtered Execution Traces Edna Braun, Daniel Amyot, Timothy Lethbridge University of Ottawa, Canada.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Course: COMS-E6125 Professor: Gail E. Kaiser Student: Shanghao Li (sl2967)
Prof. Hany H. Ammar, CSEE, WVU, and
Requirement Analysis SOFTWARE ENGINEERING. What are Requirements? Expression of desired behavior Deals with objects or entities, the states they can be.
OBJECT-ORIENTED TESTING. TESTING OOA AND OOD MODELS Analysis and design models cannot be tested in the conventional sense. However, formal technical reviews.
1 7 Systems Analysis and Design in a Changing World, 2 nd Edition, Satzinger, Jackson, & Burd Chapter 7 The Object-Oriented Approach to Requirements.
Introduction to UML and Rational Rose UML - Unified Modeling Language Rational Rose 98 - a GUI tool to systematically develop software through the following.
© 2009 Artisan Software Tools. All rights reserved. Testing Solutions with UML/SysML Andrew Stuart, Matthew Hause.
The PLA Model: On the Combination of Product-Line Analyses 강태준.
Principles of Programming & Software Engineering
An Overview of Requirements Engineering Tools and Methodologies*
Principles of Programming and Software Engineering
Graph Coverage for Specifications CS 4501 / 6501 Software Testing
An Introduction to Visual Basic .NET and Program Design
VISUAL BASIC – CHAPTER ONE NOTES An Introduction to Visual Basic
Chapter 1 Introduction(1.1)
Graph Coverage for Specifications CS 4501 / 6501 Software Testing
Scriptless Test Automation through Graphical User Interface
Design Yaodong Bi.
Presentation transcript:

Software Engineering Research paper presentation Ali Ahmad Formal Approaches to Software Testing Hierarchal GUI Test Case Generation Using Automated Planning

Formal Approaches to Software Testing P. Dasiewicz IEEE Canadian Conference on Electrical and Computer Engineering 2002

Introduction Software Testing: checking and validating the correctness of software Time consuming Difficult Error prune Formal methods Specifying and verifying software systems using mathematical and logical approaches Target: proof of correctness Some verification techniques Model Checking State space exploration

Introduction (cont’d) Current methods are not feasible Too much manual effort Models that are very complex for analysis It is needed to overcome the following The state explosion problem Cost of creating models Applicability: Design level Less complexity May reduce maintenance costs

Introduction (cont’d) UML Simple, general purpose, visual modeling Specify, visualize, construct and document UML-statechart  basis for dynamic behavioral description Objectives: Overview model checking to the validation and test case generation (using UML statecharts and interaction diagrams) Applicability of formal methods to component integration and interaction testing

Integration/Component Level Testing Offutt Changes in component states due to change events UMLTEST, integrated with Rational Rose  Highly effective test cases can be generated for system level specification Test prefix: ensure that the system a certain pre state before performing the test Issues: Interaction is not considered Some states may never been entered Incorporated UML collaboration diagrams

Integration/Component Level Testing (cont’d) Yoon Test case generation based on UML sequence and collaboration diagrams A node that represents both integration target and message flow Testing technique Extract sequence diagram If concurrency, extract collaboration diagram Divide into ASF (Atomic System Function) Extract nodes and message flows Obtain test cases by applying test criteria (e.g. all-edge) Limitations May require a large number of sequence diagrams Test case coverage (only normal or abnormal flow)

Integration/Component Level Testing (cont’d) Kim Divide statecharts into extended finite state machines Control flows are represented as paths Coverage criteria Path coverage State coverage Transition coverage Test cases breadth or depth first searches can be generated using the data flow on the UML statechart Determine whether class implements correct control and data flow

System/Integration Testing Hartmann Testing the interfaces among several components UML statecharts  Mealy Finite State Machines with restricted point to point synchronous communication model Incremental composition and reduction algorithm Test cases: category partition method Limitations Interaction are modeled as synchronous communications Event exchanges contain no parameters No support for nested machines

Source Code Based Testing Major problem: State space explosion problem Reducing the state space entails eliminating irrelevant code segments Hatcliff Program slicing techniques Used by Bandera for translating Java code to Jimple, e.g. SPIN, SMV  Generates a finite state model for the reduced code Java Path Finder Integrates model checking, program analysis and Testing Goal: Apply formal methods at source level Initially, check for safety properties like deadlocks (LockTree)

Translation of Statecharts Promela: input modeling language for SPIN C-like, extended with non-deterministic, and loop guarded constructs Latella presents a translation from UML statecharts into Promela, where statecharts are first converted to hierarchal automata. A proof of correctness is also given

Component Interaction Testing Major issue: Are the components developed separately work properly together Formal methods of component interaction Define testing requirements Automatically generate the test cases using model checking Focus of author’s research: Component interaction of software systems Detect subtle interaction errors without duplicating the unit level Underlying model: Labeled transition system ObjectState: modeling language to show the feasibility of creating formal models, it relies on hierarchal FSM.

Hierarchal GUI Test Case Generation Using Automated Planning Memon A., Pollack M., Lou Soffa M. IEEE Transactions on Software Engineering 2000

Introduction GUI testing is difficult The interaction space is enormous Determining the coverage of test cases Regression testing is a major challenge Automation is necessary for generating GUI test cases PATHS: Planning Assisted Tester for grapHical user interface Systems Input: Possible goals for GUI user Generates sequences of events to satisfy the user goals, these become test cases

Introduction (cont’d) PATHS performs automated analysis of the hierarchal structure of the GUI to create hierarchal operators that will be used during plan generation Contribution to Research Make use of an AI technique (Automated Planning) Exploits GUI structural features Makes Regression testing easier The test suite is portable Allow the reuse of operator definitions that commonly appear across GUIs

Overview GUI consists of components like labels, buttons, menus, and pop-up lists Example: Microsoft WordPad GUI has 2 types of windows GUI windows Object windows, doesn’t contain any window components

Overview (cont’d) PATHS- Plan Generation Inputs Initial state Goal state A set of operators applied to a set of objects Preconditions and effects Solution to a Planning Problem: sequence of instantiated operators which result in the goal state when executed in the initial state 2 Phases Setup Create a hierarchal model of the GUI Plan Generation Specify scenarios (initial and goal states) PATHS generate a test suit for the scenarios

Overview (cont’d) Role of Test Designer and PATHS during test generation GUI Events and Planning Operators

Overview (cont’d) Operator Event Mapping Example operator: Edit_Cut Abstract: Invokes a window that monopolizes the user interaction

Overview (cont’d) High level plan Expanded plan

Plan Generation GUI test case generation can be modeled by hierarchal plans that doesn’t require conflict resolution

Planning GUI Test Cases Developing a representation for the GUI and its operators Operator Derivation Process Traverse the GUI and press on its components, the label is read off the component label GUI events Menu open (File, Edit) Unrestricted focus (Basic shapes in PowerPoint) Restricted focus (Edit-Preferences in PowerPoint) System-interaction (Cut and paste) Planning Operators System-Interaction Abstract Modeling Initial and Goal States and Generating Test Cases using algorithm Generating multiple plans in PATHS Creating multiple linearizations of the partial plans Repeating the planning process, thus generating a different test case

Planning GUI Test Cases (Cont’d)

Some Experimental Results Multiple Tasks Hierarchal vs. Single Layer

Questions