Rich Internet Applications Reverse Engineering and Testing

Dynamic Analysis of Rich Internet Application

The DynaRIA tool for the comprehension of Ajax web applications by dynamic analysis

Domenico Amalfitano, Anna Rita Fasolino, Armando Polcaro, Porfirio Tramontana:

The DynaRIA tool for the comprehension of Ajax web applications by dynamic analysis. Innov. Syst. Softw. Eng. 10(1): 41-57 (2014)


Thanks to the fast and growing diffusion of Rich Internet Applications (RIAs), the user experience in the Web 2.0 is becoming more and more appealing and user friendly. RIAs are indeed a new generation of Web applications that exploit a combination of technologies and new development patterns for providing a more interactive, responsive and dynamic user experience. Unfortunately, some characteristics of RIAs, such as the heterogeneity of the implementation technologies, as well as the possibility of dynamically generating the code of the application, cause a general worsening of their analyzability and understandability. Consequently, specific analysis techniques and tools are needed for supporting their comprehension effectively. This paper presents an approach for the comprehension of RIAs implemented in Ajax that is based on a tool for dynamic analysis called DynaRIA. The tool provides an integrated environment for tracing application executions and analyzing them from several perspectives. Moreover, the tool is able to abstract several views on the structure and run-time behavior of the application that can be used in various comprehension activities. To show the actual support provided by DynaRIA in different comprehension contexts, four case studies involving two real Ajax applications will be illustrated in the paper. The experimental results showed the usefulness and effectiveness of the tool in comprehension, debugging, testing and quality assessment scenarios.

DynaRIA is a 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, and to produce a report of detected crashes. It also evaluates and reports coverage measures.

DynaRIA Download

DynaRIA Sequence Viewer Download

DynaRIA Readme (italian)

DynaRIA Figures and Screenshots






Comprehending Ajax Web Applications by the DynaRIA Tool

Domenico Amalfitano, Anna Rita Fasolino, Armando Polcaro, Porfirio Tramontana:

Comprehending Ajax Web Applications by the DynaRIA Tool. QUATIC 2010: 122-131


Thanks to Rich Internet Applications (RIAs) with their enhanced interactivity, responsiveness and dynamicity, the user experience in the Web 2.0 is becoming more and more appealing and user-friendly. The dynamic nature of RIAs and the heterogeneous technologies, frameworks, communication models used for implementing them negatively affect their analyzability and understandability. Consequently, specific software techniques and tools are needed for supporting RIA comprehension. This paper presents DynaRIA, a tool for the comprehension of RIAs implemented in Ajax that is based on dynamic analysis. It provides functionalities for recording and analyzing user sessions from several perspectives, and for producing various types of abstractions and visualizations about the run-time behavior of the application. In order to evaluate this tool, four case studies involving different comprehension tasks of Ajax applications have been executed. The experimental results showed the usefulness and effectiveness of the tool that provided a valid support for Ajax comprehension in reverse engineering, debugging, testing and quality assessment contexts.

DynaRIA: A Tool for Ajax Web Application Comprehension


Domenico Amalfitano, Anna Rita Fasolino, Armando Polcaro, Porfirio Tramontana:

DynaRIA: A Tool for Ajax Web Application Comprehension. ICPC 2010: 46-47


Thanks to Rich Internet Applications (RIAs) with their enhanced interactivity, responsiveness and dynamicity, the user experience in the Web 2.0 is becoming more and more appealing and user-friendly. At the same time, the dynamic nature of RIAs, and the heterogeneous technologies, frameworks, communication models used for implementing them negatively affect their analyzability and understandability, so that specific software techniques and tools are needed for supporting their comprehension. This paper presents DynaRIA, a tool for the comprehension of RIAs implemented in Ajax that is based on dynamic analysis and provides functionalities for recording and analyzing user sessions from several perspectives, and producing various types of abstractions and visualizations about the run-time behaviour of the application.

Reverse engineering techniques: From web applications to rich Internet applications

Porfirio Tramontana, Domenico Amalfitano, Anna Rita Fasolino:
Reverse engineering techniques: From web applications to rich Internet applications. WSE 2013: 83-86


Web systems evolved in the last years starting from static websites to Web applications, up to Ajax-based Rich Internet Applications (RIAs). Reverse Engineering techniques followed the same evolution, too. The authors and many other WSE contributors proposed a lot of innovative and effective ideas providing important advances in the reverse engineering field. In this paper, we will show the historical evolution of reverse engineering approaches for Web Systems with particular attention to the ones presented in the WSE events.

Rich Internet Applications Testing

Rich Internet Application Testing Using Execution Trace Data

Domenico Amalfitano, Anna Rita Fasolino, Porfirio Tramontana:

Rich Internet Application Testing Using Execution Trace Data. ICST Workshops 2010: 274-283


The rapid and growing diffusion of Rich Internet Applications (RIAs) with their enhanced interactivity, responsiveness and dynamicity is sharpening the distance between Web applications and desktop applications, making the Web experience more and more appealing and user-friendly. This paper presents a technique for testing RIAs that generates test cases from application execution traces, and obtains more scalable test suites thanks to testing reduction techniques. Execution traces provide a fast and cheap way for generating test cases and can be obtained either from user sessions, or by crawling the application or by combining both approaches. The proposed technique has been evaluated by a preliminary experiment that investigated the effectiveness of different approaches for execution trace collection and of several criteria for reducing the test suites. The experimental results showed the feasibility of the technique and that its effectiveness can be improved by hybrid approaches that combine both manually and automatically obtained execution traces of the application.

TestRIA


TestRia is a tool for the automatic regression testing of RIAs.

Input to TestRia are the session traces collected via CreRia. TestRia is able to automatically replay session traces and to automatically evaluate if the same sequence of states is reached both on the original execution both on the replayed execution on a modified version of the application under test. In order to evaluate the state similarity, the same criteria originally proposed for CreRia are applied.

In order to face testing scalability problems, TestRIA provide functions for the reduction of the session traces according to such covering criteria

TestRIA (JAR file + empty mysql db)


Techniques and tools for Rich Internet Applications testing

Domenico Amalfitano, Anna Rita Fasolino, Porfirio Tramontana:

Techniques and tools for Rich Internet Applications testing. WSE 2010: 63-72


The User Interfaces of Rich Internet Applications (RIAs) present a richer functionality and enhanced usability than the ones of traditional Web applications which are obtained by means of a successful combination of heterogeneous technologies, frameworks, and communication models. Due to its increased complexity, dynamicity, and responsiveness, testing the user interfaces of an RIA is more complex than testing the user interfaces of a traditional Web application and requires that effective and efficient testing techniques are proposed and validated. In this paper we analyse the most critical open issues in RIA testing automation and propose a classification framework that characterizes existing RIA testing techniques from four different perspectives. Driven by this classification, we present a set of testing techniques that can be used for automatically and semi-automatically generating test cases, for executing them and evaluating their results. Some examples of applying the proposed techniques for testing real Ajax applications will also be shown in the paper.

Reverse Engineering Rich Internet Applications

Experimenting a reverse engineering technique for modelling the behaviour of rich internet applications

Domenico Amalfitano, Anna Rita Fasolino, Porfirio Tramontana:

Experimenting a reverse engineering technique for modelling the behaviour of rich internet applications. ICSM 2009: 571-574


While the rapid and growing diffusion of rich Internet applications (RIAs) with their enhanced interactive, responsive and dynamic behaviour is sharpening the distance between Web applications and desktop applications, at the same time, the maintenance community is experiencing the need for effective analysis approaches for understanding and modelling this behaviour adequately. This paper presents a reverse engineering technique based on dynamic analysis and supported by a tool that reconstructs a model of the RIA behaviour based on finite state machines. The technique is based on the analysis of the RIA user interface evolution shown in user sessions, and exploits user interface equivalence criteria for abstracting relevant states and state transitions to be included in the model. For assessing the effectiveness and the cost of this technique, an experiment involving four distinct RIAs implemented with AJAX technique was carried out.

CreRIA

The version 3.4 of CreRIA supports an interactive and incremental process for the reverse engineering of RIAs via dynamic analysis.

The tool was developed with Java-based technologies, and its architecture includes five packages named GUI, Extractor, Abstractor, Validator, and DataBaseController respectively, besides a relational database that stores the extracted information and produced abstractions.

CreRIA 4.0 (JAR file + empty mysql db + readme.txt)


Reverse Engineering Finite State Machines from Rich Internet Applications

Domenico Amalfitano, Anna Rita Fasolino, Porfirio Tramontana:
Reverse Engineering Finite State Machines from Rich Internet Applications. WCRE 2008: 69-73


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. At the same time, RIAs introduce new issues and challenges in all the Web application lifecycle activities. As an example, a key problem with RIAs consists of defining suitable software models for representing them and validating reverse engineering techniques for obtaining these models effectively.This paper presents a reverse engineering approach for abstracting finite state machines representing the client-side behaviour offered by RIAs. The approach is based on dynamic analysis of the RIA and employs clustering techniques for solving the problem of state explosion of the state machine. A case study illustrated in the paper shows the results of a preliminary experiment where the proposed process has been executed with success for reverse engineering the behaviour of an existing RIA.