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. A combination of web technologies give RIAs new client-side elaboration capacity, new presentation features, and different communication mechanisms between client and server side, making them very similar to desktop applications and able to provide richer user experiences. 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 models for representing them from several points of view and defining Reverse Engineering processes for obtaining them effectively.
This paper proposes a model based on Finite State Machines for representing the behaviour offered by a RIA implemented with Ajax-based techniques, and presents a reverse engineering process and a tool for producing this model. The reverse engineering process is based on dynamic analysis of the RIA and employs clustering techniques based on equivalence criteria 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.
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.
As online technology and services develop, mobile online technology and services of the same kind are sure to follow. This is true of mobile commerce. E-commerce has grown significantly over the past 10 years; and today, mobile commerce not only offers shoppers the same browser-based purchasing services via mobile, but in fact, allows more seamless crossing of channels from digital shopping to in-store shopping.
Here is our latest white paper, Passport To Purchase: M-Commerce, and read more abut the mobile evolution and its implications on CPGs, cross-channel approaches, target demographics, purchase behaviors, and more.
Set Your iPads Free: Using Apple TV to Unleash the Power of Mobile and Flip ...Rodney B. Murray
Presentation on "technology in service of pedagogy" given at the International Association of Medical Science Educators (IAMSE) meeting at St. Andrews University, Scotland in June 2013.
Pasos y analisis para nacionalizar dimeticona de acuerdo a el regimen aduaner...Julian Peña
Es el desarrollo de un trabajo en conjunto con el profesor Rafael Antonio Muñoz en el cual se lleva a cabo el desarrollo de todos los pasos necesarios para nacionalizar un producto como lo es la Dimeticona de acuerdo a las normar aduaneras Colombianas
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.
As online technology and services develop, mobile online technology and services of the same kind are sure to follow. This is true of mobile commerce. E-commerce has grown significantly over the past 10 years; and today, mobile commerce not only offers shoppers the same browser-based purchasing services via mobile, but in fact, allows more seamless crossing of channels from digital shopping to in-store shopping.
Here is our latest white paper, Passport To Purchase: M-Commerce, and read more abut the mobile evolution and its implications on CPGs, cross-channel approaches, target demographics, purchase behaviors, and more.
Set Your iPads Free: Using Apple TV to Unleash the Power of Mobile and Flip ...Rodney B. Murray
Presentation on "technology in service of pedagogy" given at the International Association of Medical Science Educators (IAMSE) meeting at St. Andrews University, Scotland in June 2013.
Pasos y analisis para nacionalizar dimeticona de acuerdo a el regimen aduaner...Julian Peña
Es el desarrollo de un trabajo en conjunto con el profesor Rafael Antonio Muñoz en el cual se lleva a cabo el desarrollo de todos los pasos necesarios para nacionalizar un producto como lo es la Dimeticona de acuerdo a las normar aduaneras Colombianas
En este Evolution Day nos adentramos en el Cosplay; una actividad muy enriquecedora pero poco conocida fuera del círculo de las convenciones de comics y ciencia ficción. Se trata de la recreación de personajes de la cultura pop en un sentido integral: desde confeccionar el traje hasta la interpretación. Aprendimos sobre los orígenes del hobby, quiénes organizan los concursos y cuál es el panorama en Uruguay. Para concluir vimos cuáles son las aptitudes que se adquieren con la práctica y la experiencia, una mezcla del pensamiento DIY (Do It Yourself) y la rápida resolución de problemas con la menor cantidad de recursos posible.
Um breve apanhado das idéias, pensamentos, frases e provocações de Jim Collins, sucessor legítimo de Peter Drucker, o maior teórico dos negócios em todos os tempos.
In the realm of real-time applications, Large Language Models (LLMs) have long dominated language-centric tasks, while tools like OpenCV have excelled in the visual domain. However, the future (maybe) lies in the fusion of LLMs and deep learning, giving birth to the revolutionary concept of Large Action Models (LAMs).
Imagine a world where AI not only comprehends language but mimics human actions on technology interfaces. For example, the Rabbit r1 device presented at CES 2024, driven by an AI operating system and LAM, brings this vision to life. It executes complex commands, leveraging GUIs with unprecedented ease.
In this presentation, join me on a journey as a software engineer tinkering with WebRTC, Janus, and LLM/LAMs. Together, we’ll evaluate the current state of these AI technologies, unraveling the potential they hold for shaping the future of real-time applications.
Metrics, metrics everywhere (but where the heck do you start?)Tammy Everts
You want a single, unicorn metric that magically sums up the user experience, business value, and numbers that DevOps cares about, but so far, you're just not getting it. So where do you start? In this talk at the 2015 Velocity conference in Santa Clara, Cliff Crocker and I walked through various metrics that answer performance questions from multiple perspectives -- from designer and DevOps to CRO and CEO.
Metrics, Metrics Everywhere (but where the heck do you start?)SOASTA
Not surprisingly, there’s no one-size-fits-all performance metric (though life would be simpler if there were). Different metrics will give you different critical insights into whether or not your pages are delivering the results you want — both from your end user’s perspective and ultimately from your organization’s perspective. Join Tammy Everts, and walk through various metrics that answer performance questions from multiple perspectives. You’ll walk away with a better understanding of your options, as well as a clear understanding of how to choose the right metric for the right audience.
Metrics, Metrics Everywhere (but where the heck do you start?)SOASTA
Not surprisingly, there’s no one-size-fits-all performance metric (though life would be simpler if there were). Different metrics will give you different critical insights into whether or not your pages are delivering the results you want — both from your end user’s perspective and ultimately from your organization’s perspective. Join Tammy Everts, and walk through various metrics that answer performance questions from multiple perspectives. You’ll walk away with a better understanding of your options, as well as a clear understanding of how to choose the right metric for the right audience.
Restate: Event-driven Asynchronous Services, Easy as Synchronous RPCHostedbyConfluent
"Event-driven services are a popular pattern in microservice architectures. Compared to RPC services, they are typically more resilient (especially when using durable logs, like Kafka), efficient, and scalable. Plus they lend themselves to advanced techniques like bootstrapping/reinstating the service from an existing event log.
But writing event-driven services is much harder than writing RPC-based services: Instead of writing simple request/reply handlers, developers must express logic as asynchronous event-handling logic, introduce complex state machines (and handle concerns of their consistency and persistence). Logic gets spread logic across different event handlers. Applications need to be aware of subscriptions, hot partitions, slow re-balancing, head-of-the-line waiting issues, etc. Many companies that adopt event-driven services find themselves building extensive tools to support dead letter queues, delayed events, and handle retries/recovery/idempotency.
We are developing Restate, to make event-driven applications as easy as RPC-based application. Developers write RPC-based services and Restate adds lightweight durable execution to the handlers (making them suspendable and allowing them to recover partial progress), persistent communication, and request ordering. The result is that code written as simple request/response RPCs executes with the same resilience and efficiency as an async state machine driven by events from a persistent queue, but remains easy to write, reason about, debug, and observe.
Restate natively integrates with Kafka, allowing users to directly process events of Kafka topics with Restate durable async/await programming model. We believe that Restate complements the current landscape of event-processing systems, by radically simplifying transactional event-driven applications that require complex control flow or interact with many external systems."
Learn about the exciting integration work that has been done with YARN, Red Hat OpenShift and Kurbernetes Docker container orchestration. During this presentation we will cover the basics of this exciting YARN integration effort and then launch into a demo. You won’t want to miss seeing web application docker container, Storm, and Hive SQL queries all running in the same HDP cluster!
The History of Data Push and the Lightstreamer Technology
Agenda:
- History of Data Push
- Lightstreamer Technology
- Lightstreamer Success Stories
- MQTT.Cool and JMS Extender
Turning Web Applications into Web Services by Wrapping TechniquesPorfirio Tramontana
In the era of Service Oriented Architectures a relevant research problem consists of turning Web applications into Web Services using systematic migration approaches.
This paper presents the research results that were obtained by adopting a black-box migration approach based on wrapping to migrate functionalities of existing Web applications to Web services. This approach is based on a migration process that relies on black-box reverse engineering techniques for modelling the Web application User Interface. The reverse engineering techniques are supported by a toolkit that allows a semi-automatic and effective generation of the wrapper. The software migration platform and the migration case studies that were performed to validate the proposed approach will also be presented in the paper.
En este Evolution Day nos adentramos en el Cosplay; una actividad muy enriquecedora pero poco conocida fuera del círculo de las convenciones de comics y ciencia ficción. Se trata de la recreación de personajes de la cultura pop en un sentido integral: desde confeccionar el traje hasta la interpretación. Aprendimos sobre los orígenes del hobby, quiénes organizan los concursos y cuál es el panorama en Uruguay. Para concluir vimos cuáles son las aptitudes que se adquieren con la práctica y la experiencia, una mezcla del pensamiento DIY (Do It Yourself) y la rápida resolución de problemas con la menor cantidad de recursos posible.
Um breve apanhado das idéias, pensamentos, frases e provocações de Jim Collins, sucessor legítimo de Peter Drucker, o maior teórico dos negócios em todos os tempos.
In the realm of real-time applications, Large Language Models (LLMs) have long dominated language-centric tasks, while tools like OpenCV have excelled in the visual domain. However, the future (maybe) lies in the fusion of LLMs and deep learning, giving birth to the revolutionary concept of Large Action Models (LAMs).
Imagine a world where AI not only comprehends language but mimics human actions on technology interfaces. For example, the Rabbit r1 device presented at CES 2024, driven by an AI operating system and LAM, brings this vision to life. It executes complex commands, leveraging GUIs with unprecedented ease.
In this presentation, join me on a journey as a software engineer tinkering with WebRTC, Janus, and LLM/LAMs. Together, we’ll evaluate the current state of these AI technologies, unraveling the potential they hold for shaping the future of real-time applications.
Metrics, metrics everywhere (but where the heck do you start?)Tammy Everts
You want a single, unicorn metric that magically sums up the user experience, business value, and numbers that DevOps cares about, but so far, you're just not getting it. So where do you start? In this talk at the 2015 Velocity conference in Santa Clara, Cliff Crocker and I walked through various metrics that answer performance questions from multiple perspectives -- from designer and DevOps to CRO and CEO.
Metrics, Metrics Everywhere (but where the heck do you start?)SOASTA
Not surprisingly, there’s no one-size-fits-all performance metric (though life would be simpler if there were). Different metrics will give you different critical insights into whether or not your pages are delivering the results you want — both from your end user’s perspective and ultimately from your organization’s perspective. Join Tammy Everts, and walk through various metrics that answer performance questions from multiple perspectives. You’ll walk away with a better understanding of your options, as well as a clear understanding of how to choose the right metric for the right audience.
Metrics, Metrics Everywhere (but where the heck do you start?)SOASTA
Not surprisingly, there’s no one-size-fits-all performance metric (though life would be simpler if there were). Different metrics will give you different critical insights into whether or not your pages are delivering the results you want — both from your end user’s perspective and ultimately from your organization’s perspective. Join Tammy Everts, and walk through various metrics that answer performance questions from multiple perspectives. You’ll walk away with a better understanding of your options, as well as a clear understanding of how to choose the right metric for the right audience.
Restate: Event-driven Asynchronous Services, Easy as Synchronous RPCHostedbyConfluent
"Event-driven services are a popular pattern in microservice architectures. Compared to RPC services, they are typically more resilient (especially when using durable logs, like Kafka), efficient, and scalable. Plus they lend themselves to advanced techniques like bootstrapping/reinstating the service from an existing event log.
But writing event-driven services is much harder than writing RPC-based services: Instead of writing simple request/reply handlers, developers must express logic as asynchronous event-handling logic, introduce complex state machines (and handle concerns of their consistency and persistence). Logic gets spread logic across different event handlers. Applications need to be aware of subscriptions, hot partitions, slow re-balancing, head-of-the-line waiting issues, etc. Many companies that adopt event-driven services find themselves building extensive tools to support dead letter queues, delayed events, and handle retries/recovery/idempotency.
We are developing Restate, to make event-driven applications as easy as RPC-based application. Developers write RPC-based services and Restate adds lightweight durable execution to the handlers (making them suspendable and allowing them to recover partial progress), persistent communication, and request ordering. The result is that code written as simple request/response RPCs executes with the same resilience and efficiency as an async state machine driven by events from a persistent queue, but remains easy to write, reason about, debug, and observe.
Restate natively integrates with Kafka, allowing users to directly process events of Kafka topics with Restate durable async/await programming model. We believe that Restate complements the current landscape of event-processing systems, by radically simplifying transactional event-driven applications that require complex control flow or interact with many external systems."
Learn about the exciting integration work that has been done with YARN, Red Hat OpenShift and Kurbernetes Docker container orchestration. During this presentation we will cover the basics of this exciting YARN integration effort and then launch into a demo. You won’t want to miss seeing web application docker container, Storm, and Hive SQL queries all running in the same HDP cluster!
The History of Data Push and the Lightstreamer Technology
Agenda:
- History of Data Push
- Lightstreamer Technology
- Lightstreamer Success Stories
- MQTT.Cool and JMS Extender
Turning Web Applications into Web Services by Wrapping TechniquesPorfirio Tramontana
In the era of Service Oriented Architectures a relevant research problem consists of turning Web applications into Web Services using systematic migration approaches.
This paper presents the research results that were obtained by adopting a black-box migration approach based on wrapping to migrate functionalities of existing Web applications to Web services. This approach is based on a migration process that relies on black-box reverse engineering techniques for modelling the Web application User Interface. The reverse engineering techniques are supported by a toolkit that allows a semi-automatic and effective generation of the wrapper. The software migration platform and the migration case studies that were performed to validate the proposed approach will also be presented in the paper.
In this presentation we introduce Nubomedia (http://www.nubomedia.eu), the first open source PaaS platform capable of acting as an “infinite media server”. Most state-of-the-art media servers just provide three types of capabilities: transcoding, group communications and recording. Nubomedia is a research effort funded by the European Commission which, in addition to these, provides flexible media processing features including computer vision, augmented reality, media blending, media filtering and much more. In a world where plain communications are becoming a commodity, business models based on “just calls” are not really profitable. For this reason, these advanced media processing mechanisms open new opportunities given that they might provide differentiation and added value to applications in many specific verticals including e-Health, e-Learning, security, entertainment, games, advertising or CRMs just to cite a few.
Overview of Microsoft .Net Remoting technologyPeter R. Egli
Overview of Microsoft .Net Remoting technology for inter-object communication.
.Net remoting is a .Net-based distributed object technology for accessing
.Net objects that reside in a different application domain (different process
on the same machine or different process on another machine).
.Net shares concepts with DCOM (Distributed Component Object Model), but
simplifies the communication with regard to transport ports and programmatic
model.
Microsoft's newer WCF (Windows Communication Foundation) provides a unified communication and programming model thus replacing older technologies like .Net remoting and DCOM in many applications.
Similar to Reverse Engineering Finite State Machines from Rich Internet Applications (20)
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.
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.
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.
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.
Rich Internet Application Testing Using Execution Trace Data Porfirio Tramontana
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.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
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.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
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.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
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.
Accelerate your Kubernetes clusters with Varnish Caching
Reverse Engineering Finite State Machines from Rich Internet Applications
1. Reverse Engineering Finite State
Machines from Rich Internet
Applications
Domenico Amalfitano
Anna Rita Fasolino
Porfirio Tramontana
Dipartimento di Informatica e Sistemistica
University of Naples Federico II, Italy
2. Motivation
In the last years, Rich Internet Applications (RIAs) have
emerged as a new generation of web applications
offering greater usability and interactivity than traditional
ones.
Web pages have been transformed in complex GUIs with
synchronous and asynchronous interactions with the user and
with the resources
Key problems:
to define models that are suitable for RIAs representation
to define Reverse Engineering techniques for the abstraction of
the proposed model
Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008 2
3. RIA pages vs plain HTML pages
Complex interactions between the user and the RIA
in the browser environment are designed and
implemented in Javascript
A simple model comprehending only pages and forms (e.g.
the Conallen model) is not more suitable to describe RIAs
Javascript event handlers can be associated to any
DOM element and are able to modify the DOM
instance itself
XHR objects are also able to manage Http
communications
Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008 3
4. RIA Interactions Conceptual model
• A Client
Interface +Builds Server Page Server Resource
correspond to the 1
1 1
DOM instanced at * 1..*
Transition
a given time in the Client Interface 1..*
+End Transition Timestamp
* *
Web Page Request XHR Request
browser 1
0..1
• The raise of an 1
1
Http Request
event to which an DOM Raised Event
1
0..*
+Timestamp
event handler is *
1
1 Time Event Listener
associated can 0..*
cause a transition 1..* 1 1
to another client DOM Element Event Listener Http Response Event Listener
interface (i.e. a 1..* *
variation of the Event Handler
DOM) User Event Listener
Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008 4
5. Transition Graph
RIA interactions can be modelled as a Transition
Graph, where
each node is associated with a distinct Client Interface
each edge corresponds to the raise of an event
The event handler execution causes the variation between Client
Interfaces.
Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008 5
6. Reverse Engineering Process 1/2
In order to reconstruct the model of a RIA, a three steps process
has been proposed
The Extraction step is obtained by dynamic analysis
A user navigates the RIA while it is monitored.
Probes applied externally to the DOM structure allow the tracing of
the complete cycle of event raising/handling with a non-invasive
approach
For each observed Client Interface the complete set of tags, attributes
and event handlers is stored
End Tracing
Start Tracing Event Waiting Raised Event Event Handling Completion Waiting
entry/DOM Extraction entry/Transition Tracing
exit/End transition Tracing
Event Handling Completed
Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008 6
7. Reverse Engineering Process 2/2
In this step the retrieved information are analyzed in order to abstract the
FSM Model of the RIA
Two open issues:
When a Client Interface should be considered equivalent to a previously visited
one?
What DOM elements and properties should be considered in order to compare
two Client Interfaces?
Two possible criteria to cluster together a pair of Client Interfaces have
been proposed:
Criterion C1 considers equivalent two Client Interfaces if the corresponding DOM
structures include the same set of DOM elements with the same registered event
listeners and handlers
Criterion C2 considers equivalent two Client Interfaces if the criterion C1 is
satisfied and the set of Http requests and time event listeners are equivalent,
too.
A Concept Assignment step, assisted by an expert, must be carried in order
to assess if the applied equivalence criterion has been able to cluster
together Client Interfaces corresponding to actual Interaction States
Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008 7
8. RE-RIA Tool
• The Tool supports the proposed Reverse Engineering Process
• It is realised in Java with JavaXPCOM library in order to embed a Mozilla
instance into the tool
GUI
Extractor
Abstractor
DOM Querying Browser
DOM Clustering
Extractor
Trace Extractor Reverse FSM
Engineering Abstractor
Process
Manager
<<artifact>>
<<artifact>> Statechart
DataBase Diagram
Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008 8
9. An example (1/2)
• Based on FilmDB Ajax application
for data management of a personal
movie archive.
• Five Users Sessions corresponding
to the entering/exiting the personal
movie area use case scenarios were
exercised by a user and traced and
collected by the tool SCHERMATA FILMDB
• A Transition Graph with 60 nodes
and 59 edges was preliminary
obtained
Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008 9
10. Example (2/2)
• The C1 criterion was able to
reduce the TG to 8 nodes and 22
transitions
• A Concept Assignment activity
revealed that some nodes could not
be associated with meaningful
states, but had to be split into
further logical states.
• The C2 criterion produced a TG
with 12 nodes and 23 transitions
that was validated by the Concept
Assignment activity
Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008 10
11. Conclusions and Future Works
This paper presented the initial results of a research
project that aims at defining and validating techniques for
reverse engineering software representation models from
Rich Internet Applications.
The proposing clustering criteria seems to be useful for
the abstraction of a compact behaviour model of the RIA
interfaces
Further criteria that are able to reduce the Concept Assignment
step effort will be proposed in future
The suitability of the obtained model to specific tasks,
such as GUI testing, quality evaluation, migration to
services will be explored in future works
Porfirio Tramontana – WCRE 2008 – Antwerp – 10/15/2008 11