SlideShare a Scribd company logo
TESTBEDS 2010 - Paris

Rich Internet Application Testing
Using Execution Trace Data
Dipartimento di Informatica e Sistemistica
Università di Napoli, Federico II
Naples, Italy

Domenico Amalfitano
Anna Rita Fasolino
Porfirio Tramontana
{domenico.amalfitano, fasolino, ptramont}@unina.it

                                        TESTBEDS 2010, Paris
Context and Goal
Context
   Rich Internet Applications (RIAs)


Goal
   Proposing and investigating techniques,
    models and tools for effective testing of
    RIAs .

                  TESTBEDS 2010, Paris          2/32
Rich Internet Applications (RIAs)
   RIAs represent the new generation of Web
    applications,      providing        richer,      more
    interactive, dynamic and usable user interfaces than
    traditional ones.
   AJAX (Asynchronous JavaScript and XML) is a set of
    technologies (JavaScript, XML, XMLHttpRequest
    objects) providing one of the most diffused approach
    for implementing RIAs.
   Examples        of     popular      RIAs:      Google
    Maps, Flickr, Gmail.
   Hereafter we focus our attention on Ajax-based RIAs

                        TESTBEDS 2010, Paris           3/32
User Interface of AJAX-based RIAs ...

   It is implemented by Web pages composed by
    individual components, which can be updated, deleted
    or added at run time independently.
   The manipulation of the page components is
    performed by an Ajax engine written in JavaScript that
       is loaded by the browser at the start of the session,
       accesses the page components by the DOM interface,
       is responsible for communicating with the server to exchange
        few amounts of data. The communication between Client and
        Server may be asynchronous.

                             TESTBEDS 2010, Paris                 4/32
... User Interface of AJAX RIAs

   Its status changes due to Javascript event handlers
    elaborations.
   Event Handlers are triggered by user events or
    other external events (such as timeout events or
    asynchronous responses from the server).

   The User Interface of Ajax-based RIAs can be
    considered like an event-driven software system
    (EDS).
                       TESTBEDS 2010, Paris           5/32
Open issues in RIA testing

   The traditional web testing approaches are based on the
    assumption that the business logic is entirely
    implemented by the server side of the application.
   Vice-versa, in RIAs the business logic is implemented
    by the client side too.
   Specific testing activities involving the client side
    elaborations of the RIA are needed.
   A possible approach:
       Adopting the testing approaches used for event-driven software systems
        for the aims of testing the UI of RIAs.

                                 TESTBEDS 2010, Paris                        6/32
Models For Event Based Testing
   Event based testing techniques of GUI of desktop
    applications are based on models such as:
         Event Flow Graphs.
         Event Interaction Graphs.
         Finite State Machines.
   Due to the similarities between RIAs and GUIs, all
    these models may be used to model the behaviour of
    an RIA.
   We proposed of using FSM for representing the
    behaviour of RIAs.
                          TESTBEDS 2010, Paris           7/32
FSM Reverse Engineering Technique
   We have proposed a reverse engineering
    approach for obtaining the FSM that:
         Is based on the analysis of the execution traces of the
          RIA;
         solves the problem of FSM states and transitions
          explosion by heuristic criteria that aim at clustering
          equivalent states and transitions of the FSM.

1. D. Amalfitano, A. R. Fasolino, P. Tramontana, Reverse Engineering Finite State Machines from Rich Internet Applications, (WCRE
   2008).
2. D. Amalfitano, A. R. Fasolino, P. Tramontana, Experimenting a Reverse Engineering Technique for Modelling the Behaviour of
   Rich Internet Applications, (ICSM 2009).
3. D. Amalfitano, A. R. Fasolino, P. Tramontana, An Iterative Approach for the Reverse Engineering of Rich Internet Applications,
   (IARIA ICIW 2010).


                                                     TESTBEDS 2010, Paris                                                    8/32
FSM - an example of transition


                                                   Resize
                                                   Menù


                                                       Click On
                                                       Adjust button

                          Resulting Transition
                          due to the ‘click’
                          on the ‘Adjust’ Button   Adjust
                                                   Menù




               TESTBEDS 2010, Paris                             9/32
Example of a reverse engineered FSM
Model
                                        The FSM Model of TuDu RIA




              TESTBEDS 2010, Paris                           10/32
User-session based testing: a possible
approach for RIA testing?
   Some state-based testing techniques relying on the FSM have
    recently been proposed for RIA testing.
   User-session based testing has not yet been used in the
    context of RIAs
   This approach aims at automatically generating test cases
    composed of event sequences which are deduced by
    analysing user interactions with a version of the application.
   Already applied with success for:
       traditional Web application testing,
       GUI automated testing.


                                  TESTBEDS 2010, Paris          11/32
The proposed technique
   We decided to investigate user-session based
    testing in the context of RIAs.
   We propose a testing technique that is based on the
    following activities:
    1. Collection of a set of execution traces of the
       application;
    2. Test suite generation;
    3. Test suite reduction.


                          TESTBEDS 2010, Paris          12/32
1. Execution trace collection
 An execution trace is defined as a sequence of
  couples: …, <Interf. Statei , eventi>, <Interf.
  Statei+1, eventi+1>, …
 Two different approaches have been
  considered for collecting execution traces:
       A manual approach based on the analysis of
        the interactions with an RIA of real users or
        testers.
       An automatic approach based on Crawling
        techniques.

                         TESTBEDS 2010, Paris           13/32
2. Test Suite Generation
       The test suite is generated by transforming
        each execution trace into a test case.
       The transformation requires that two
        problems are solved:
        A) definition of pre-conditions of each test
         case;
        B) definition of the Test Oracle.


                         TESTBEDS 2010, Paris           14/32
2.A Pre-conditions of a test case
       In general the behaviour of an RIA depends
        on the current state of the application data as
        well as by its environment and session data.
       Our solution:
         before recording each execution trace, we set the
          RIA in pre-defined states.
         These states will provide the pre-conditions of
          the related test cases.

                          TESTBEDS 2010, Paris          15/32
2.B The Test Oracle problem.
       A testing oracle is needed to define the
        PASS/FAIL result of a test case execution.

       We decided to evaluate test case results by
        checking the occurrence of JavaScript
        crashes.
         No JS crash  Test Passes.
         JS crash  Test Fails.
                       TESTBEDS 2010, Paris     16/32
3. Test Suite Reduction
       Given a test suite, the reduction technique computes
        its minimal set of test cases assuring the same
        coverage of the original test suite.
       Three reduction techniques M1, M2, and M3
        have been proposed, that consider different types of
        coverage:
       M1 covers the same set of FSM states covered by the
        original suite;
       M2 covers the same set of FSM transitions (or events)
        covered by the original suite;
       M3 covers the same set of JS code components (such
        as functions) as the original test suite.
                           TESTBEDS 2010, Paris             17/32
Experiment
   We performed an experiment for evaluating the proposed
    testing approach.
   We considered twelve combinations of different execution trace
    collection and reduction techniques.



                                               The testing techniques considered
                                               in the experiment




                            TESTBEDS 2010, Paris                              18/32
Research Questions

   The experiment was designed to address the following research
    questions:
     RQ1. How effective are the testing techniques B1, B2, and B3
      (without reduction)?
           We decided to evaluate the effectiveness of the B1, B2, and B3
            techniques in terms of the coverage and fault-detection they
            provide.
       RQ2. How effective are the reduction-based T1… T9
        techniques with respect to the B1, B2, and B3
        techniques?
           This question concerns the relationship about the performance of
            the B1, B2, and B3 techniques with respect to the T1…T9
            techniques, in terms of the coverage and fault-detection they
            provide.
                                 TESTBEDS 2010, Paris                        19/32
Measured variables
   The following variables are measured during the
    experiment:
       FSM State Coverage: percentage of FSM states covered by at least one
        test case of the test suite.
       FSM Transition Coverage: percentage of FSM transitions covered by
        at least one test case of the test suite.
       JavaScript function Coverage: percentage of JavaScript functions
        executed during the test suite execution with respect to the number of
        script functions contained by the JavaScript modules of the application.
       JavaScript LOC Coverage: percentage of JavaScript function LOC
        executed during the test suite execution with respect to the LOC of
        JavaScript functions of the application.
       Fault detection effectiveness: percentage of faults detected by the test
        suite.
       Test Suite Size: number of test suite test cases.
       Test Suite Event Size: number of events exercised by the test suite test
        cases.

                                 TESTBEDS 2010, Paris                       20/32
Supporting tools

   The experimental process has been carried out with the
    support of a set of tools.
       CReRIA & CrawlRIA: both the tools are used to record executions
        traces, manually and automatically respectively. The user session traces
        (sequences of interfaces and events) and the corresponding paths on
        the abstracted FSM (sequences of states and transitions) are stored
        in the FSM & Trace Repository.
       Test Case Generator: tool able to transform the execution traces
        stored in the FSM & Trace Repository in a test suite composed of
        executable test cases by the DynaRIA tool.
       Test Case Reducer: tool able to reduce a test suite ts into a smaller
        one that satisfies the same ts coverage requirements.
       DynaRIA: tool for dynamic analysis and testing of RIAs. It is able to
        execute the test cases produced by the Test Case Generator or the Test
        Case Reducer tool, to monitor their execution in a browser
        environment, to produce a report of detected crashes and to report the
        coverage measures.
                                 TESTBEDS 2010, Paris                       21/32
Experimental Process
   The experimental process is shown in Figure.
   Chosen the subject RIA, execution traces are
    both manually collected (using the CreRIA
    tool) and automatically by the CrawlRIA
    tool. Produced traces are stored in the
    repository.
   The Test Case generator tool produces test
    cases from the collected execution traces.
   The Test Case Reducer applies the
    minimization techniques and produces reduced
    test suites.
   The produced test suites are submitted to the
    DynaRIA tool for the execution.
   The DynaRIA tool evaluates the results of all
    test case executions both on the original
    version of the RIA, and on a set of RIA
    versions in which an expert has injected
    faults.                                          The experimental testing process

                              TESTBEDS 2010, Paris                           22/32
Subject application
   The subject application is Tudu, an open source RIA offering
    ‘todo’ list management facilities.
   To evaluate the fault detection capability of proposed testing
    techniques, different types of fault have been injected in the
    JavaScript (JS) code of the subject application.
   19 faults able to produce JS crashes were injected and 19
    versions of Tudu were produced, each one containing just one
    fault.
   The faults were of different types, such as:
       JS function call instructions with undefined, incorrect, or missing
        parameters;
       JS syntax errors;
       array out of bound errors,
       server requests of missing resources or JS files.

                                   TESTBEDS 2010, Paris                       23/32
Experimental Data Collection
   203 execution traces were automatically collected by CrawlRIA.
   21 user sessions were manually collected with CReRIA to
    exercise all the application’s known use cases and their scenario.
   Collected traces were used for automatically abstracting a
    reference FSM model of the application.
   This model was used for the test suite reduction


                                                    Overview information
                                                    about collected
                                                    execution traces



                             TESTBEDS 2010, Paris                    24/32
…Experimental Results



Data about user session test suites          Data about test suites from crawled traces




                  Data about test suites obtained from both
                 user sessions and crawled (hybrid) traces

                                  TESTBEDS 2010, Paris                            25/32
Fault detection results of the test
suites without reduction (R1)
 The User Session based testing technique
  detected all 19 injected faults
 The Crawler based testing techniques
  detected 17/19 faults
 The hybrid technique (user session +
  crawler) obtained the same results of the
  user session based one.

                  TESTBEDS 2010, Paris        26/32
Coverage results of the test suites
without reduction (R1)
 The User Session based technique covered
  all states, 91.8% transitions, and 172 JS
  functions.
 The Crawler based technique covered
  73.7% states, 57.4% transitions, and 160 JS
  functions.
 The hybrid technique covered 100% states,
  100% transitions, and 192 JS functions.

                  TESTBEDS 2010, Paris     27/32
Fault detection and coverage results
of the test suites with reduction (R2)
 The techniques with the best fault
  detection were the ones based on FSM
  transitions and JS function coverage.
 As to the coverage the best technique was
  the one based on the JS function coverage.



                  TESTBEDS 2010, Paris    28/32
Conclusion…

   In the paper we have presented a testing technique for RIAs
    that transforms execution traces of an existing application
    into executable test cases.
   For achieving the technique’s scalability, we employed a test
    suite selection technique that reduces the size of obtained test
    suites.
   For exploring the feasibility and effectiveness of the technique
    an experiment involving an open-source RIA application was
    carried out.
   In the experiment, different approaches (both human-based,
    and automatic) for execution trace collection and several
    criteria for reducing the test suites were analyzed .

                            TESTBEDS 2010, Paris                 29/32
…Conclusion

   The experiment showed that test suites produced automatically by
    means of a crawler are not more effective than suites derived from
    user session traces, but the former ones have the advantage of
    being automatically obtained.

   The more effective testing strategy is the hybrid one that combines
    test cases obtained by both approaches:
       test cases automatically obtained by an RIA crawler should be used
        for discovering the most of application defects.
       test cases based on user session data could be employed to obtain a
        wider coverage of defects.



                                  TESTBEDS 2010, Paris                 30/32
Future works
   The validity of obtained experimental results is reduced, due to several
    limitations of the experiment we performed, such as
     the single RIA application involved,

     the small number of collected user sessions;

     the single user involved in the collection;

     the single initial state of the application during trace collection.

     faults injected in the application were just of a particular type (i.e. faults
       causing JavaScript crashes),
     faults affecting the RIA behaviour without causing crashes were not
       considered;
     the technique adopted for abstracting the FSM model of the RIA provides
       just an approximate model of the RIA behaviour.
   To overcome these limitations, further investigations and a wider
    experimentation will be carried out in future work.

                                   TESTBEDS 2010, Paris                         31/32
Thank you for your attention.




               TESTBEDS 2010, Paris   32/32

More Related Content

Similar to Rich Internet Application Testing Using Execution Trace Data

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
 
Software Testing: Test Design and the Project Life Cycle
Software Testing: Test Design and the Project Life CycleSoftware Testing: Test Design and the Project Life Cycle
Software Testing: Test Design and the Project Life Cycle
Derek Callaway
 
Comparative Study on Different Mobile Application Frameworks
Comparative Study on Different Mobile Application FrameworksComparative Study on Different Mobile Application Frameworks
Comparative Study on Different Mobile Application Frameworks
IRJET Journal
 
Software CrashLocator: Locating the Faulty Functions by Analyzing the Crash S...
Software CrashLocator: Locating the Faulty Functions by Analyzing the Crash S...Software CrashLocator: Locating the Faulty Functions by Analyzing the Crash S...
Software CrashLocator: Locating the Faulty Functions by Analyzing the Crash S...
INFOGAIN PUBLICATION
 
Validation and Verification of SYSML Activity Diagrams Using HOARE Logic
Validation and Verification of SYSML Activity Diagrams Using HOARE Logic Validation and Verification of SYSML Activity Diagrams Using HOARE Logic
Validation and Verification of SYSML Activity Diagrams Using HOARE Logic
ijseajournal
 
DYNAMUT: A MUTATION TESTING TOOL FOR INDUSTRY-LEVEL EMBEDDED SYSTEM APPLICATIONS
DYNAMUT: A MUTATION TESTING TOOL FOR INDUSTRY-LEVEL EMBEDDED SYSTEM APPLICATIONSDYNAMUT: A MUTATION TESTING TOOL FOR INDUSTRY-LEVEL EMBEDDED SYSTEM APPLICATIONS
DYNAMUT: A MUTATION TESTING TOOL FOR INDUSTRY-LEVEL EMBEDDED SYSTEM APPLICATIONS
ijesajournal
 
Effektives Consulting - Performance Engineering
Effektives Consulting - Performance EngineeringEffektives Consulting - Performance Engineering
Effektives Consulting - Performance Engineering
hitdhits
 
EXPERIMENTAL EVALUATION AND RESULT DISCUSSION OF METAMORPHIC TESTING AUTOMATI...
EXPERIMENTAL EVALUATION AND RESULT DISCUSSION OF METAMORPHIC TESTING AUTOMATI...EXPERIMENTAL EVALUATION AND RESULT DISCUSSION OF METAMORPHIC TESTING AUTOMATI...
EXPERIMENTAL EVALUATION AND RESULT DISCUSSION OF METAMORPHIC TESTING AUTOMATI...
IAEME Publication
 
Csit77404
Csit77404Csit77404
Csit77404
csandit
 
A3: application-aware acceleration for wireless data networks
A3: application-aware acceleration for wireless data networksA3: application-aware acceleration for wireless data networks
A3: application-aware acceleration for wireless data networks
Zhenyun Zhuang
 
Role+Of+Testing+In+Sdlc
Role+Of+Testing+In+SdlcRole+Of+Testing+In+Sdlc
Role+Of+Testing+In+Sdlc
mahendra singh
 
orocos-presentation-Barcelona2006.pdf
orocos-presentation-Barcelona2006.pdforocos-presentation-Barcelona2006.pdf
orocos-presentation-Barcelona2006.pdf
ManojGupta134171
 
Amin Milani Fard: Directed Model Inference for Testing and Analysis of Web Ap...
Amin Milani Fard: Directed Model Inference for Testing and Analysis of Web Ap...Amin Milani Fard: Directed Model Inference for Testing and Analysis of Web Ap...
Amin Milani Fard: Directed Model Inference for Testing and Analysis of Web Ap...
knowdiff
 
Automation testing
Automation testingAutomation testing
Automation testing
Tomy Rhymond
 
MEASURE’s Structured Metrics Meta-Model Module at TAROT 2016
MEASURE’s Structured Metrics Meta-Model Module at TAROT 2016MEASURE’s Structured Metrics Meta-Model Module at TAROT 2016
MEASURE’s Structured Metrics Meta-Model Module at TAROT 2016
Alessandra Bagnato
 
Amost 2011 keynote
Amost 2011 keynoteAmost 2011 keynote
Amost 2011 keynote
Wolfgang Grieskamp
 
2012 ieee projects software engineering @ Seabirds ( Trichy, Chennai, Pondich...
2012 ieee projects software engineering @ Seabirds ( Trichy, Chennai, Pondich...2012 ieee projects software engineering @ Seabirds ( Trichy, Chennai, Pondich...
2012 ieee projects software engineering @ Seabirds ( Trichy, Chennai, Pondich...
SBGC
 
M018147883
M018147883M018147883
M018147883
IOSR Journals
 
Partial Object Detection in Inclined Weather Conditions
Partial Object Detection in Inclined Weather ConditionsPartial Object Detection in Inclined Weather Conditions
Partial Object Detection in Inclined Weather Conditions
IRJET Journal
 

Similar to Rich Internet Application Testing Using Execution Trace Data (20)

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
 
Software Testing: Test Design and the Project Life Cycle
Software Testing: Test Design and the Project Life CycleSoftware Testing: Test Design and the Project Life Cycle
Software Testing: Test Design and the Project Life Cycle
 
Testing
TestingTesting
Testing
 
Comparative Study on Different Mobile Application Frameworks
Comparative Study on Different Mobile Application FrameworksComparative Study on Different Mobile Application Frameworks
Comparative Study on Different Mobile Application Frameworks
 
Software CrashLocator: Locating the Faulty Functions by Analyzing the Crash S...
Software CrashLocator: Locating the Faulty Functions by Analyzing the Crash S...Software CrashLocator: Locating the Faulty Functions by Analyzing the Crash S...
Software CrashLocator: Locating the Faulty Functions by Analyzing the Crash S...
 
Validation and Verification of SYSML Activity Diagrams Using HOARE Logic
Validation and Verification of SYSML Activity Diagrams Using HOARE Logic Validation and Verification of SYSML Activity Diagrams Using HOARE Logic
Validation and Verification of SYSML Activity Diagrams Using HOARE Logic
 
DYNAMUT: A MUTATION TESTING TOOL FOR INDUSTRY-LEVEL EMBEDDED SYSTEM APPLICATIONS
DYNAMUT: A MUTATION TESTING TOOL FOR INDUSTRY-LEVEL EMBEDDED SYSTEM APPLICATIONSDYNAMUT: A MUTATION TESTING TOOL FOR INDUSTRY-LEVEL EMBEDDED SYSTEM APPLICATIONS
DYNAMUT: A MUTATION TESTING TOOL FOR INDUSTRY-LEVEL EMBEDDED SYSTEM APPLICATIONS
 
Effektives Consulting - Performance Engineering
Effektives Consulting - Performance EngineeringEffektives Consulting - Performance Engineering
Effektives Consulting - Performance Engineering
 
EXPERIMENTAL EVALUATION AND RESULT DISCUSSION OF METAMORPHIC TESTING AUTOMATI...
EXPERIMENTAL EVALUATION AND RESULT DISCUSSION OF METAMORPHIC TESTING AUTOMATI...EXPERIMENTAL EVALUATION AND RESULT DISCUSSION OF METAMORPHIC TESTING AUTOMATI...
EXPERIMENTAL EVALUATION AND RESULT DISCUSSION OF METAMORPHIC TESTING AUTOMATI...
 
Csit77404
Csit77404Csit77404
Csit77404
 
A3: application-aware acceleration for wireless data networks
A3: application-aware acceleration for wireless data networksA3: application-aware acceleration for wireless data networks
A3: application-aware acceleration for wireless data networks
 
Role+Of+Testing+In+Sdlc
Role+Of+Testing+In+SdlcRole+Of+Testing+In+Sdlc
Role+Of+Testing+In+Sdlc
 
orocos-presentation-Barcelona2006.pdf
orocos-presentation-Barcelona2006.pdforocos-presentation-Barcelona2006.pdf
orocos-presentation-Barcelona2006.pdf
 
Amin Milani Fard: Directed Model Inference for Testing and Analysis of Web Ap...
Amin Milani Fard: Directed Model Inference for Testing and Analysis of Web Ap...Amin Milani Fard: Directed Model Inference for Testing and Analysis of Web Ap...
Amin Milani Fard: Directed Model Inference for Testing and Analysis of Web Ap...
 
Automation testing
Automation testingAutomation testing
Automation testing
 
MEASURE’s Structured Metrics Meta-Model Module at TAROT 2016
MEASURE’s Structured Metrics Meta-Model Module at TAROT 2016MEASURE’s Structured Metrics Meta-Model Module at TAROT 2016
MEASURE’s Structured Metrics Meta-Model Module at TAROT 2016
 
Amost 2011 keynote
Amost 2011 keynoteAmost 2011 keynote
Amost 2011 keynote
 
2012 ieee projects software engineering @ Seabirds ( Trichy, Chennai, Pondich...
2012 ieee projects software engineering @ Seabirds ( Trichy, Chennai, Pondich...2012 ieee projects software engineering @ Seabirds ( Trichy, Chennai, Pondich...
2012 ieee projects software engineering @ Seabirds ( Trichy, Chennai, Pondich...
 
M018147883
M018147883M018147883
M018147883
 
Partial Object Detection in Inclined Weather Conditions
Partial Object Detection in Inclined Weather ConditionsPartial Object Detection in Inclined Weather Conditions
Partial Object Detection in Inclined Weather Conditions
 

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
 
Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...
Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...
Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...
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
 
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
 
An AHP-based Framework for Quality and Security Evaluation
An AHP-based Framework for Quality and Security EvaluationAn AHP-based Framework for Quality and Security Evaluation
An AHP-based Framework for Quality and Security Evaluation
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
 
Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...
Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...
Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...
 
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
 
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
 
An AHP-based Framework for Quality and Security Evaluation
An AHP-based Framework for Quality and Security EvaluationAn AHP-based Framework for Quality and Security Evaluation
An AHP-based Framework for Quality and Security Evaluation
 

Recently uploaded

Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
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
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
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
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
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
 
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
 
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
 
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
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
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
 
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
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 

Recently uploaded (20)

Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
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
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
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
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
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
 
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...
 
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
 
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
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
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
 
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
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 

Rich Internet Application Testing Using Execution Trace Data

  • 1. TESTBEDS 2010 - Paris Rich Internet Application Testing Using Execution Trace Data Dipartimento di Informatica e Sistemistica Università di Napoli, Federico II Naples, Italy Domenico Amalfitano Anna Rita Fasolino Porfirio Tramontana {domenico.amalfitano, fasolino, ptramont}@unina.it TESTBEDS 2010, Paris
  • 2. Context and Goal Context Rich Internet Applications (RIAs) Goal Proposing and investigating techniques, models and tools for effective testing of RIAs . TESTBEDS 2010, Paris 2/32
  • 3. Rich Internet Applications (RIAs)  RIAs represent the new generation of Web applications, providing richer, more interactive, dynamic and usable user interfaces than traditional ones.  AJAX (Asynchronous JavaScript and XML) is a set of technologies (JavaScript, XML, XMLHttpRequest objects) providing one of the most diffused approach for implementing RIAs.  Examples of popular RIAs: Google Maps, Flickr, Gmail.  Hereafter we focus our attention on Ajax-based RIAs TESTBEDS 2010, Paris 3/32
  • 4. User Interface of AJAX-based RIAs ...  It is implemented by Web pages composed by individual components, which can be updated, deleted or added at run time independently.  The manipulation of the page components is performed by an Ajax engine written in JavaScript that  is loaded by the browser at the start of the session,  accesses the page components by the DOM interface,  is responsible for communicating with the server to exchange few amounts of data. The communication between Client and Server may be asynchronous. TESTBEDS 2010, Paris 4/32
  • 5. ... User Interface of AJAX RIAs  Its status changes due to Javascript event handlers elaborations.  Event Handlers are triggered by user events or other external events (such as timeout events or asynchronous responses from the server).  The User Interface of Ajax-based RIAs can be considered like an event-driven software system (EDS). TESTBEDS 2010, Paris 5/32
  • 6. Open issues in RIA testing  The traditional web testing approaches are based on the assumption that the business logic is entirely implemented by the server side of the application.  Vice-versa, in RIAs the business logic is implemented by the client side too.  Specific testing activities involving the client side elaborations of the RIA are needed.  A possible approach:  Adopting the testing approaches used for event-driven software systems for the aims of testing the UI of RIAs. TESTBEDS 2010, Paris 6/32
  • 7. Models For Event Based Testing  Event based testing techniques of GUI of desktop applications are based on models such as:  Event Flow Graphs.  Event Interaction Graphs.  Finite State Machines.  Due to the similarities between RIAs and GUIs, all these models may be used to model the behaviour of an RIA.  We proposed of using FSM for representing the behaviour of RIAs. TESTBEDS 2010, Paris 7/32
  • 8. FSM Reverse Engineering Technique  We have proposed a reverse engineering approach for obtaining the FSM that:  Is based on the analysis of the execution traces of the RIA;  solves the problem of FSM states and transitions explosion by heuristic criteria that aim at clustering equivalent states and transitions of the FSM. 1. D. Amalfitano, A. R. Fasolino, P. Tramontana, Reverse Engineering Finite State Machines from Rich Internet Applications, (WCRE 2008). 2. D. Amalfitano, A. R. Fasolino, P. Tramontana, Experimenting a Reverse Engineering Technique for Modelling the Behaviour of Rich Internet Applications, (ICSM 2009). 3. D. Amalfitano, A. R. Fasolino, P. Tramontana, An Iterative Approach for the Reverse Engineering of Rich Internet Applications, (IARIA ICIW 2010). TESTBEDS 2010, Paris 8/32
  • 9. FSM - an example of transition Resize Menù Click On Adjust button Resulting Transition due to the ‘click’ on the ‘Adjust’ Button Adjust Menù TESTBEDS 2010, Paris 9/32
  • 10. Example of a reverse engineered FSM Model  The FSM Model of TuDu RIA TESTBEDS 2010, Paris 10/32
  • 11. User-session based testing: a possible approach for RIA testing?  Some state-based testing techniques relying on the FSM have recently been proposed for RIA testing.  User-session based testing has not yet been used in the context of RIAs  This approach aims at automatically generating test cases composed of event sequences which are deduced by analysing user interactions with a version of the application.  Already applied with success for:  traditional Web application testing,  GUI automated testing. TESTBEDS 2010, Paris 11/32
  • 12. The proposed technique  We decided to investigate user-session based testing in the context of RIAs.  We propose a testing technique that is based on the following activities: 1. Collection of a set of execution traces of the application; 2. Test suite generation; 3. Test suite reduction. TESTBEDS 2010, Paris 12/32
  • 13. 1. Execution trace collection  An execution trace is defined as a sequence of couples: …, <Interf. Statei , eventi>, <Interf. Statei+1, eventi+1>, …  Two different approaches have been considered for collecting execution traces:  A manual approach based on the analysis of the interactions with an RIA of real users or testers.  An automatic approach based on Crawling techniques. TESTBEDS 2010, Paris 13/32
  • 14. 2. Test Suite Generation  The test suite is generated by transforming each execution trace into a test case.  The transformation requires that two problems are solved:  A) definition of pre-conditions of each test case;  B) definition of the Test Oracle. TESTBEDS 2010, Paris 14/32
  • 15. 2.A Pre-conditions of a test case  In general the behaviour of an RIA depends on the current state of the application data as well as by its environment and session data.  Our solution:  before recording each execution trace, we set the RIA in pre-defined states.  These states will provide the pre-conditions of the related test cases. TESTBEDS 2010, Paris 15/32
  • 16. 2.B The Test Oracle problem.  A testing oracle is needed to define the PASS/FAIL result of a test case execution.  We decided to evaluate test case results by checking the occurrence of JavaScript crashes.  No JS crash  Test Passes.  JS crash  Test Fails. TESTBEDS 2010, Paris 16/32
  • 17. 3. Test Suite Reduction  Given a test suite, the reduction technique computes its minimal set of test cases assuring the same coverage of the original test suite.  Three reduction techniques M1, M2, and M3 have been proposed, that consider different types of coverage:  M1 covers the same set of FSM states covered by the original suite;  M2 covers the same set of FSM transitions (or events) covered by the original suite;  M3 covers the same set of JS code components (such as functions) as the original test suite. TESTBEDS 2010, Paris 17/32
  • 18. Experiment  We performed an experiment for evaluating the proposed testing approach.  We considered twelve combinations of different execution trace collection and reduction techniques. The testing techniques considered in the experiment TESTBEDS 2010, Paris 18/32
  • 19. Research Questions  The experiment was designed to address the following research questions:  RQ1. How effective are the testing techniques B1, B2, and B3 (without reduction)?  We decided to evaluate the effectiveness of the B1, B2, and B3 techniques in terms of the coverage and fault-detection they provide.  RQ2. How effective are the reduction-based T1… T9 techniques with respect to the B1, B2, and B3 techniques?  This question concerns the relationship about the performance of the B1, B2, and B3 techniques with respect to the T1…T9 techniques, in terms of the coverage and fault-detection they provide. TESTBEDS 2010, Paris 19/32
  • 20. Measured variables  The following variables are measured during the experiment:  FSM State Coverage: percentage of FSM states covered by at least one test case of the test suite.  FSM Transition Coverage: percentage of FSM transitions covered by at least one test case of the test suite.  JavaScript function Coverage: percentage of JavaScript functions executed during the test suite execution with respect to the number of script functions contained by the JavaScript modules of the application.  JavaScript LOC Coverage: percentage of JavaScript function LOC executed during the test suite execution with respect to the LOC of JavaScript functions of the application.  Fault detection effectiveness: percentage of faults detected by the test suite.  Test Suite Size: number of test suite test cases.  Test Suite Event Size: number of events exercised by the test suite test cases. TESTBEDS 2010, Paris 20/32
  • 21. Supporting tools  The experimental process has been carried out with the support of a set of tools.  CReRIA & CrawlRIA: both the tools are used to record executions traces, manually and automatically respectively. The user session traces (sequences of interfaces and events) and the corresponding paths on the abstracted FSM (sequences of states and transitions) are stored in the FSM & Trace Repository.  Test Case Generator: tool able to transform the execution traces stored in the FSM & Trace Repository in a test suite composed of executable test cases by the DynaRIA tool.  Test Case Reducer: tool able to reduce a test suite ts into a smaller one that satisfies the same ts coverage requirements.  DynaRIA: tool for dynamic analysis and testing of RIAs. It is able to execute the test cases produced by the Test Case Generator or the Test Case Reducer tool, to monitor their execution in a browser environment, to produce a report of detected crashes and to report the coverage measures. TESTBEDS 2010, Paris 21/32
  • 22. Experimental Process  The experimental process is shown in Figure.  Chosen the subject RIA, execution traces are both manually collected (using the CreRIA tool) and automatically by the CrawlRIA tool. Produced traces are stored in the repository.  The Test Case generator tool produces test cases from the collected execution traces.  The Test Case Reducer applies the minimization techniques and produces reduced test suites.  The produced test suites are submitted to the DynaRIA tool for the execution.  The DynaRIA tool evaluates the results of all test case executions both on the original version of the RIA, and on a set of RIA versions in which an expert has injected faults. The experimental testing process TESTBEDS 2010, Paris 22/32
  • 23. Subject application  The subject application is Tudu, an open source RIA offering ‘todo’ list management facilities.  To evaluate the fault detection capability of proposed testing techniques, different types of fault have been injected in the JavaScript (JS) code of the subject application.  19 faults able to produce JS crashes were injected and 19 versions of Tudu were produced, each one containing just one fault.  The faults were of different types, such as:  JS function call instructions with undefined, incorrect, or missing parameters;  JS syntax errors;  array out of bound errors,  server requests of missing resources or JS files. TESTBEDS 2010, Paris 23/32
  • 24. Experimental Data Collection  203 execution traces were automatically collected by CrawlRIA.  21 user sessions were manually collected with CReRIA to exercise all the application’s known use cases and their scenario.  Collected traces were used for automatically abstracting a reference FSM model of the application.  This model was used for the test suite reduction Overview information about collected execution traces TESTBEDS 2010, Paris 24/32
  • 25. …Experimental Results Data about user session test suites Data about test suites from crawled traces Data about test suites obtained from both user sessions and crawled (hybrid) traces TESTBEDS 2010, Paris 25/32
  • 26. Fault detection results of the test suites without reduction (R1)  The User Session based testing technique detected all 19 injected faults  The Crawler based testing techniques detected 17/19 faults  The hybrid technique (user session + crawler) obtained the same results of the user session based one. TESTBEDS 2010, Paris 26/32
  • 27. Coverage results of the test suites without reduction (R1)  The User Session based technique covered all states, 91.8% transitions, and 172 JS functions.  The Crawler based technique covered 73.7% states, 57.4% transitions, and 160 JS functions.  The hybrid technique covered 100% states, 100% transitions, and 192 JS functions. TESTBEDS 2010, Paris 27/32
  • 28. Fault detection and coverage results of the test suites with reduction (R2)  The techniques with the best fault detection were the ones based on FSM transitions and JS function coverage.  As to the coverage the best technique was the one based on the JS function coverage. TESTBEDS 2010, Paris 28/32
  • 29. Conclusion…  In the paper we have presented a testing technique for RIAs that transforms execution traces of an existing application into executable test cases.  For achieving the technique’s scalability, we employed a test suite selection technique that reduces the size of obtained test suites.  For exploring the feasibility and effectiveness of the technique an experiment involving an open-source RIA application was carried out.  In the experiment, different approaches (both human-based, and automatic) for execution trace collection and several criteria for reducing the test suites were analyzed . TESTBEDS 2010, Paris 29/32
  • 30. …Conclusion  The experiment showed that test suites produced automatically by means of a crawler are not more effective than suites derived from user session traces, but the former ones have the advantage of being automatically obtained.  The more effective testing strategy is the hybrid one that combines test cases obtained by both approaches:  test cases automatically obtained by an RIA crawler should be used for discovering the most of application defects.  test cases based on user session data could be employed to obtain a wider coverage of defects. TESTBEDS 2010, Paris 30/32
  • 31. Future works  The validity of obtained experimental results is reduced, due to several limitations of the experiment we performed, such as  the single RIA application involved,  the small number of collected user sessions;  the single user involved in the collection;  the single initial state of the application during trace collection.  faults injected in the application were just of a particular type (i.e. faults causing JavaScript crashes),  faults affecting the RIA behaviour without causing crashes were not considered;  the technique adopted for abstracting the FSM model of the RIA provides just an approximate model of the RIA behaviour.  To overcome these limitations, further investigations and a wider experimentation will be carried out in future work. TESTBEDS 2010, Paris 31/32
  • 32. Thank you for your attention. TESTBEDS 2010, Paris 32/32