SlideShare a Scribd company logo
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

More Related Content

Viewers also liked

Cosplay inteligencia
Cosplay inteligenciaCosplay inteligencia
Cosplay inteligencia
Agustin Pimod
 
Generacion de las computadoras
Generacion de las computadorasGeneracion de las computadoras
Generacion de las computadoras
julian 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 Collins
Gustavo Campos
 
PUEBLOS INDIGENAS DE CHILE
PUEBLOS INDIGENAS DE CHILEPUEBLOS INDIGENAS DE CHILE
PUEBLOS INDIGENAS DE CHILE
gloriamillacheo
 
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
AKOSYS - Industrial Refrigeration
 

Viewers also liked (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 to Reverse Engineering Finite State Machines from Rich Internet Applications

Web Transactions
Web TransactionsWeb Transactions
Web Transactions
Fulvio Corno
 
Performance analysisclass
Performance analysisclassPerformance analysisclass
Performance analysisclass
Daniel 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 programming
SUDIP GHOSH
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Alberto González Trastoy
 
Analytics driven SDN and commodity switches
Analytics driven SDN and commodity switchesAnalytics driven SDN and commodity switches
Analytics driven SDN and commodity switches
netvis
 
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
 
Restate: Event-driven Asynchronous Services, Easy as Synchronous RPC
Restate: Event-driven Asynchronous Services, Easy as Synchronous RPCRestate: Event-driven Asynchronous Services, Easy as Synchronous RPC
Restate: Event-driven Asynchronous Services, Easy as Synchronous RPC
HostedbyConfluent
 
Openshift YARN - strata 2014
Openshift YARN - strata 2014Openshift YARN - strata 2014
Openshift YARN - strata 2014
Hortonworks
 
From Data Push to WebSockets
From Data Push to WebSocketsFrom Data Push to WebSockets
From Data Push to WebSockets
Alessandro Alinone
 
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
Porfirio Tramontana
 
The path towards pervasive computing
The path towards pervasive computingThe path towards pervasive computing
The path towards pervasive computing
Michel Burger
 
kurento-nubomedia-first-steps-v1
kurento-nubomedia-first-steps-v1kurento-nubomedia-first-steps-v1
kurento-nubomedia-first-steps-v1
Luis Lopez
 
SOA patterns
SOA patterns SOA patterns
SOA patterns
Arnon Rotem-Gal-Oz
 
HWIOS Websocket CMS explained
HWIOS Websocket CMS explainedHWIOS Websocket CMS explained
HWIOS Websocket CMS explained
os-networks
 
Overview of Microsoft .Net Remoting technology
Overview of Microsoft .Net Remoting technologyOverview of Microsoft .Net Remoting technology
Overview of Microsoft .Net Remoting technology
Peter R. Egli
 

Similar to 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
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
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?)
 
Restate: Event-driven Asynchronous Services, Easy as Synchronous RPC
Restate: Event-driven Asynchronous Services, Easy as Synchronous RPCRestate: Event-driven Asynchronous Services, Easy as Synchronous RPC
Restate: Event-driven Asynchronous Services, Easy as Synchronous RPC
 
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
 

More from 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.pdf
Porfirio 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 Automation
Porfirio 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 applications
Porfirio 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 WSE
Porfirio 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 Applications
Porfirio 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 Blind
Porfirio 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 Testing
Porfirio 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 Tool
Porfirio 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 Testing
Porfirio 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 Apps
Porfirio 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 Applications
Porfirio 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 Comprehension
Porfirio 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
 

More from 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
 

Recently uploaded

PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 

Recently uploaded (20)

PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 

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