The GUISurfer tool. GUI Inspection from Source Code Analysis

Similar documents
The GUISurfer tool: towards a language independent approach to reverse engineering GUI code

We are IntechOpen, the world s leading publisher of Open Access books Built by scientists, for scientists. International authors and editors

GUI Behavior from Source Code Analysis

A Generic Library for GUI Reasoning and Testing

An Approach for Graphical User Interface Bad Smells Detection

Characterizing the Control Logic of Web Applications User Interfaces

TOM: a Model-Based GUI Testing framework

Haskell Program Coverage Toolkit

Similarity management of 'cloned and owned' variants

Large Scale Repository Auditing to ISO José Carvalho

Universidade do Minho Escola de Engenharia. UMinho 2010 Carlos Eduardo Bastos e Marques da Silva Reverse Engineering of Rich Internet Applications

An annotation-centric approach to similarity management

What is Structural Testing?

A Shortcut Fusion Rule for Circular Program Calculation

Maximum Flows of Minimum Cost

Precept 4: Traveling Salesman Problem, Hierarchical Clustering. Qian Zhu 2/23/2011

Chapter 14 Section 3 - Slide 1

CS 525M Mobile and Ubiquitous Computing Seminar. Michael Theriault

WebProtégé. Protégé going Web. Tania Tudorache, Jennifer Vendetti, Natasha Noy. Stanford Center for Biomedical Informatics

Solving the Rural Postman Problem by Memetic Algorithms

The TDAQ Analytics Dashboard: a real-time web application for the ATLAS TDAQ control infrastructure

Graphical Querying of Model-Driven Spreadsheets

Columbus: A Tool for Discovering User Interface Models in Component-based Web Applications

8. The Postman Problems

RIGOROUSLY AUTOMATING TRANSFORMATIONS OF UML BEHAVIOR MODELS

A Tree Kernel Based Approach for Clone Detection

UML Checker A Toolset for Conformance Testing against UML Sequence Diagrams

Challenges that can be overcome with the aid of ESA GIM Click to edit Master text styles

Type-Safe Two-Level Data Transformation

User Manual. phr.mtbc.com

A compiler and simulator for partial recursive functions over neural networks

Frama-C s metrics plug-in

Practice Final Exam 1

Discovery-based Edit Assistance for Spreadsheets

From Spreadsheets to Relational Databases and Back

Talen en Compilers. Jurriaan Hage , period 2. November 13, Department of Information and Computing Sciences Utrecht University

Utilizing NCBO Tools to Develop & Use an ECG Ontology

Pega Foundation for Healthcare

Coverage. Ioannis Rekleitis

Visual Application Usage Modeling with UCML 1.1. Scott Barber Chief Technology Officer PerfTestPlus, Inc. STAR East, 2004 Orlando, FL

Programming. Introduction to the course

Timelog System on Android OS

OpenEdge Legacy Application Modernization by Example. Mike Fechner, Consultingwerk Ltd.

PROCE55 Mobile: Web API App. Web API.

좋은 발표란 무엇인가? 정영범 서울대학교 5th ROSAEC Workshop 2011년 1월 6일 목요일

Module 11: Additional Topics Graph Theory and Applications

Chapter 5. Software Tools

Optimizing CPU Performance: Image Creation in Computer Graphics

Overview of WebAdmin and UI Frameworks

Formal languages and computation models

Experimental Comparison of Different Techniques to Generate Adaptive Sequences

Coverage. Ioannis Rekleitis

Number Theory and Graph Theory

Management. Software Quality. Dr. Stefan Wagner Technische Universität München. Garching 28 May 2010

Collaborative & WebProtégé

Electronic Medical Records and Javascript Object Notation(JSON) DR. EVREN ERYILMAZ CALIFORNIA STATE UNIVERSITY SACRAMENTO 10/24/2016

Building the Abstract Syntax Trees

5.1 Min-Max Theorem for General Matching

SE310 Analysis and Design of Software

RECODER - The Architecture of a Refactoring System

Network Verification Using Atomic Predicates (S. S. Lam) 3/28/2017 1

FAdo: Interactive Tools for Learning Formal Computational Models

Test Automation. Fundamentals. Mikó Szilárd

Frama-C s metrics plug-in

DAT159 Refactoring (Introduction)

Design and Analysis of Algorithms

Syntax and Grammars 1 / 21

Machine Learning for Software Engineering

A Relative Neighbourhood GRASP for the SONET Ring Assignment Problem

Erlang and Node.JS or, better, Criteria for evaluating technology. Lev Walkin, CTO

Processing XML: a rewriting system approach

Graph theory and GIS

A Process-Centric Data Mining and Visual Analytic Tool for Exploring Complex Social Networks

EB GUIDE Studio and EB GUIDE Speech Extension. Dan Henderlong June 2016

The Visitor Pattern. Design Patterns In Java Bob Tarr

ECMAP: AN EMBEDDABLE WEB-BASED CONCEPT MAP EDITOR

Math/Stat 2300 Modeling using Graph Theory (March 23/25) from text A First Course in Mathematical Modeling, Giordano, Fox, Horton, Weir, 2009.

Parser Generation in Perl: Crafting an AnTLR Back-end

Beyond DTDs: Constraining Data Content. Language Processing and Specification Group Computer Science Department University of Minho Portugal

Software Clone Detection. Kevin Tang Mar. 29, 2012

The Haskell Refactorer, HaRe, and its API

What and Why? Reverse Engineering. I. First Contact: the Forces. The Reengineering Life-Cycle

From Test Legacy to Model- Based Testing How to refactor an existing test repository into an MBT model?

Model-Based Testing. (DIT848 / DAT260) Spring Lecture 10 FSMs, EFSMs and ModelJUnit

Model Driven Dynamic Composition of Web Services Flow for Business Process Integration

7. Introduction to Denotational Semantics. Oscar Nierstrasz

GISP: The Road to and Through an Exam. Presented By: Bill Hodge, GISP Executive Director GISCI June 7, 2017 GeoEd 17

Discrete mathematics

International Journal for Management Science And Technology (IJMST)

Compositional Model Based Software Development

Healthcare Common Codes Solution

Program Validation and Testing

1. The Highway Inspector s Problem

CS153: Compilers Lecture 15: Local Optimization

Theory of Computing. Lecture 10 MAS 714 Hartmut Klauck

Pega Foundation for Healthcare

a. The following method would allow an object of the static type List<String> to be passed to it as an argument.

Frama-C's metrics plug-in

Edge Groups: An Approach to Understanding the Mesh Quality of Marching Methods

ON EXERCISING EVERY LINK OF A WEB-SITE WITH MINIMAL EFFORT VAIDYANATHAN SIVARAMAN SCHOOL OF COMPUTER SCIENCE AND ENGINEERING, ANNA UNIVERSITY

Transcription:

GUI Inspection from Source Code Analysis João Carlos Silva 1,2 João Saraiva 1 José Creissac 1 1 Departamento de Informática/CCTC Universidade do Minho 2 Departamento de Tecnologia Instituto Politécnico do Cávado e do Ave Portugal Fourth International Workshop on Foundations and Techniques for Open Source Software Certification (OpenCert 2010) Setember 17-18, 2010

GUI Model-based Analysis Models guide the development process Models help in the maintenance and evolution of software Objectives: Static analysis of interactive applications from source code Usability and implementation quality GUI maintenance and evolution Approach: Extraction of GUI layer (event-based toolkits) Automatic extraction of behavioral models

Paper Goal Motivation On going work: Models extraction from source code GUI behavior representation Integration of testing techniques Language-independent tool

The GUISurfer Architecture Language dependent Parser/Grammar Language independent Source code GUI Business Data Abstract Syntax Tree Code slicing GUI Layer GUI Reasoning GUI Maintenance GUI Evolution Usability Implementation Quality

Reverse Engineering of GUI source code Generic approach easily re-targetable: Look for widgets: user input, user selection, user action, output to user Traversal of the AST to detect GUI subtrees Based on program dependency graph Pre-defined set of generic traversal functions GUI components constructors

GUISurfer - Configurable tools GUISurfer is composed by three tools: FileParser: Parse a particular source code file. Generate the abstract syntax tree AstAnalyser: Slice an abstract syntax tree. Entry point and list of widgets as parameters Graph: Generates several metadata files and models with events, conditions, actions and states (Set of fragments of the AST)

An Interactive Agenda - Java/Swing - WxHaskell

Flow Between Windows

Window Internal Behavior Windows behavior: Login window MainForm Window Find window ContactEditor Window

Graph Theory Applied to State Machine Reasonning States machines as graphs: States are vertices, events are edges Refactoring: We can compute an equivalent machine with the minimum number of states Dead code elimination: Detect if all states are reachable from the initial one Test case generation: Chinese Postman algorithm checking every event through properties Traveling salesman checking every state through properties Center of a graph: main window at a central point

Graph Operators: Intersection, Union and Difference Intersection of two different versions

GUI Metrics Motivation Use of Graph-Tool for the manipulation and statistical analysis of graphs; Shortest distance between vertices; Pagerank; Betweeness; Cyclomatic complexity;

Pagerank Algorithm

Betweenness Algorithm 0.102564102564 0.121794871795 1.01.0 16.8241758242 18.8021978022 14.8461538462 0.0448717948718 5.61538461538 5.61538461538 1.65934065934 0.108974358974 0.0833333333333 20.7802197802 25.3956043956 12.2087912088 1.65934065934 0.166666666667 0.455128205128 5.61538461538 5.61538461538 1.01.01.01.0 12.2087912088 17.4835164835 0.0448717948718 1.01.01.0 0.0 9.57142857143 0.0769230769231 24.7362637363 8.91208791209 1.0 2.31868131868 15.5054945055 0.0 0.128205128205 0.173076923077 0.0 20.7802197802

GUI Test Cases Generation Coverage criteria: event coverage: set of event-sequences considering all possible events; state coverage: each state reached at least once; length-n-event-sequence coverage: set of event-sequences which contains all event-sequences of length equal to n; Chinese Postman Tour; Travelling Salesman Problem;

Case Study Motivation Java/Swing application: Healthcare management system source code from Planet-Source-Code.com 66 classes; 29 windows forms (included message box); patients and doctors management; bills of patients display;

Windows Form Example: Add Patient

Case Study: Results...

Use of QuickCheck: a haskell library tool for testing haskell programs automatically. haskell specification of the GUI Properties definition QuickCheck tests the properties in a large number of randomly generated cases GUISurfer back-end extension: generalizing the approach to new languages and toolkits (GWT, JavaScript)

Conclusions and Future Work Able to derive user interface models of interactive computing system Support for Java, WxHaskell and GWT available Plan to extend our implementation to handle more complex user interfaces Development of a web portal

GUI Inspection from Source Code Analysis João Carlos Silva 1,2 João Saraiva 1 José Creissac 1 1 Departamento de Informática/CCTC Universidade do Minho 2 Departamento de Tecnologia Instituto Politécnico do Cávado e do Ave Portugal Fourth International Workshop on Foundations and Techniques for Open Source Software Certification (OpenCert 2010) Setember 17-18, 2010