SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
Reverse Engineering Finite State
 Machines from Rich Internet
         Applications

                 Domenico Amalfitano
                  Anna Rita Fasolino
                 Porfirio Tramontana
              Dipartimento di Informatica e Sistemistica
                University of Naples Federico II, Italy
Motivation

   In the last years, Rich Internet Applications (RIAs) have
    emerged as a new generation of web applications
    offering greater usability and interactivity than traditional
    ones.
         Web pages have been transformed in complex GUIs with
          synchronous and asynchronous interactions with the user and
          with the resources


   Key problems:
         to define models that are suitable for RIAs representation
         to define Reverse Engineering techniques for the abstraction of
          the proposed model

Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008                  2
RIA pages vs plain HTML pages

   Complex interactions between the user and the RIA
    in the browser environment are designed and
    implemented in Javascript
         A simple model comprehending only pages and forms (e.g.
          the Conallen model) is not more suitable to describe RIAs


   Javascript event handlers can be associated to any
    DOM element and are able to modify the DOM
    instance itself
   XHR objects are also able to manage Http
    communications

Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008                3
RIA Interactions Conceptual model
• A Client
Interface                                           +Builds                                                Server Page              Server Resource

correspond to the                                                                                  1
                                                                                                                 1                       1
DOM instanced at                *         1..*
                                                                           Transition
a given time in the              Client Interface       1..*
                                                                   +End Transition Timestamp
                                                                                                                 *                      *
                                                                                                           Web Page Request             XHR Request
browser                               1
                                                                           0..1


• The raise of an                     1
                                                                            1
                                                                                                                     Http Request
event to which an                      DOM                             Raised Event
                                                                                        1
                                                                                                          0..*
                                                                       +Timestamp
event handler is                                                       *
                                                                                                                                    1
                                                                                  1                    Time Event Listener
associated can                                                                              0..*

cause a transition                        1..*                         1                                                            1
to another client                   DOM Element                       Event Listener                                   Http Response Event Listener
interface (i.e. a                                   1..*       *

variation of the                                    Event Handler

DOM)                                                                                                                   User Event Listener




  Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008                                                                                          4
Transition Graph
   RIA interactions can be modelled as a Transition
    Graph, where

         each node is associated with a distinct Client Interface
         each edge corresponds to the raise of an event
               The event handler execution causes the variation between Client
                Interfaces.




Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008                            5
Reverse Engineering Process 1/2
  In order to reconstruct the model of a RIA, a three steps process
  has been proposed

     The Extraction step is obtained by dynamic analysis

     A user navigates the RIA while it is monitored.
          Probes applied externally to the DOM structure allow the tracing of
         the complete cycle of event raising/handling with a non-invasive
         approach

         For each observed Client Interface the complete set of tags, attributes
         and event handlers is stored
                                                         End Tracing


                           Start Tracing      Event Waiting       Raised Event   Event Handling Completion Waiting

                                           entry/DOM Extraction                  entry/Transition Tracing
                                                                                 exit/End transition Tracing


                                                          Event Handling Completed


Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008                                                               6
Reverse Engineering Process 2/2
   In this step the retrieved information are analyzed in order to abstract the
    FSM Model of the RIA
   Two open issues:
         When a Client Interface should be considered equivalent to a previously visited
          one?
         What DOM elements and properties should be considered in order to compare
          two Client Interfaces?

   Two possible criteria to cluster together a pair of Client Interfaces have
    been proposed:
         Criterion C1 considers equivalent two Client Interfaces if the corresponding DOM
          structures include the same set of DOM elements with the same registered event
          listeners and handlers
         Criterion C2 considers equivalent two Client Interfaces if the criterion C1 is
          satisfied and the set of Http requests and time event listeners are equivalent,
          too.

   A Concept Assignment step, assisted by an expert, must be carried in order
    to assess if the applied equivalence criterion has been able to cluster
    together Client Interfaces corresponding to actual Interaction States
Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008                                      7
RE-RIA Tool
• The Tool supports the proposed Reverse Engineering Process
• It is realised in Java with JavaXPCOM library in order to embed a Mozilla
instance into the tool


                                       GUI
   Extractor
                                                         Abstractor
                    DOM Querying     Browser
    DOM                                                  Clustering
  Extractor


  Trace Extractor                   Reverse                 FSM
                                   Engineering           Abstractor
                                     Process
                                    Manager




                                                  <<artifact>>
                                   <<artifact>>   Statechart
                                    DataBase       Diagram




 Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008                       8
An example (1/2)

• Based on FilmDB Ajax application
for data management of a personal
movie archive.


• Five Users Sessions corresponding
to the entering/exiting the personal
movie area use case scenarios were
exercised by a user and traced and
collected by the tool                                      SCHERMATA FILMDB


• A Transition Graph with 60 nodes
and 59 edges was preliminary
obtained


  Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008                      9
Example (2/2)

• The C1 criterion was able to
reduce the TG to 8 nodes and 22
transitions

• A Concept Assignment activity
revealed that some nodes could not
be associated with meaningful
states, but had to be split into
further logical states.

• The C2 criterion produced a TG
with 12 nodes and 23 transitions
that was validated by the Concept
Assignment activity



  Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008   10
Conclusions and Future Works

   This paper presented the initial results of a research
    project that aims at defining and validating techniques for
    reverse engineering software representation models from
    Rich Internet Applications.

   The proposing clustering criteria seems to be useful for
    the abstraction of a compact behaviour model of the RIA
    interfaces
         Further criteria that are able to reduce the Concept Assignment
          step effort will be proposed in future
   The suitability of the obtained model to specific tasks,
    such as GUI testing, quality evaluation, migration to
    services will be explored in future works

Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008                      11
Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008   12

Más contenido relacionado

Destacado

Cosplay inteligencia
Cosplay inteligenciaCosplay inteligencia
Cosplay inteligenciaAgustin Pimod
 
Generacion de las computadoras
Generacion de las computadorasGeneracion de las computadoras
Generacion de las computadorasjulian massacesi
 
Curso de gestión y finanzas 3 costos (pto equilibrio)
Curso de gestión y finanzas 3 costos (pto equilibrio)Curso de gestión y finanzas 3 costos (pto equilibrio)
Curso de gestión y finanzas 3 costos (pto equilibrio)Nodo De Industrias Creativas
 
Data Mining with Splunk
Data Mining with SplunkData Mining with Splunk
Data Mining with SplunkDavid Carasso
 
Pensamentos de Jim Collins
Pensamentos de Jim CollinsPensamentos de Jim Collins
Pensamentos de Jim CollinsGustavo Campos
 
PUEBLOS INDIGENAS DE CHILE
PUEBLOS INDIGENAS DE CHILEPUEBLOS INDIGENAS DE CHILE
PUEBLOS INDIGENAS DE CHILEgloriamillacheo
 
Manual de usuario - detector de gas y alarma de hombre encerrado
Manual de usuario - detector de gas y alarma de hombre encerradoManual de usuario - detector de gas y alarma de hombre encerrado
Manual de usuario - detector de gas y alarma de hombre encerradoAKOSYS - Industrial Refrigeration
 

Destacado (7)

Cosplay inteligencia
Cosplay inteligenciaCosplay inteligencia
Cosplay inteligencia
 
Generacion de las computadoras
Generacion de las computadorasGeneracion de las computadoras
Generacion de las computadoras
 
Curso de gestión y finanzas 3 costos (pto equilibrio)
Curso de gestión y finanzas 3 costos (pto equilibrio)Curso de gestión y finanzas 3 costos (pto equilibrio)
Curso de gestión y finanzas 3 costos (pto equilibrio)
 
Data Mining with Splunk
Data Mining with SplunkData Mining with Splunk
Data Mining with Splunk
 
Pensamentos de Jim Collins
Pensamentos de Jim CollinsPensamentos de Jim Collins
Pensamentos de Jim Collins
 
PUEBLOS INDIGENAS DE CHILE
PUEBLOS INDIGENAS DE CHILEPUEBLOS INDIGENAS DE CHILE
PUEBLOS INDIGENAS DE CHILE
 
Manual de usuario - detector de gas y alarma de hombre encerrado
Manual de usuario - detector de gas y alarma de hombre encerradoManual de usuario - detector de gas y alarma de hombre encerrado
Manual de usuario - detector de gas y alarma de hombre encerrado
 

Similar a Reverse Engineering Finite State Machines from Rich Internet Applications

Performance analysisclass
Performance analysisclassPerformance analysisclass
Performance analysisclassDaniel Austin
 
Tutorial on Constructing a Web-Server with Patterns at ADC 2004
Tutorial on Constructing a Web-Server with Patterns at ADC 2004 Tutorial on Constructing a Web-Server with Patterns at ADC 2004
Tutorial on Constructing a Web-Server with Patterns at ADC 2004 David Freitas
 
Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia real-time c...
Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia real-time c...Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia real-time c...
Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia real-time c...Luis Lopez
 
Reactive programming
Reactive programmingReactive programming
Reactive programmingSUDIP GHOSH
 
Analytics driven SDN and commodity switches
Analytics driven SDN and commodity switchesAnalytics driven SDN and commodity switches
Analytics driven SDN and commodity switchesnetvis
 
Metrics, metrics everywhere (but where the heck do you start?)
Metrics, metrics everywhere (but where the heck do you start?)Metrics, metrics everywhere (but where the heck do you start?)
Metrics, metrics everywhere (but where the heck do you start?)Tammy Everts
 
Metrics, Metrics Everywhere (but where the heck do you start?)
Metrics, Metrics Everywhere (but where the heck do you start?)Metrics, Metrics Everywhere (but where the heck do you start?)
Metrics, Metrics Everywhere (but where the heck do you start?)SOASTA
 
Metrics, Metrics Everywhere (but where the heck do you start?)
Metrics, Metrics Everywhere (but where the heck do you start?)Metrics, Metrics Everywhere (but where the heck do you start?)
Metrics, Metrics Everywhere (but where the heck do you start?)SOASTA
 
Openshift YARN - strata 2014
Openshift YARN - strata 2014Openshift YARN - strata 2014
Openshift YARN - strata 2014Hortonworks
 
Turning Web Applications into Web Services by Wrapping Techniques
Turning Web Applications into Web Services by Wrapping TechniquesTurning Web Applications into Web Services by Wrapping Techniques
Turning Web Applications into Web Services by Wrapping TechniquesPorfirio Tramontana
 
The path towards pervasive computing
The path towards pervasive computingThe path towards pervasive computing
The path towards pervasive computingMichel Burger
 
kurento-nubomedia-first-steps-v1
kurento-nubomedia-first-steps-v1kurento-nubomedia-first-steps-v1
kurento-nubomedia-first-steps-v1Luis Lopez
 
HWIOS Websocket CMS explained
HWIOS Websocket CMS explainedHWIOS Websocket CMS explained
HWIOS Websocket CMS explainedos-networks
 
Overview of Microsoft .Net Remoting technology
Overview of Microsoft .Net Remoting technologyOverview of Microsoft .Net Remoting technology
Overview of Microsoft .Net Remoting technologyPeter R. Egli
 
Server-Side Programming Primer
Server-Side Programming PrimerServer-Side Programming Primer
Server-Side Programming PrimerIvano Malavolta
 
FIWARE CEP GE introduction, ICT 2015
FIWARE CEP GE introduction, ICT 2015FIWARE CEP GE introduction, ICT 2015
FIWARE CEP GE introduction, ICT 2015ishkin
 

Similar a Reverse Engineering Finite State Machines from Rich Internet Applications (20)

Web Transactions
Web TransactionsWeb Transactions
Web Transactions
 
Performance analysisclass
Performance analysisclassPerformance analysisclass
Performance analysisclass
 
Tutorial on Constructing a Web-Server with Patterns at ADC 2004
Tutorial on Constructing a Web-Server with Patterns at ADC 2004 Tutorial on Constructing a Web-Server with Patterns at ADC 2004
Tutorial on Constructing a Web-Server with Patterns at ADC 2004
 
Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia real-time c...
Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia real-time c...Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia real-time c...
Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia real-time c...
 
Reactive programming
Reactive programmingReactive programming
Reactive programming
 
Analytics driven SDN and commodity switches
Analytics driven SDN and commodity switchesAnalytics driven SDN and commodity switches
Analytics driven SDN and commodity switches
 
Metrics, metrics everywhere (but where the heck do you start?)
Metrics, metrics everywhere (but where the heck do you start?)Metrics, metrics everywhere (but where the heck do you start?)
Metrics, metrics everywhere (but where the heck do you start?)
 
Metrics, Metrics Everywhere (but where the heck do you start?)
Metrics, Metrics Everywhere (but where the heck do you start?)Metrics, Metrics Everywhere (but where the heck do you start?)
Metrics, Metrics Everywhere (but where the heck do you start?)
 
Metrics, Metrics Everywhere (but where the heck do you start?)
Metrics, Metrics Everywhere (but where the heck do you start?)Metrics, Metrics Everywhere (but where the heck do you start?)
Metrics, Metrics Everywhere (but where the heck do you start?)
 
Openshift YARN - strata 2014
Openshift YARN - strata 2014Openshift YARN - strata 2014
Openshift YARN - strata 2014
 
From Data Push to WebSockets
From Data Push to WebSocketsFrom Data Push to WebSockets
From Data Push to WebSockets
 
Turning Web Applications into Web Services by Wrapping Techniques
Turning Web Applications into Web Services by Wrapping TechniquesTurning Web Applications into Web Services by Wrapping Techniques
Turning Web Applications into Web Services by Wrapping Techniques
 
The path towards pervasive computing
The path towards pervasive computingThe path towards pervasive computing
The path towards pervasive computing
 
Ws
WsWs
Ws
 
kurento-nubomedia-first-steps-v1
kurento-nubomedia-first-steps-v1kurento-nubomedia-first-steps-v1
kurento-nubomedia-first-steps-v1
 
SOA patterns
SOA patterns SOA patterns
SOA patterns
 
HWIOS Websocket CMS explained
HWIOS Websocket CMS explainedHWIOS Websocket CMS explained
HWIOS Websocket CMS explained
 
Overview of Microsoft .Net Remoting technology
Overview of Microsoft .Net Remoting technologyOverview of Microsoft .Net Remoting technology
Overview of Microsoft .Net Remoting technology
 
Server-Side Programming Primer
Server-Side Programming PrimerServer-Side Programming Primer
Server-Side Programming Primer
 
FIWARE CEP GE introduction, ICT 2015
FIWARE CEP GE introduction, ICT 2015FIWARE CEP GE introduction, ICT 2015
FIWARE CEP GE introduction, ICT 2015
 

Más de Porfirio Tramontana

An Approach for Model Based Testing of Augmented Reality Applications.pdf
An Approach for Model Based Testing of Augmented Reality Applications.pdfAn Approach for Model Based Testing of Augmented Reality Applications.pdf
An Approach for Model Based Testing of Augmented Reality Applications.pdfPorfirio Tramontana
 
Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...
Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...
Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...Porfirio Tramontana
 
Techniques and Tools for Mobile Testing Automation
Techniques and Tools for Mobile Testing AutomationTechniques and Tools for Mobile Testing Automation
Techniques and Tools for Mobile Testing AutomationPorfirio Tramontana
 
A technique for parallel gui testing of android applications
A technique for parallel gui testing of android applicationsA technique for parallel gui testing of android applications
A technique for parallel gui testing of android applicationsPorfirio Tramontana
 
Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...
Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...
Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...Porfirio Tramontana
 
Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...
Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...
Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...Porfirio Tramontana
 
Web Application Testing in Fifteen Years of WSE
Web Application Testing in Fifteen Years of WSEWeb Application Testing in Fifteen Years of WSE
Web Application Testing in Fifteen Years of WSEPorfirio Tramontana
 
Comprehending Web Applications by a Clustering Based Approach
Comprehending Web Applications by a Clustering Based Approach Comprehending Web Applications by a Clustering Based Approach
Comprehending Web Applications by a Clustering Based Approach Porfirio Tramontana
 
Reverse Engineering Web Applications
Reverse Engineering Web ApplicationsReverse Engineering Web Applications
Reverse Engineering Web ApplicationsPorfirio Tramontana
 
Recovering Interaction Design Patterns in Web Applications
Recovering Interaction Design Patterns in Web Applications Recovering Interaction Design Patterns in Web Applications
Recovering Interaction Design Patterns in Web Applications Porfirio Tramontana
 
Improving Usability of Web Pages for Blind
Improving Usability of Web Pages for BlindImproving Usability of Web Pages for Blind
Improving Usability of Web Pages for BlindPorfirio Tramontana
 
Techniques and Tools for Rich Internet Applications Testing
Techniques and Tools for Rich Internet Applications TestingTechniques and Tools for Rich Internet Applications Testing
Techniques and Tools for Rich Internet Applications TestingPorfirio Tramontana
 
Comprehending Ajax Web Applications by the DynaRIA Tool
Comprehending Ajax Web Applications by the DynaRIA ToolComprehending Ajax Web Applications by the DynaRIA Tool
Comprehending Ajax Web Applications by the DynaRIA ToolPorfirio Tramontana
 
A GUI Crawling-based Technique for Android Mobile Application Testing
A GUI Crawling-based Technique for Android Mobile Application TestingA GUI Crawling-based Technique for Android Mobile Application Testing
A GUI Crawling-based Technique for Android Mobile Application TestingPorfirio Tramontana
 
Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...
Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...
Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...Porfirio Tramontana
 
Considering Context Events in Event-Based Testing of Mobile Applications
Considering Context Events in Event-Based Testing of Mobile Applications Considering Context Events in Event-Based Testing of Mobile Applications
Considering Context Events in Event-Based Testing of Mobile Applications Porfirio Tramontana
 
Using GUI Ripping for Automated Testing of Android Apps
Using GUI Ripping for Automated Testing of Android AppsUsing GUI Ripping for Automated Testing of Android Apps
Using GUI Ripping for Automated Testing of Android AppsPorfirio Tramontana
 
A Toolset for GUI Testing of Android Applications
A Toolset for GUI Testing of Android ApplicationsA Toolset for GUI Testing of Android Applications
A Toolset for GUI Testing of Android ApplicationsPorfirio Tramontana
 
DynaRIA: a Tool for Ajax Web Application Comprehension
DynaRIA: a Tool for Ajax Web Application ComprehensionDynaRIA: a Tool for Ajax Web Application Comprehension
DynaRIA: a Tool for Ajax Web Application ComprehensionPorfirio Tramontana
 
Rich Internet Application Testing Using Execution Trace Data
Rich Internet Application Testing  Using Execution Trace Data Rich Internet Application Testing  Using Execution Trace Data
Rich Internet Application Testing Using Execution Trace Data Porfirio Tramontana
 

Más de Porfirio Tramontana (20)

An Approach for Model Based Testing of Augmented Reality Applications.pdf
An Approach for Model Based Testing of Augmented Reality Applications.pdfAn Approach for Model Based Testing of Augmented Reality Applications.pdf
An Approach for Model Based Testing of Augmented Reality Applications.pdf
 
Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...
Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...
Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...
 
Techniques and Tools for Mobile Testing Automation
Techniques and Tools for Mobile Testing AutomationTechniques and Tools for Mobile Testing Automation
Techniques and Tools for Mobile Testing Automation
 
A technique for parallel gui testing of android applications
A technique for parallel gui testing of android applicationsA technique for parallel gui testing of android applications
A technique for parallel gui testing of android applications
 
Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...
Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...
Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...
 
Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...
Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...
Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...
 
Web Application Testing in Fifteen Years of WSE
Web Application Testing in Fifteen Years of WSEWeb Application Testing in Fifteen Years of WSE
Web Application Testing in Fifteen Years of WSE
 
Comprehending Web Applications by a Clustering Based Approach
Comprehending Web Applications by a Clustering Based Approach Comprehending Web Applications by a Clustering Based Approach
Comprehending Web Applications by a Clustering Based Approach
 
Reverse Engineering Web Applications
Reverse Engineering Web ApplicationsReverse Engineering Web Applications
Reverse Engineering Web Applications
 
Recovering Interaction Design Patterns in Web Applications
Recovering Interaction Design Patterns in Web Applications Recovering Interaction Design Patterns in Web Applications
Recovering Interaction Design Patterns in Web Applications
 
Improving Usability of Web Pages for Blind
Improving Usability of Web Pages for BlindImproving Usability of Web Pages for Blind
Improving Usability of Web Pages for Blind
 
Techniques and Tools for Rich Internet Applications Testing
Techniques and Tools for Rich Internet Applications TestingTechniques and Tools for Rich Internet Applications Testing
Techniques and Tools for Rich Internet Applications Testing
 
Comprehending Ajax Web Applications by the DynaRIA Tool
Comprehending Ajax Web Applications by the DynaRIA ToolComprehending Ajax Web Applications by the DynaRIA Tool
Comprehending Ajax Web Applications by the DynaRIA Tool
 
A GUI Crawling-based Technique for Android Mobile Application Testing
A GUI Crawling-based Technique for Android Mobile Application TestingA GUI Crawling-based Technique for Android Mobile Application Testing
A GUI Crawling-based Technique for Android Mobile Application Testing
 
Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...
Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...
Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...
 
Considering Context Events in Event-Based Testing of Mobile Applications
Considering Context Events in Event-Based Testing of Mobile Applications Considering Context Events in Event-Based Testing of Mobile Applications
Considering Context Events in Event-Based Testing of Mobile Applications
 
Using GUI Ripping for Automated Testing of Android Apps
Using GUI Ripping for Automated Testing of Android AppsUsing GUI Ripping for Automated Testing of Android Apps
Using GUI Ripping for Automated Testing of Android Apps
 
A Toolset for GUI Testing of Android Applications
A Toolset for GUI Testing of Android ApplicationsA Toolset for GUI Testing of Android Applications
A Toolset for GUI Testing of Android Applications
 
DynaRIA: a Tool for Ajax Web Application Comprehension
DynaRIA: a Tool for Ajax Web Application ComprehensionDynaRIA: a Tool for Ajax Web Application Comprehension
DynaRIA: a Tool for Ajax Web Application Comprehension
 
Rich Internet Application Testing Using Execution Trace Data
Rich Internet Application Testing  Using Execution Trace Data Rich Internet Application Testing  Using Execution Trace Data
Rich Internet Application Testing Using Execution Trace Data
 

Último

Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsSafe Software
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaborationbruanjhuli
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAshyamraj55
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintMahmoud Rabie
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 

Último (20)

Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
20150722 - AGV
20150722 - AGV20150722 - AGV
20150722 - AGV
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
20230104 - machine vision
20230104 - machine vision20230104 - machine vision
20230104 - machine vision
 

Reverse Engineering Finite State Machines from Rich Internet Applications

  • 1. Reverse Engineering Finite State Machines from Rich Internet Applications Domenico Amalfitano Anna Rita Fasolino Porfirio Tramontana Dipartimento di Informatica e Sistemistica University of Naples Federico II, Italy
  • 2. Motivation  In the last years, Rich Internet Applications (RIAs) have emerged as a new generation of web applications offering greater usability and interactivity than traditional ones.  Web pages have been transformed in complex GUIs with synchronous and asynchronous interactions with the user and with the resources  Key problems:  to define models that are suitable for RIAs representation  to define Reverse Engineering techniques for the abstraction of the proposed model Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008 2
  • 3. RIA pages vs plain HTML pages  Complex interactions between the user and the RIA in the browser environment are designed and implemented in Javascript  A simple model comprehending only pages and forms (e.g. the Conallen model) is not more suitable to describe RIAs  Javascript event handlers can be associated to any DOM element and are able to modify the DOM instance itself  XHR objects are also able to manage Http communications Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008 3
  • 4. RIA Interactions Conceptual model • A Client Interface +Builds Server Page Server Resource correspond to the 1 1 1 DOM instanced at * 1..* Transition a given time in the Client Interface 1..* +End Transition Timestamp * * Web Page Request XHR Request browser 1 0..1 • The raise of an 1 1 Http Request event to which an DOM Raised Event 1 0..* +Timestamp event handler is * 1 1 Time Event Listener associated can 0..* cause a transition 1..* 1 1 to another client DOM Element Event Listener Http Response Event Listener interface (i.e. a 1..* * variation of the Event Handler DOM) User Event Listener Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008 4
  • 5. Transition Graph  RIA interactions can be modelled as a Transition Graph, where  each node is associated with a distinct Client Interface  each edge corresponds to the raise of an event  The event handler execution causes the variation between Client Interfaces. Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008 5
  • 6. Reverse Engineering Process 1/2 In order to reconstruct the model of a RIA, a three steps process has been proposed  The Extraction step is obtained by dynamic analysis  A user navigates the RIA while it is monitored.  Probes applied externally to the DOM structure allow the tracing of the complete cycle of event raising/handling with a non-invasive approach For each observed Client Interface the complete set of tags, attributes and event handlers is stored End Tracing Start Tracing Event Waiting Raised Event Event Handling Completion Waiting entry/DOM Extraction entry/Transition Tracing exit/End transition Tracing Event Handling Completed Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008 6
  • 7. Reverse Engineering Process 2/2  In this step the retrieved information are analyzed in order to abstract the FSM Model of the RIA  Two open issues:  When a Client Interface should be considered equivalent to a previously visited one?  What DOM elements and properties should be considered in order to compare two Client Interfaces?  Two possible criteria to cluster together a pair of Client Interfaces have been proposed:  Criterion C1 considers equivalent two Client Interfaces if the corresponding DOM structures include the same set of DOM elements with the same registered event listeners and handlers  Criterion C2 considers equivalent two Client Interfaces if the criterion C1 is satisfied and the set of Http requests and time event listeners are equivalent, too.  A Concept Assignment step, assisted by an expert, must be carried in order to assess if the applied equivalence criterion has been able to cluster together Client Interfaces corresponding to actual Interaction States Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008 7
  • 8. RE-RIA Tool • The Tool supports the proposed Reverse Engineering Process • It is realised in Java with JavaXPCOM library in order to embed a Mozilla instance into the tool GUI Extractor Abstractor DOM Querying Browser DOM Clustering Extractor Trace Extractor Reverse FSM Engineering Abstractor Process Manager <<artifact>> <<artifact>> Statechart DataBase Diagram Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008 8
  • 9. An example (1/2) • Based on FilmDB Ajax application for data management of a personal movie archive. • Five Users Sessions corresponding to the entering/exiting the personal movie area use case scenarios were exercised by a user and traced and collected by the tool SCHERMATA FILMDB • A Transition Graph with 60 nodes and 59 edges was preliminary obtained Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008 9
  • 10. Example (2/2) • The C1 criterion was able to reduce the TG to 8 nodes and 22 transitions • A Concept Assignment activity revealed that some nodes could not be associated with meaningful states, but had to be split into further logical states. • The C2 criterion produced a TG with 12 nodes and 23 transitions that was validated by the Concept Assignment activity Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008 10
  • 11. Conclusions and Future Works  This paper presented the initial results of a research project that aims at defining and validating techniques for reverse engineering software representation models from Rich Internet Applications.  The proposing clustering criteria seems to be useful for the abstraction of a compact behaviour model of the RIA interfaces  Further criteria that are able to reduce the Concept Assignment step effort will be proposed in future  The suitability of the obtained model to specific tasks, such as GUI testing, quality evaluation, migration to services will be explored in future works Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008 11
  • 12. Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008 12