The document presents a technique for generating robust locators for end-to-end testing of template-based web applications. It involves automatically injecting unique identifiers or "hooks" into the HTML tags and templates during development. These hooks are then used to generate XPath locators that are resistant to changes in tag attributes, text, structure, or position. An experiment found that tests using the hook-based locators did not fail due to fragility like default locators did, demonstrating increased robustness. The approach can be integrated into continuous integration pipelines for regression testing. Future work includes expanding the prototype tools and further validation of the locator robustness.
Examples of overcoming objections and misconceptions about Google Tag Manager. Including overview of the settings for:
1. Security
2. Deployment Costs
3. Marketing Agility
4. Customer understanding
5. Advertiser Spend
Thanks
Phil.
Enhanced governance and tag depoloyment with GTM Templates - Yasen Lilov | Me...Yasen Lilov
Overview of GTM's "Templates" feature with practical examples aiming to provide the tools for an organization to step up their tag management & deployment practices.
This Article explores the Test Automation challenges associated with the GridGain Control Centre (https://www.gridgain.com/).
The test framework is based on BDD/Selenide/Java/IntelliJ.
The exploratory tests look at five key User Journeys in the application.
1. Node / V8 architecture
2. Anatomy of event loop
3. Node as a first class citizen for Eclipse
4. Server side debugging through browser
5. In-built Node / V8 tracing
Examples of overcoming objections and misconceptions about Google Tag Manager. Including overview of the settings for:
1. Security
2. Deployment Costs
3. Marketing Agility
4. Customer understanding
5. Advertiser Spend
Thanks
Phil.
Enhanced governance and tag depoloyment with GTM Templates - Yasen Lilov | Me...Yasen Lilov
Overview of GTM's "Templates" feature with practical examples aiming to provide the tools for an organization to step up their tag management & deployment practices.
This Article explores the Test Automation challenges associated with the GridGain Control Centre (https://www.gridgain.com/).
The test framework is based on BDD/Selenide/Java/IntelliJ.
The exploratory tests look at five key User Journeys in the application.
1. Node / V8 architecture
2. Anatomy of event loop
3. Node as a first class citizen for Eclipse
4. Server side debugging through browser
5. In-built Node / V8 tracing
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).
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...Gáspár Nagy
BDD is a method that focuses on defining the requirements based on the expected behavior; DDD is a method that uses a ubiquitous language all across the solution; UX helps design user interactions based on user behavior… and Selenium WebDriver (or similar) is a tool that is mostly used to ignore all these and automate the app using clicks on HTML elements…
In this session you will explore options how to improve testing efficiency by looking at UI automation from a different angle by analyzing and understanding the UI concepts used in the application, matching them to domain model elements and build an automation solution that focuses on these.
Webinar: ArangoDB 3.8 Preview - Analytics at Scale ArangoDB Database
The ArangoDB community and team are proud to preview the next version of ArangoDB, an open-source, highly scalable graph database with multi-model capabilities. Join our CTO, Jörg Schad, Ph.D. and Developer Relation Engineer Chris Woodward in this webinar to learn more about ArangoDB 3.8 and the roadmap for upcoming releases.
To anyone interested in accelerating their Test Automation work, here's an article that could well help to point the way ahead!
It also covers the production of multi-lingual validation data.
Engaging Tech Students Past Traditional Hands OnFiras Obeid
Techniques I used in my classes to engage working professionals with real life hands on applications to showcase what they learned in direct deployments and create interactive lectures for them to push further and explore out of the box trends.
Scaling Experimentation & Data Capture at GrabRoman
This is the slides from the presentation I gave at the Data Science Meetup Hamburg. This talks about how we build and scaled our online experimentation platform and associated event capture system.
The Browser Object Model (BOM) in JavaScript includes the properties and methods for JavaScript to interact with the web browser.
BOM provides you with window object, for example, to show the width and height of the window. It also includes the window.screen object to show the width and height of the screen.
Optimizing Spark-based data pipelines - are you up for it?Itai Yaffe
Etti Gur (Senior Big Data developer) and Itai Yaffe (Tech Lead, Big Data group) @ Nielsen:
At Nielsen Marketing Cloud, we provide our customers (marketers and publishers) real-time analytics tools to measure their ongoing campaigns' efficiency.
To achieve that, we need to ingest billions of events per day into our big data stores and we need to do it in a scalable yet cost-efficient manner.
In this talk, we will discuss how we significantly optimized our Spark-based in-flight analytics daily pipeline, reducing its total execution time from over 20 hours down to 2 hours, resulting in a huge cost reduction.
Topics include:
* Ways to identify optimization opportunities
* Optimizing Spark resource allocation
* Parallelizing Spark output phase with dynamic partition inserts
* Running multiple Spark "jobs" in parallel within a single Spark application
Large scale data capture and experimentation platform at GrabRoman
In this video I'm presenting how we built a system to experiment and rollout features across hundreds of microservices at Grab.
The talk also describes a high-performance event tracking system which captures billions of events per day from mobile apps and backend services and makes them easily queryable through SQL with 1 minute end-to-end latency.
We'll go through feature toggles, experimentation platform and a custom, special-purpose database we built on top of Presto to be able to SQL-query everything.
Related blog posts:
- https://engineering.grab.com/building-grab-s-experimentation-platform
- https://engineering.grab.com/feature-toggles-ab-testing
- https://engineering.grab.com/big-data-real-time-presto-talariadb
- https://engineering.grab.com/experimentation-platform-data-pipeline
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
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.
More Related Content
Similar to Towards the Generation of Robust E2E Test Cases in Template-based Web Applications
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).
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...Gáspár Nagy
BDD is a method that focuses on defining the requirements based on the expected behavior; DDD is a method that uses a ubiquitous language all across the solution; UX helps design user interactions based on user behavior… and Selenium WebDriver (or similar) is a tool that is mostly used to ignore all these and automate the app using clicks on HTML elements…
In this session you will explore options how to improve testing efficiency by looking at UI automation from a different angle by analyzing and understanding the UI concepts used in the application, matching them to domain model elements and build an automation solution that focuses on these.
Webinar: ArangoDB 3.8 Preview - Analytics at Scale ArangoDB Database
The ArangoDB community and team are proud to preview the next version of ArangoDB, an open-source, highly scalable graph database with multi-model capabilities. Join our CTO, Jörg Schad, Ph.D. and Developer Relation Engineer Chris Woodward in this webinar to learn more about ArangoDB 3.8 and the roadmap for upcoming releases.
To anyone interested in accelerating their Test Automation work, here's an article that could well help to point the way ahead!
It also covers the production of multi-lingual validation data.
Engaging Tech Students Past Traditional Hands OnFiras Obeid
Techniques I used in my classes to engage working professionals with real life hands on applications to showcase what they learned in direct deployments and create interactive lectures for them to push further and explore out of the box trends.
Scaling Experimentation & Data Capture at GrabRoman
This is the slides from the presentation I gave at the Data Science Meetup Hamburg. This talks about how we build and scaled our online experimentation platform and associated event capture system.
The Browser Object Model (BOM) in JavaScript includes the properties and methods for JavaScript to interact with the web browser.
BOM provides you with window object, for example, to show the width and height of the window. It also includes the window.screen object to show the width and height of the screen.
Optimizing Spark-based data pipelines - are you up for it?Itai Yaffe
Etti Gur (Senior Big Data developer) and Itai Yaffe (Tech Lead, Big Data group) @ Nielsen:
At Nielsen Marketing Cloud, we provide our customers (marketers and publishers) real-time analytics tools to measure their ongoing campaigns' efficiency.
To achieve that, we need to ingest billions of events per day into our big data stores and we need to do it in a scalable yet cost-efficient manner.
In this talk, we will discuss how we significantly optimized our Spark-based in-flight analytics daily pipeline, reducing its total execution time from over 20 hours down to 2 hours, resulting in a huge cost reduction.
Topics include:
* Ways to identify optimization opportunities
* Optimizing Spark resource allocation
* Parallelizing Spark output phase with dynamic partition inserts
* Running multiple Spark "jobs" in parallel within a single Spark application
Large scale data capture and experimentation platform at GrabRoman
In this video I'm presenting how we built a system to experiment and rollout features across hundreds of microservices at Grab.
The talk also describes a high-performance event tracking system which captures billions of events per day from mobile apps and backend services and makes them easily queryable through SQL with 1 minute end-to-end latency.
We'll go through feature toggles, experimentation platform and a custom, special-purpose database we built on top of Presto to be able to SQL-query everything.
Related blog posts:
- https://engineering.grab.com/building-grab-s-experimentation-platform
- https://engineering.grab.com/feature-toggles-ab-testing
- https://engineering.grab.com/big-data-real-time-presto-talariadb
- https://engineering.grab.com/experimentation-platform-data-pipeline
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
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.
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.
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.
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.
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operate—or are planning to operate—broader deployments at their institution.
Navigating the Metaverse: A Journey into Virtual Evolution"Donna Lenk
Join us for an exploration of the Metaverse's evolution, where innovation meets imagination. Discover new dimensions of virtual events, engage with thought-provoking discussions, and witness the transformative power of digital realms."
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Globus
The U.S. Geological Survey (USGS) has made substantial investments in meeting evolving scientific, technical, and policy driven demands on storing, managing, and delivering data. As these demands continue to grow in complexity and scale, the USGS must continue to explore innovative solutions to improve its management, curation, sharing, delivering, and preservation approaches for large-scale research data. Supporting these needs, the USGS has partnered with the University of Chicago-Globus to research and develop advanced repository components and workflows leveraging its current investment in Globus. The primary outcome of this partnership includes the development of a prototype enterprise repository, driven by USGS Data Release requirements, through exploration and implementation of the entire suite of the Globus platform offerings, including Globus Flow, Globus Auth, Globus Transfer, and Globus Search. This presentation will provide insights into this research partnership, introduce the unique requirements and challenges being addressed and provide relevant project progress.
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
A Comprehensive Look at Generative AI in Retail App Testing.pdfkalichargn70th171
Traditional software testing methods are being challenged in retail, where customer expectations and technological advancements continually shape the landscape. Enter generative AI—a transformative subset of artificial intelligence technologies poised to revolutionize software testing.
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
top nidhi software solution freedownloadvrstrong314
This presentation emphasizes the importance of data security and legal compliance for Nidhi companies in India. It highlights how online Nidhi software solutions, like Vector Nidhi Software, offer advanced features tailored to these needs. Key aspects include encryption, access controls, and audit trails to ensure data security. The software complies with regulatory guidelines from the MCA and RBI and adheres to Nidhi Rules, 2014. With customizable, user-friendly interfaces and real-time features, these Nidhi software solutions enhance efficiency, support growth, and provide exceptional member services. The presentation concludes with contact information for further inquiries.
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
Even though at surface level ‘java.lang.OutOfMemoryError’ appears as one single error; underlyingly there are 9 types of OutOfMemoryError. Each type of OutOfMemoryError has different causes, diagnosis approaches and solutions. This session equips you with the knowledge, tools, and techniques needed to troubleshoot and conquer OutOfMemoryError in all its forms, ensuring smoother, more efficient Java applications.
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
Unlocking Business Potential: Tailored Technology Solutions by Prosigns
Discover how Prosigns, a leading technology solutions provider, partners with businesses to drive innovation and success. Our presentation showcases our comprehensive range of services, including custom software development, web and mobile app development, AI & ML solutions, blockchain integration, DevOps services, and Microsoft Dynamics 365 support.
Custom Software Development: Prosigns specializes in creating bespoke software solutions that cater to your unique business needs. Our team of experts works closely with you to understand your requirements and deliver tailor-made software that enhances efficiency and drives growth.
Web and Mobile App Development: From responsive websites to intuitive mobile applications, Prosigns develops cutting-edge solutions that engage users and deliver seamless experiences across devices.
AI & ML Solutions: Harnessing the power of Artificial Intelligence and Machine Learning, Prosigns provides smart solutions that automate processes, provide valuable insights, and drive informed decision-making.
Blockchain Integration: Prosigns offers comprehensive blockchain solutions, including development, integration, and consulting services, enabling businesses to leverage blockchain technology for enhanced security, transparency, and efficiency.
DevOps Services: Prosigns' DevOps services streamline development and operations processes, ensuring faster and more reliable software delivery through automation and continuous integration.
Microsoft Dynamics 365 Support: Prosigns provides comprehensive support and maintenance services for Microsoft Dynamics 365, ensuring your system is always up-to-date, secure, and running smoothly.
Learn how our collaborative approach and dedication to excellence help businesses achieve their goals and stay ahead in today's digital landscape. From concept to deployment, Prosigns is your trusted partner for transforming ideas into reality and unlocking the full potential of your business.
Join us on a journey of innovation and growth. Let's partner for success with Prosigns.
Developing Distributed High-performance Computing Capabilities of an Open Sci...Globus
COVID-19 had an unprecedented impact on scientific collaboration. The pandemic and its broad response from the scientific community has forged new relationships among public health practitioners, mathematical modelers, and scientific computing specialists, while revealing critical gaps in exploiting advanced computing systems to support urgent decision making. Informed by our team’s work in applying high-performance computing in support of public health decision makers during the COVID-19 pandemic, we present how Globus technologies are enabling the development of an open science platform for robust epidemic analysis, with the goal of collaborative, secure, distributed, on-demand, and fast time-to-solution analyses to support public health.
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Towards the Generation of Robust E2E Test Cases in Template-based Web Applications
1. Towards the Generation of Robust E2E
Test Cases
in Template-based Web Applications
Porfirio Tramontana, Anna Rita Fasolino
University of Naples “Federico II”
48th Euromicro Conference Series on Software Engineering
and Advanced Applications (SEAA)
Maspalomas, Gran Canaria, Spain, September 1st, 2022.
SEAA 2022, Maspalomas, September 1st, 2022
2. Motivations
◼ Capture and Replay Testing of Web
applications
➢ Effective and efficient solution for E2E testing
➢ Support in test scripting generation
➢ Automation of test case execution
➢ Requires limited programming and testing
skills
Test case fragility
SEAA 2022, Maspalomas, Gran Canaria, September 1st, 2022
3. Test case fragility: examples
◼ We want to register the click on the Mark as Done button
◼ Possible locator suggested by Selenium:
◼ xpath = .btn-success
Fragile!
◼ May broke for style sheet changing
◼ May be ambiguous for buttons having the same style
SEAA 2022, Maspalomas, Gran Canaria, September 1st, 2022
4. Test case fragility: examples
◼ We want to register the click on the Mark as Done button
◼ Possible locator suggested by Selenium:
◼ xpath = (//button[@type='button'])[4]
Fragile!
◼ May broke with button position changes
SEAA 2022, Maspalomas, Gran Canaria, September 1st, 2022
5. Test case fragility: examples
◼ We want to register the click on the Mark as Done button
◼ Possible locator suggested by Selenium:
◼ xpath = //button[3]
Fragile!
◼ May broke with button position changes
◼ May broke for table redesign
SEAA 2022, Maspalomas, Gran Canaria, September 1st, 2022
6. Test case fragility: examples
◼ We want to register the click on the Mark as Done button
◼ Possible locator suggested by Selenium:
◼ xpath = //button[contains(.,'✔ Mark as Done')]
Fragile!
◼ May broke for localization/changing in text
◼ May broke for button type changing
◼ May broke for character code changing
SEAA 2022, Maspalomas, Gran Canaria, September 1st, 2022
7. Test case fragility: examples
◼ We want to register the click on the Mark as Done button
◼ Possible locator suggested by Katalon Recorder:
◼ xpath=(.//*[normalize-space(text()) and normalize-space(.)='✘
Remove'])[1]/following::button[1]
Fragile!
◼ May broke for localization/changing in text
◼ May broke for button type changing
◼ May broke for character code changing
SEAA 2022, Maspalomas, Gran Canaria, September 1st, 2022
8. Possible solutions in literature 1/3
◼ Generation of robust locators
◼ Heuristic rules are used to provide a ranking
between a set of possible locators, based on
different possible features (text, relative
position of tags, …)
◼ M. Leotta et al., 2014. Reducing web test cases
◼ M. Leotta et al., 2016. Robula+: An algorithm for generating robust XPath locators for
web testing.
Problem: Heuristic locators are fragile with
respect to some specific maintenance
interventions
SEAA 2022, Maspalomas, Gran Canaria, September 1st, 2022
9. Possible solutions in literature 2/3
◼ Automatic repairing of broken locators
◼ By maintaining different valid locators and
dynamically repairing broken test cases by using
alternative locators
◼ M. Leotta et al. 2015. Using Multi-Locators to Increase the Robustness of Web Test Cases
◼ I. Aldalur et al., 2020. ABLA: An Algorithm for Repairing Structure-Based Locators Through
Attribute Annotations.
Problem:
◼ These solutions need a support to maintain
alternative locators / substitute them to broken
ones
SEAA 2022, Maspalomas, Gran Canaria, September 1st, 2022
10. Possible solutions in literature 3/3
◼ Preventive improvement of Web
application testability
◼ The developer may add identifiers while
implementing web pages in order to assure
their reliable identification
◼ Bajaj et al. 2015. Synthesizing Web Element Locators
◼ Bajaj et al. 2016. LED: Tool for synthesizing web element locators
Problems:
◼ Not applicable on existing web sites
◼ Duplication of identifiers on dynamically
generated client pages
SEAA 2022, Maspalomas, Gran Canaria, September 1st, 2022
11. Proposed Solution : context
◼ MVVM Web applications
◼ Angular / Smarty / Freemarker / Twig
◼ Separation of UI design and logic with HTML
templates
◼ Template source code available at development time
◼ Dynamic generation of tags on the client side
◼ E.g. with ng- attributes (Angular)
◼ Use of C&R tools supporting design of new
locator generators
◼ E.g. Katalon Recorder
SEAA 2022, Maspalomas, Gran Canaria, September 1st, 2022
12. Our approach
1. Automatic injection of hooks in the
source code of web templates and html
pages
2. Automatic generation of locators based
on injected hooks
◼ Integrated with C&R tools (e.g. Katalon
Recorder)
3. Continuous integration life cycle
◼ Supported by Github
SEAA 2022, Maspalomas, Gran Canaria, September 1st, 2022
13. <ui - view >
...
<table >
...
<tbody >
<tr ng - repeat =" task _in_ ctrl . tasks ">
...
<td >
<div class ="form - group ">
<button type =" button " ng -if="!! task . done " ng - click =" task . done _=_ false ">
&# x270E ; Mark as To Do </ button >
<button type =" button " ng -if="! task . done " ng - click =" task . done _=_true ">&#
x2714 ; Mark as Done </ button >
<button type =" button " ng -if="! task . done " ui - sref =". edit ({ taskIndex :_
$index })">&# x270E ; Edit </ button >
<button type =" button ">&# x2718 ; Remove </ button >
</ div >
</td > </tr > </ tbody > </ table >
</ui - view >
Example Source code : Angular
<html >
...
<body ng - app =" myApp ">
<div class =" container ">
<ui - view ></ui - view >
</ div >
...
</ body >
</ html >
index.html
template.html
Item to be located
SEAA 2022, Maspalomas, Gran Canaria, September 1st, 2022
14. Example 1/3
◼ A robust locator must identify the involved tag
1. We inject an identifier (hook) in the tag code
◼ <button type =" button " ng -if="! task . done " ng - click =" task . done _=_ true " x-
test -hook -81 >&# x2714 ; Mark as Done </ button >
2. Since the tag is defined in the context of a template,
we have to inject another identifier on the template
definition
◼ <ui - view x-test -tpl -62 >
3. A template instance may be inserted multiple times
in a page: we have to inject another identifier into
the tag including the template
◼ <ui - view x-test -hook -9 ></ui - view >
SEAA 2022, Maspalomas, Gran Canaria, September 1st, 2022
15. Example 2/3
4. The tag to be located is included in a table row. Angular may
generate different rows. Our item may be identified by means
of the tr tag and the index of the selected item. We have to
inject an identifier on the table row tag
◼ <tr ng - repeat =" task _in_ ctrl . tasks " x-test -hook -73 >
SEAA 2022, Maspalomas, Gran Canaria, September 1st, 2022
16. Example 3/3
◼ A locator that include all these information is the
following:
◼ //*[ @x-test-tpl-1]//*[ @x-test-hook-9]
//*[ @x-test-tpl-62]//*[ @x-test-hook-73][2]
//*[ @x-test-hook-81]
◼ x-test-tpl-1 identifies the body of the index.html page
◼ x-test-hook-9 identifies the tag including the template
◼ x-test-tpl-62 identifies the definition of the template (that
includes the table)
◼ x-test-hook-73[2] identifies the second row of the table including
the button
◼ x-test-hook-81 identifies the button into the table row
SEAA 2022, Maspalomas, Gran Canaria, September 1st, 2022
18. Hook Injection Algorithm
◼ For each web page or template
◼ For each template definition
◼ If the template has not yet a hook
◼ Insert x-test-tpl-(number) hook attribute
◼ For each html tag
◼ If the tag has not a yet hook
◼ Insert x-test-hook-(number) hook attribute
◼ The algorithm automatically insert hooks with increasing (number)
in order to avoid the presence of items with the same hook
◼ The algorithm is idempotent and can be run incrementally
SEAA 2022, Maspalomas, Gran Canaria, September 1st, 2022
20. Hook-based Locator Generation
◼ The xpath locator will include hooks from:
1. Body of the html page
2. Tags including templates
3. Template definition tags
4. Tag of the element to be located
5. In addition, if any of these tags has siblings, the
index of the tag has to be included together with the
hook of the container tag
SEAA 2022, Maspalomas, Gran Canaria, September 1st, 2022
21. Testing Process Integration
◼ The proposed solution can be integrated
in a E2E testing process supporting
regression testing
◼ Hook injection can be automatically executed
after each project release
◼ Test case registration with C&R tools may
generate hook-based locators
SEAA 2022, Maspalomas, Gran Canaria, September 1st, 2022
23. Technical specs
◼ Hook injector has been implemented in node.js and
supports template languages having grammars defined
with TextMate (Angular, Smarty, Freemarker, Twig)
◼ Hook-based locator generation is implemented as a
script included in Katalon Recorder
◼ Katalon Recorder is able to generate executable test
cases
◼ For each test case, a headless executable version can be
automatically generated
◼ Test case execution and reporting is executed in the
context of Github by exploting Github Actions
SEAA 2022, Maspalomas, Gran Canaria, September 1st, 2022
24. Validation Experiment
◼ RQ1 : How do the breakages in test cases
exploiting Hook-Based locators compare
with breakages in Non-Hook-Based test
cases?
◼ RQ2 : How does the use of Hook-based
locators influence the fragility of test cases
with respect to the use of Non- Hook-
based locators?
SEAA 2022, Maspalomas, Gran Canaria, September 1st, 2022
25. Experimental setup
◼ Three teams of students of Advanced
Software Engineering (Laurea Degree in
Computer Engineering)
◼ They realized an Angular Web application
each, by following the proposed testing
process integration and by considering
two possible locators:
◼ Default locators provided by Katalon
◼ Hook-based locators
SEAA 2022, Maspalomas, Gran Canaria, September 1st, 2022
26. Experiment execution
◼ After each application release, regression testing
is executed.
◼ Some test cases broken due to locators (TKO):
◼ By obsolescence
◼ when the test scenario has been eliminated
◼ E.g. the functionality has been removed and the command
button has been deleted
◼ By fragility (TKOFRA)
◼ When modifications (in page layouts) cause the brekage of a
test case that is still needed
SEAA 2022, Maspalomas, Gran Canaria, September 1st, 2022
28. Summary results
◼ On a total set of 214 regression test cases
◼ 16 test cases fail by obsolescence
◼ 30 test cases fail by fragility of the Default
Katalon Recorder locators
◼ No test cases fail by fragility of the Hook-
based Locators
SEAA 2022, Maspalomas, Gran Canaria, September 1st, 2022
29. Answers
◼ RQ1: The adoption of Hook-based locators,
instead of Default Katalon ones, significantly
reduces the percentage of broken tests in all
the considered applications, with a reduction
up to 82%.
◼ RQ2: The adoption of Hook-based locators,
instead of Default Katalon ones, drastically
reduces the fragility of test cases in all the
applications, with a reduction of 100%.
SEAA 2022, Maspalomas, Gran Canaria, September 1st, 2022
30. Typologies of locator breakages
◼ Attributes disappearing
◼ Text Modifications
◼ Tag type changes
◼ Index value changes
◼ except for cases involving siblings tags
SEAA 2022, Maspalomas, Gran Canaria, September 1st, 2022
31. Conclusions
◼ We have proposed a novel technique
supporting the generation of robust
locators for E2E testing of template based
Web applications
◼ It can be implemented in continuous
integration lifecycles
SEAA 2022, Maspalomas, Gran Canaria, September 1st, 2022
32. Future Works
◼ The implemented software is open source
◼ The direct link is into the paper
◼ https://sites.google.com/view/porfiriotramontana/home-page
◼ It is a prototype: we are currently experimenting its
integration in a Github supported lifecycle
◼ The validation experiment provided encouraging
results about the robustness of the generated
locators
◼ Collaborations are welcome for future
experiments and for the improvement of the
Github Actions support
SEAA 2022, Maspalomas, Gran Canaria, September 1st, 2022
33. Thank you for your attention!
SEAA 2022, Maspalomas, Gran Canaria, September 1st, 2022