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.
Software Reliability Growth Model with Logistic- Exponential Testing-Effort F...IDES Editor
Software reliability is one of the important factors of
software quality. Before software delivered in to market it is
thoroughly checked and errors are removed. Every software
industry wants to develop software that should be error free.
Software reliability growth models are helping the software
industries to develop software which is error free and reliable.
In this paper an analysis is done based on incorporating the
logistic-exponential testing-effort in to NHPP Software
reliability growth model and also observed its release policy.
Experiments are performed on the real datasets. Parameters
are calculated and observed that our model is best fitted for
the datasets.
Specification-based Verification of Incomplete ProgramsIDES Editor
Recently, formal methods like model checking or
theorem proving have been considered efficient tools for
software verification. However, when practically applied, those
techniques suffer high complexity cost. Combining static
analysis with dynamic checking to deal with this problem has
been becoming an emerging trend, which results in the
introduction of concolic testing technique and its variations.
However, the analysis-based verification techniques always
assume the availability of full source code of the verified
program, which does not always hold in real life contexts. In
this paper, we propose an approach to tackle this problem,
where our contributed ideas are (i) combining function
specification with control flow analysis to deal with sourcemissing
function; (ii) generating self-complete programs from
incomplete programs by means of concrete execution, thus
making them fully verifiable by model checking; and (iii)
developing a constraint-based test-case generation technique
to significantly reduce the complexity. Our solution has been
proved viable when successfully deployed for checking
programming work of students.
A WHITE BOX TESTING TECHNIQUE IN SOFTWARE TESTING : BASIS PATH TESTINGJournal For Research
Software Testing is the emerging and important field of IT industry because without the concept of software testing, there is no quality software which is produced in the industry. Verification and Validation are the two basic building blocks of software testing process. There are various testing tactics, strategies and methodologies to test the software. Path Testing is one such a methodology used to test the software. Basically, path testing is a type of White Box/ Glass Box/ Open Box/ Structural testing technique. It generates the test suite based on the number of independent paths that are presented in a program by drawing the Control Flow Graph of an application. The basic objective of this paper is to acquire the knowledge on the basis path testing by considering a sample of code and the implementation of path testing is described with its merits and demerits.
FAULT MODELING OF COMBINATIONAL AND SEQUENTIAL CIRCUITS AT REGISTER TRANSFER ...VLSICS Design
As the complexity of Very Large Scale Integration (VLSI) is growing, testing becomes tedious and tougher. As of now fault models are used to test digital circuits at the gate level or below that level. By using fault models at the lower levels, testing becomes cumbersome and will lead to delays in the design cycle. In addition, developments in deep submicron technology provide an opening to new defects. We must develop efficient fault detection and location methods in order to reduce manufacturing costs and time to market. Thus there is a need to look for a new approach of testing the circuits at higher levels to speed up the design cycle. This paper proposes on Register Transfer Level (RTL) modeling for digital circuits and computing the fault coverage. The result obtained through this work establishes that the fault coverage with the RTL fault model is comparable to the gate level fault coverage.
Fault Modeling for Verilog Register Transfer Levelidescitation
As the complexity of Very Large Scale Integration
(VLSI) increases, testing becomes tedious. Currently fault
models are used to test digital circuits at gate level or at levels
lower than gate. Modeling faults at these levels, leads to
increase in the design cycle time period. Hence, there is a
need to explore new approaches for modeling faults at higher
levels. This paper proposes fault modeling at the Register
Transfer Level (RTL) for digital circuits. Using this level of
modeling, results are obtained for fault coverage, area and
test patterns. A software prototype, FEVER, has been developed
in C which reads a RTL description and generates two output
files: one a modified RTL with test features and two a file
consisting of set of test patterns. These modified RTL and test
patterns are further used for fault simulation and fault
coverage analysis. Comparison is performed between the RTL
and Gate level modeling for ISCAS benchmarks and the
results of the same are presented. Results are obtained using
Synopsys, TetraMax and it is shown that it is possible to achieve
100% fault coverage with no area overhead at the RTL level
Software Reliability Growth Model with Logistic- Exponential Testing-Effort F...IDES Editor
Software reliability is one of the important factors of
software quality. Before software delivered in to market it is
thoroughly checked and errors are removed. Every software
industry wants to develop software that should be error free.
Software reliability growth models are helping the software
industries to develop software which is error free and reliable.
In this paper an analysis is done based on incorporating the
logistic-exponential testing-effort in to NHPP Software
reliability growth model and also observed its release policy.
Experiments are performed on the real datasets. Parameters
are calculated and observed that our model is best fitted for
the datasets.
Specification-based Verification of Incomplete ProgramsIDES Editor
Recently, formal methods like model checking or
theorem proving have been considered efficient tools for
software verification. However, when practically applied, those
techniques suffer high complexity cost. Combining static
analysis with dynamic checking to deal with this problem has
been becoming an emerging trend, which results in the
introduction of concolic testing technique and its variations.
However, the analysis-based verification techniques always
assume the availability of full source code of the verified
program, which does not always hold in real life contexts. In
this paper, we propose an approach to tackle this problem,
where our contributed ideas are (i) combining function
specification with control flow analysis to deal with sourcemissing
function; (ii) generating self-complete programs from
incomplete programs by means of concrete execution, thus
making them fully verifiable by model checking; and (iii)
developing a constraint-based test-case generation technique
to significantly reduce the complexity. Our solution has been
proved viable when successfully deployed for checking
programming work of students.
A WHITE BOX TESTING TECHNIQUE IN SOFTWARE TESTING : BASIS PATH TESTINGJournal For Research
Software Testing is the emerging and important field of IT industry because without the concept of software testing, there is no quality software which is produced in the industry. Verification and Validation are the two basic building blocks of software testing process. There are various testing tactics, strategies and methodologies to test the software. Path Testing is one such a methodology used to test the software. Basically, path testing is a type of White Box/ Glass Box/ Open Box/ Structural testing technique. It generates the test suite based on the number of independent paths that are presented in a program by drawing the Control Flow Graph of an application. The basic objective of this paper is to acquire the knowledge on the basis path testing by considering a sample of code and the implementation of path testing is described with its merits and demerits.
FAULT MODELING OF COMBINATIONAL AND SEQUENTIAL CIRCUITS AT REGISTER TRANSFER ...VLSICS Design
As the complexity of Very Large Scale Integration (VLSI) is growing, testing becomes tedious and tougher. As of now fault models are used to test digital circuits at the gate level or below that level. By using fault models at the lower levels, testing becomes cumbersome and will lead to delays in the design cycle. In addition, developments in deep submicron technology provide an opening to new defects. We must develop efficient fault detection and location methods in order to reduce manufacturing costs and time to market. Thus there is a need to look for a new approach of testing the circuits at higher levels to speed up the design cycle. This paper proposes on Register Transfer Level (RTL) modeling for digital circuits and computing the fault coverage. The result obtained through this work establishes that the fault coverage with the RTL fault model is comparable to the gate level fault coverage.
Fault Modeling for Verilog Register Transfer Levelidescitation
As the complexity of Very Large Scale Integration
(VLSI) increases, testing becomes tedious. Currently fault
models are used to test digital circuits at gate level or at levels
lower than gate. Modeling faults at these levels, leads to
increase in the design cycle time period. Hence, there is a
need to explore new approaches for modeling faults at higher
levels. This paper proposes fault modeling at the Register
Transfer Level (RTL) for digital circuits. Using this level of
modeling, results are obtained for fault coverage, area and
test patterns. A software prototype, FEVER, has been developed
in C which reads a RTL description and generates two output
files: one a modified RTL with test features and two a file
consisting of set of test patterns. These modified RTL and test
patterns are further used for fault simulation and fault
coverage analysis. Comparison is performed between the RTL
and Gate level modeling for ISCAS benchmarks and the
results of the same are presented. Results are obtained using
Synopsys, TetraMax and it is shown that it is possible to achieve
100% fault coverage with no area overhead at the RTL level
Techniques and Tools for Rich Internet Applications TestingPorfirio Tramontana
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.
Software Testing: Test Design and the Project Life CycleDerek Callaway
The software development process consists of an indeterminate number of fundamental steps that together comprise the project life cycle. All of these steps carry out software testing in one form or another. Some organizations have an entire team delegated exclusively to software testing. (Royer 16-17,20) As a result, a substantial amount of a software development project’s budget is allocated solely toward testing. This establishes the need to utilize formal techniques in order to trim cost. (Amman and Black, Coverage 20) Such techniques are the subject of an ample amount of scholarly investigation and are generally classified into two complementary integration approaches (top-down and bottom-up) and fall into one of a pair of distinct methods (black-box and white-box). In this report, the distinguishing characteristics and merits of each are presented, as well as their relative disadvantages and ways to mitigate their limitations.
Software CrashLocator: Locating the Faulty Functions by Analyzing the Crash S...INFOGAIN PUBLICATION
In recent years, studies have been dedicated mainly in the analysis, of crashes in real-world related to large-scale software systems. A crash in terms of computing can be termed as a computer program such as a software application that stops functioning properly. Software crash is a serious problem in production environment. When crash happens, the crash report with the stack trace of software at time of crash is sent to the developer team. Software development team may receive hundreds of stack traces from all deployment sites and many stack traces may be due to same problem. If the developer starts analyzing each trace, it may take a longer duration of time and redundancy many happen in terms of two developers fixing the same problem. This motivates us to present the solution to analyze the stack traces and find the important functions responsible for crash and rank them, so that development resources can be optimized. In this paper we have proposed the solution to solve the problem by developing Software CrashLocator.
Validation and Verification of SYSML Activity Diagrams Using HOARE Logic ijseajournal
SysML diagrams are significant medium using for supporting software lifecycle management. The existing TBFV method is designed for error detection with full automation efficiency, only for code. For verifying the correctness of SysML diagram, we applying TBFV method into SysML diagram. In this paper, we
propose a novel technique that makes use of Hoare Logic and testing to verify whether the SysML diagrams meet the requirement, called TBFV-M. This research can improve the correctness of SysML diagram, which is likely to significantly affect the reliability of the implementation. A case study is conducted to show its feasibility and used to illustrate how the proposed method is applied; and discussion on potential
challenges to TBFV-M is also presented.
DYNAMUT: A MUTATION TESTING TOOL FOR INDUSTRY-LEVEL EMBEDDED SYSTEM APPLICATIONSijesajournal
Test suite evaluation is important when developing quality software. Mutation testing, in particular, can be helpful in determining the ability of a test suite to find defects in code. Because of challenges incurred developing on complex embedded systems, test suite evaluation on these systems is very difficult and costly. We developed and implemented a tool called DynaMut to insert conditional mutations into the software under test for embedded applications. We then demonstrate how the tool can be used to automate the collection of data using an existing proprietary embedded test suite in a runtime testing environment. Conditional mutation is used to reduce the time and effort needed to perform test quality evaluation in 48% to 67% less time than it would take to perform the testing with a more traditional mutate-compile-test methodology. We also analyze if testing time can be further reduced while maintaining quality by sampling the mutations tested.
EXPERIMENTAL EVALUATION AND RESULT DISCUSSION OF METAMORPHIC TESTING AUTOMATI...IAEME Publication
Metamorphic Testing is an attribute relations based testing, used to mitigate the test oracle problem in testing complex non-testable programs. MTAF stands for Metamorphic Testing Automation Framework, introduced to eliminate the human intervention in creating test cases, mapping the relations, executing the statements and identifying the errors from input programs. MTAF is especially designed to address the test oracle problem of two most popular non-testable program domains are Multi Precision Arithmetic (MPA) and Graph Theory (GT) applications. In this paper, the researcher explains the results of conducted experiments and identified bug information with MTAF. Several Multi Precision Arithmetic and Graph Theory related hidden bugs are discussed in this paper to show the performance of MTAF.
The development of embedded applications (such as Wireless Sensor Network protocols) often
requires a shift to formal specifications. To insure the reliability and the performance of the
WSNs, such protocols must be designed following some methods reducing error rate. Formal
methods (as Automata, Petri nets, algebra, logics, etc.) were largely used in the specification of
these protocols, their analysis and their verification. After that, their implementation is an
important phase to deploy, test and use those protocols in real environments. The main
objective of the current paper is to formalize the transformation from high-level specification (in
Timed Automata) to low-level implementation (in NesC language and TinyOs system) and to
automate such transformation. The proposed transformation approach defines a set of rules that
allow the passage between these two levels. We implemented our solution and we illustrated the
proposed approach on a protocol case study for the "humidity" and "temperature" sensing in
WSNs applications.
MEASURE’s Structured Metrics Meta-Model Module at TAROT 2016Alessandra Bagnato
The demand for cost-effectiveness and higher quality is increasing due to the competition in software industry and complexity of the developed systems.
Due to the modern iterative development practices and new tools & methods the traditional metrics and evaluation methods are not sufficient anymore.
To allow continuous monitoring and improvement, the measurement has to be automated and integrated into the process & tooling landscape.
The MEASURE project will define new metrics, methods and tools for measuring the effectiveness and efficiency of industrial software engineering processes and will provide cross metrics feedback.
An Approach for Model Based Testing of Augmented Reality Applications.pdfPorfirio Tramontana
The popularity of Augmented Reality (AR) applications has strongly been increased with the worldwide
success of the Pokemon Go videogame released by Niantic in 2016. However, AR offers tangible benefits
in many further areas beyond entertainment, such as advertisement, education, navigation, maintenance,
health, and so on. With the growing spread and success of AR applications in these fields, there has also
been a growing necessity for approaches and technologies for assuring the quality of these applications,
such as testing. A few technologies and frameworks have been recently proposed supporting the
implementation and execution of test scripts that can be used to exercise the applications, but there still
is a lack of effective techniques and tools for the automatic generation of executable test cases. In this
paper, we investigate the possibility of using Model Based Testing techniques to generate executable
test scripts from Finite State Machines modeling the behaviour of the GUI of AR applications, similarly
to other GUI based applications. We have applied several model coverage criteria to design test suites
and we have shown the feasibility of this approach by testing two small example applications involving
Unity3D and Vuforia technologies
Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...Porfirio Tramontana
Capture and Replay techniques provide a well known
solution for End-To-End (E2E) testing of Web applications.
They allow a tester to generate test scripts without
requiring advanced programming skills. For this reason, they
are very popular in acceptance and regression testing activities.
These techniques are affected by the issue of fragility of the
produced test cases, which may break even if small changes
are operated in the user interface, without modifications of the
app functionality. To overcome this issue, several approaches for
either generating robust test cases or automatically repairing
broken test cases have been proposed. In this paper we propose an
alternative solution that aims at improving the testability of Web
applications for generating robust test cases. This solution applies
to Web applications developed with template-based technologies.
It is based on the template source code automatic injection of
additional hook attributes and on the proposal of a new type
of locators based on such hooks. These locators aid the unique
retrieval of the user interface items involved in test cases. We
validated our technique in the context of a continuous integration
and delivery processes of template-based web applications that
was developed from scratch. The study showed that the use of
hook-based locators can improve the robustness of test cases
generated by a Capture & Replay testing tool, introducing
relevant savings in the regression test case repairing activity.
More Related Content
Similar to Rich Internet Application Testing Using Execution Trace Data
Techniques and Tools for Rich Internet Applications TestingPorfirio Tramontana
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.
Software Testing: Test Design and the Project Life CycleDerek Callaway
The software development process consists of an indeterminate number of fundamental steps that together comprise the project life cycle. All of these steps carry out software testing in one form or another. Some organizations have an entire team delegated exclusively to software testing. (Royer 16-17,20) As a result, a substantial amount of a software development project’s budget is allocated solely toward testing. This establishes the need to utilize formal techniques in order to trim cost. (Amman and Black, Coverage 20) Such techniques are the subject of an ample amount of scholarly investigation and are generally classified into two complementary integration approaches (top-down and bottom-up) and fall into one of a pair of distinct methods (black-box and white-box). In this report, the distinguishing characteristics and merits of each are presented, as well as their relative disadvantages and ways to mitigate their limitations.
Software CrashLocator: Locating the Faulty Functions by Analyzing the Crash S...INFOGAIN PUBLICATION
In recent years, studies have been dedicated mainly in the analysis, of crashes in real-world related to large-scale software systems. A crash in terms of computing can be termed as a computer program such as a software application that stops functioning properly. Software crash is a serious problem in production environment. When crash happens, the crash report with the stack trace of software at time of crash is sent to the developer team. Software development team may receive hundreds of stack traces from all deployment sites and many stack traces may be due to same problem. If the developer starts analyzing each trace, it may take a longer duration of time and redundancy many happen in terms of two developers fixing the same problem. This motivates us to present the solution to analyze the stack traces and find the important functions responsible for crash and rank them, so that development resources can be optimized. In this paper we have proposed the solution to solve the problem by developing Software CrashLocator.
Validation and Verification of SYSML Activity Diagrams Using HOARE Logic ijseajournal
SysML diagrams are significant medium using for supporting software lifecycle management. The existing TBFV method is designed for error detection with full automation efficiency, only for code. For verifying the correctness of SysML diagram, we applying TBFV method into SysML diagram. In this paper, we
propose a novel technique that makes use of Hoare Logic and testing to verify whether the SysML diagrams meet the requirement, called TBFV-M. This research can improve the correctness of SysML diagram, which is likely to significantly affect the reliability of the implementation. A case study is conducted to show its feasibility and used to illustrate how the proposed method is applied; and discussion on potential
challenges to TBFV-M is also presented.
DYNAMUT: A MUTATION TESTING TOOL FOR INDUSTRY-LEVEL EMBEDDED SYSTEM APPLICATIONSijesajournal
Test suite evaluation is important when developing quality software. Mutation testing, in particular, can be helpful in determining the ability of a test suite to find defects in code. Because of challenges incurred developing on complex embedded systems, test suite evaluation on these systems is very difficult and costly. We developed and implemented a tool called DynaMut to insert conditional mutations into the software under test for embedded applications. We then demonstrate how the tool can be used to automate the collection of data using an existing proprietary embedded test suite in a runtime testing environment. Conditional mutation is used to reduce the time and effort needed to perform test quality evaluation in 48% to 67% less time than it would take to perform the testing with a more traditional mutate-compile-test methodology. We also analyze if testing time can be further reduced while maintaining quality by sampling the mutations tested.
EXPERIMENTAL EVALUATION AND RESULT DISCUSSION OF METAMORPHIC TESTING AUTOMATI...IAEME Publication
Metamorphic Testing is an attribute relations based testing, used to mitigate the test oracle problem in testing complex non-testable programs. MTAF stands for Metamorphic Testing Automation Framework, introduced to eliminate the human intervention in creating test cases, mapping the relations, executing the statements and identifying the errors from input programs. MTAF is especially designed to address the test oracle problem of two most popular non-testable program domains are Multi Precision Arithmetic (MPA) and Graph Theory (GT) applications. In this paper, the researcher explains the results of conducted experiments and identified bug information with MTAF. Several Multi Precision Arithmetic and Graph Theory related hidden bugs are discussed in this paper to show the performance of MTAF.
The development of embedded applications (such as Wireless Sensor Network protocols) often
requires a shift to formal specifications. To insure the reliability and the performance of the
WSNs, such protocols must be designed following some methods reducing error rate. Formal
methods (as Automata, Petri nets, algebra, logics, etc.) were largely used in the specification of
these protocols, their analysis and their verification. After that, their implementation is an
important phase to deploy, test and use those protocols in real environments. The main
objective of the current paper is to formalize the transformation from high-level specification (in
Timed Automata) to low-level implementation (in NesC language and TinyOs system) and to
automate such transformation. The proposed transformation approach defines a set of rules that
allow the passage between these two levels. We implemented our solution and we illustrated the
proposed approach on a protocol case study for the "humidity" and "temperature" sensing in
WSNs applications.
MEASURE’s Structured Metrics Meta-Model Module at TAROT 2016Alessandra Bagnato
The demand for cost-effectiveness and higher quality is increasing due to the competition in software industry and complexity of the developed systems.
Due to the modern iterative development practices and new tools & methods the traditional metrics and evaluation methods are not sufficient anymore.
To allow continuous monitoring and improvement, the measurement has to be automated and integrated into the process & tooling landscape.
The MEASURE project will define new metrics, methods and tools for measuring the effectiveness and efficiency of industrial software engineering processes and will provide cross metrics feedback.
An Approach for Model Based Testing of Augmented Reality Applications.pdfPorfirio Tramontana
The popularity of Augmented Reality (AR) applications has strongly been increased with the worldwide
success of the Pokemon Go videogame released by Niantic in 2016. However, AR offers tangible benefits
in many further areas beyond entertainment, such as advertisement, education, navigation, maintenance,
health, and so on. With the growing spread and success of AR applications in these fields, there has also
been a growing necessity for approaches and technologies for assuring the quality of these applications,
such as testing. A few technologies and frameworks have been recently proposed supporting the
implementation and execution of test scripts that can be used to exercise the applications, but there still
is a lack of effective techniques and tools for the automatic generation of executable test cases. In this
paper, we investigate the possibility of using Model Based Testing techniques to generate executable
test scripts from Finite State Machines modeling the behaviour of the GUI of AR applications, similarly
to other GUI based applications. We have applied several model coverage criteria to design test suites
and we have shown the feasibility of this approach by testing two small example applications involving
Unity3D and Vuforia technologies
Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...Porfirio Tramontana
Capture and Replay techniques provide a well known
solution for End-To-End (E2E) testing of Web applications.
They allow a tester to generate test scripts without
requiring advanced programming skills. For this reason, they
are very popular in acceptance and regression testing activities.
These techniques are affected by the issue of fragility of the
produced test cases, which may break even if small changes
are operated in the user interface, without modifications of the
app functionality. To overcome this issue, several approaches for
either generating robust test cases or automatically repairing
broken test cases have been proposed. In this paper we propose an
alternative solution that aims at improving the testability of Web
applications for generating robust test cases. This solution applies
to Web applications developed with template-based technologies.
It is based on the template source code automatic injection of
additional hook attributes and on the proposal of a new type
of locators based on such hooks. These locators aid the unique
retrieval of the user interface items involved in test cases. We
validated our technique in the context of a continuous integration
and delivery processes of template-based web applications that
was developed from scratch. The study showed that the use of
hook-based locators can improve the robustness of test cases
generated by a Capture & Replay testing tool, introducing
relevant savings in the regression test case repairing activity.
Development and diffusion of Mobile applications go forward at a tremendous rhythm, due to the always increasing impact of smartphones and other mobile devices on people’s habitudes but many applications are uninstalled and discarded by users when they experience the presence of bugs. Functional testing represents a crucial activity in the context of mobile applications, and there is a large request in both industry and scientific community for mobile testing methodologies, techniques and tools. In particular, since these activities are usually repetitive, expensive and time consuming, there is a remarkable request for automated techniques and tools supporting them.
This talk will provide a view of the state-of-the-art on techniques and tools supporting the automation of functional testing of mobile applications, including model based, model learning, search based, user session based and random testing techniques.
A technique for parallel gui testing of android applicationsPorfirio Tramontana
There is a large need for effective and efficient testing processes and tools for mobile applications, due to their continuous evolution and to the sensitivity of their users to failures. Industries and researchers focus their effort to the realization of effective fully automatic testing techniques for mobile applications. Many of the proposed testing techniques
lack in efficiency because their algorithms cannot be executed in parallel. In particular, Active Learning testing techniques usually relay on sequential algorithms.
In this paper we propose a Active Learning technique for the fully automatic exploration and testing of Android applications, that parallelizes and improves a general algorithm proposed in the literature. The novel parallel algorithm has been implemented in the context of a prototype tool exploiting a component-based architecture, and has been experimentally evaluated on 3 open source Android applications by varying different deployment configurations.
The measured results have shown the feasibility of the proposed technique and an average saving in testing time between 33% (deploying two testing resources) and about 80% (deploying 12 testing resources).
Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...Porfirio Tramontana
Nevertheless spreadsheets were originally designed for computing purposes and for commercial applications, they are often used in industry to implement Information Systems, thanks to the functionalities offered by integrated scripting languages and ad-hoc frameworks (e.g., Visual Basic for Applications). This technological solution allows the adoption of Rapid Application Development processes for the quickly development of Spreadsheets-based Information Systems, but the resulting systems are quite difficult to be maintained and very difficult to be migrated to other architectures such as Database-oriented Informative Systems or Web applications. In this paper we present an approach for reverse engineering the data model from an Excel spreadsheet-based system in the context of a process of migration to a Web based application based on a MVC architecture. The proposed approach was successfully applied in a real context of a company operating in the automotive industry. The main contribution of this paper is represented by the Data Model Reverse Engineering activity that is the basis of the Migration process.
Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...Porfirio Tramontana
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.
Over the last fifteen years, Web applications have evolved from the early simple and hyper-text based ones into the more complex, interactive, usable and adaptive applications of the new generations. New paradigms, architectures, and technologies for developing Web-based systems continuously emerge and transform this specific context. At the same time, new techniques and tools for effectively testing them have been proposed. This paper reports some relevant contributions about the Web application testing topic that appeared in the past editions of the Web Systems Evolution international symposium (WSE) and discusses some future trends for this specific field.
Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...Porfirio Tramontana
The rapid diffusion of Internet has triggered a growing request for new Web sites and Web Applications (WA).
Due to the pressing market demand, new WAs are usually developed in a very short time, while existing WAs are modified frequently and quickly. In these conditions, the well-known software engineering principles are not usually applied, as well as well-defined software processes and methodologies are rarely adopted. As a consequence, WAs usually present disordered architectures, poor or non-existing documentation, and can be analyzed, comprehended and modified with a considerable effort.
Reverse engineering methods and tools are being proposed in order to reduce the effort required to comprehend existing WAs and to support their maintenance and evolution. In this paper, the experimentation of a reverse engineering approach is described. Experimentation was carried out with the aim of assessing which characteristics of a WA mostly affect comprehensibility. The results of the experiments highlighted a set of techniques and best practices that should be applied for producing best analyzable and maintainable WAs.
Comprehending Web Applications by a Clustering Based Approach Porfirio Tramontana
The number and the complexity of web applications are increasing dramatically to satisfy the market requests, and the need of effective approaches for comprehending them is growing accordingly. Recently, some reverse engineering methods and tools have been proposed to support the comprehension of a web application; the information recovered by these tools is usually rendered in graphical representations. However, the graphical representations become progressively less useful with large-scale applications, and do not support adequately the comprehension of the application.
In this paper, to overcome this limitation, we propose an approach based on a clustering method for decomposing a web application (WA) into groups of highly functionally related components. The approach is based on the definition of a coupling measure between interconnected components of the WA that takes into account both the typology and the topology of the connections. The coupling measure is exploited by a clustering algorithm that produces a hierarchy of clustering. This hierarchy allows a structured approach to the comprehension of the web application to be carried out. The approach has been experimented with on medium sized web applications and produced interesting and encouraging results.
The heterogeneous and dynamic nature of components making up a Web Application, the lack of effective programming mechanisms for implementing basic software engineering principles in it, and undisciplined development processes induced by the high pressure of a very short time-to-market, make Web Application maintenance a challenging problem. A relevant issue consists of reusing the methodological and technological experience in the sector of traditional software maintenance, and exploring the opportunity of using Reverse Engineering to support effective Web Application maintenance.
The Ph.D. Thesis presents an approach for Reverse Engineering Web Applications. The approach include the definition of Reverse Engineering methods and supporting software tools, that help to understand existing undocumented Web Applications to be maintained or evolved, through the reconstruction of UML diagrams. Some validation experiments have been carried out and they showed the usefulness of the proposed approach and highlighted possible areas for improvement of its effectiveness.
Recovering Interaction Design Patterns in Web Applications Porfirio Tramontana
In the last years, appropriate user interaction design patterns for Web Applications have been defined to improve the development and quality of such applications. Identifying which interaction design patterns are implemented in the Web client pages of an existing application may make easier some maintenance tasks, such as the re-engineering of the user interfaces.
In this paper a method to support the automatic identification of interaction design patterns implemented in a Web client page is proposed. The method is based on reverse engineering techniques aiming to search the page code for those features characterizing a pattern.
Warranting the access to Web contents to any citizen, even to people with physical disabilities, is a major concern of many government organizations. Although guidelines for Web developers have been proposed by international organisations (such as the W3C) to make Web site contents accessible, the wider part of today’s Web sites are not completely usable by peoples with sight disabilities.
In this paper, two different approaches for dynamically transforming Web Pages into Aural Web Pages, i.e. pages that are optimised for blind peoples, will be presented. The approaches exploit heuristic techniques for summarising Web pages contents and providing them to blind users in order to improve the usability of Web sites. The techniques have been validated in an experiment where usability metrics have been used to assess the effectiveness of the Web page transformation techniques.
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.
A GUI Crawling-based Technique for Android Mobile Application TestingPorfirio Tramontana
As mobile applications become more complex, specific development tools and frameworks as well as cost-effective testing techniques and tools will be essential to assure the development of secure, high-quality mobile applications.
This paper addresses the problem of automatic testing of mobile applications developed for the Google Android platform, and presents a technique for rapid crash testing and regression testing of Android applications. The technique is based on a crawler that automatically builds a model of the application GUI and obtains test cases that can be automatically executed. The technique is supported by a tool for both crawling the application and generating the test cases. In the paper we present an example of using the technique and the tool for testing a real small size Android application that preliminary shows the effectiveness and usability of the proposed testing approach.
Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...Porfirio Tramontana
The relevance of end user documentation for improving usability, learnability and operability of software applications is well known. However, software processes often devote little effort to the production of end user documentation due to budget and time constraints, or leave it not up-to-date as new versions of the application are produced. In particular, in the field of Web applications, due to their quick release time and the rapid evolution, end user documentation is often lacking, or it is incomplete and of poor quality. In this paper a semi-automatic approach for user documentation generation of Web 2.0 applications is presented. The approach exploits dynamic analysis techniques for capturing the user visible behaviour of a web application and, hence, producing end user documentation compliant with known standards and guidelines for software user documentation. A suite of tools support the approach by providing facilities for collecting user session traces associated with use case scenarios offered by the Web application, for abstracting a Navigation Graph of the application, and for generating tutorials and procedure descriptions. The obtained documentation is provided in textual and hypertextual formats. In order to show the feasibility and usefulness of the approach, an example of generating the user documentation for an existing Web application is presented in the paper.
Considering Context Events in Event-Based Testing of Mobile Applications Porfirio Tramontana
A relevant complexity factor in developing and testing mobile apps is given by their sensibility to changes in the context in which they run. As an example, apps running on a smartphone can be influenced by location changes, phone calls, device movements and many other typologies of context events.
In this paper, we address the problem of testing a mobile app as an event-driven system by taking into account both context events and GUI events. We present approaches based on the definition of reusable event patterns for the manual and automatic generation of test cases for mobile app testing.
One of the proposed testing techniques, based on a systematic and automatic exploration of the behaviour of an Android app, has been implemented and some preliminary case studies on real apps have been carried out in order to explore their effectiveness.
As mobile applications become more complex and business-critical, use of well-defined software engineering techniques becomes essential to assure the necessary software quality. In particular, testing and its automation play a strategic part for assuring the quality of applications that are often developed by small teams, working on strict timelines and under the pressure of short time-to-market. This paper presents an automated GUI based testing technique for Android apps. The technique is based on a ripper that automatically explores the GUI with the aim of exercising the application and revealing run-time crashes. At the same time, the ripper builds a GUI model and an executable test suite based on the JUnit test framework. The technique has been evaluated by an experiment where the ripper has been used to test a real Android application. The experiment has shown the fault-detection capability of the technique and its cost-effectiveness in smoke testing processes.
This paper presents a toolset for GUI testing of Android applications. The toolset is centered on a GUI ripper that systematically explores the GUI structure of an application under test with the aim of firing sequences of user events and exposing failures of the application. The toolset supports the execution of a testing procedure that automatically performs crash testing of subject applications and provides test results made of several artifacts. The paper illustrates some examples of using the toolset for testing real Android applications.
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.
An AHP-based Framework for Quality and Security EvaluationPorfirio Tramontana
Nowadays, there is a large diffusion of open and dynamic cooperative architectures that are based on services (SOA). In general, a customer is not only interested in service functionalities, but also in its quality (i.e. performance, cost, reliability, security and so on). In this scenario, models, techniques and tools supporting the effective selection of the service that provides the better quality are needed. In this paper, we propose an evaluation framework that includes a flexible quality meta-model for formalizing Customer and Provider views of quality, and a decisional model defining a systematic approach for comparing offered and requested quality of services. We will also illustrate the applicability of the framework in a Web Service scenario.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
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