Tutorial on
Performance Test the Mobile Applications
Instructor
|
Ehsun Saeed
Independent Researcher
United Kingdom
|
|
|
Abstract
With the growing demand of the mobile application there is increasing need to performance test the native mobile applications. The real challenge to performance test the mobile app is to setup the test environment. Since the performance testing tool can’t be deployed on the mobile phone so setting up the performance tool is crucial for successfully conduction the performance testing of the mobile app. In my presentation I would be showing how to setup the environment by installing Jmeter on the laptop. Jmeter security certificate is installed on the iPhone.The laptop is made proxy server for the mobile phone by adding IP address of the laptop as a proxy on the mobile phone. User actions are performed on the mobile app which are recorded on the Jmeter. Access token captured in Postman is used as a bearer token in Jmeter.I would also be discussing the challenges I faced while testing the mobile apps that uses behind Oauth 2.0 secured platform. In the end I will be discussing the key lessons and the takeaway for the audience.
Keywords
Performance testing
Mobile Application
Jmeter
Mobile phone
Aims and Learning Objectives
The audience will get to know how they can perform performance testing on mobile devices
Target Audience
Students, practitioners from industry, researchers
Prerequisite Knowledge of Audience
Performance/load testing
Performance testing tool
Mobile phone
Mobile apps
Detailed Outline
With the growing demand of the mobile application there is increasing need to performance test the native mobile applications. The real challenge to performance test the mobile app is to setup the test environment. Since the performance testing tool can’t be deployed on the mobile phone so setting up the performance tool is crucial for successfully conduction the performance testing of the mobile app. In my presentation I would be showing how to setup the environment by installing Jmeter on the laptop. Jmeter security certificate is installed on the iPhone.The laptop is made proxy server for the mobile phone by adding IP address of the laptop as a proxy on the mobile phone. User actions are performed on the mobile app which are recorded on the Jmeter. Access token captured in Postman is used as a bearer token in Jmeter.I would also be discussing the challenges I faced while testing the mobile apps that uses behind Oauth 2.0 secured platform. In the end I will be discussing the key lessons and the takeaway for the audience.
Tutorial on
The ∆QSD Paradigm: Designing Systems with Predictable Performance at High Load
Instructor
|
Seyed Hossein Haeri
University of Bergen
Belgium
|
|
Brief Bio
Seyed Hossein Haeri (hossein.haeri@gmail.com) is a former associate professor at the BLDL Institute at the University of Bergen, Norway. Hossein currently runs his own company, PLWorkz R&D, where he applies Programming Languages solutions to real-world industrial problems. PLWorkz R&D's clients include IOG (Hong Kong and later Singapore) and Entropy Software Foundation (US). As a theoretical computer scientist, Hossein has been developing the mathematical foundation of ?QSD. Hossein's research is on the intersection between Programming Languages and Software Engineering. Over the past decade, his research has enjoyed a flavour of Distributed Systems on top. In the recent past, he has delivered a dozen of ?QSD talks at different venues, including QAVS 2022, ICE 2023, NWPT 2023, ICPE 2024, and ICFNDS 2024.
|
Abstract
The ?Q Systems Development paradigm (?QSD) is a novel industrially-derived systems development methodology for developing complex real-world distributed systems that directly employs statistical performance metrics from the outset of the system design process and throughout the entire software production life cycle. It uses a stochastic approach to specify system behaviour, using cumulative distribution functions to model both delay and failure together. Experience shows that this is a ‘sweet spot’ that gives good results with little computation requirements. Predictions are accurate when the system model correctly captures both independent and dependent parts. This paradigm has been developed by the Welsh company PNSol over a period of 20+ years, in collaboration with IOG (formerly IOHK), BT, Vodafone, Boeing, Space and Defence, as well as other major companies who focus on the development of reliable high-quality, high integrity, distributed software systems, with strong real-time requirements. In particular it:
* is outcome-centric and especially concerns itself with the timeliness (and probability of success) of an activity of interest.
* works for validating initial goals and through to in-life service assurance.
* permits top-down and bottom-up (or a mixture of) design approaches.
* can formulate both system-centric and user-centric “experience” questions.
?QSD primarily targets systems with many independent users where real-time performance is important. This includes systems with large flows of mostly independent data items and systems that are subject to frequent overload situations. Here are a few currently-running real-world use cases:
* service assurance and strategic planning of national broadband deployments.
* validating potential effectiveness of safety-of-life distributed systems in adversarial environments.
* design, development, and deployment of the largest proof-of-stake based ledger technology where assuring timeliness is a key security property.
In this tutorial, we will present the ?QSD paradigm, highlighting results from a number of large-scale industrial use cases, and providing hands-on introduction to how to use the process in real-world settings. The tutorial is targeted at researchers, software developers, and managers.
Keywords
Performance
∆QSD
Quality Attenuation
Failure
Delay
Resource Analysis
Algebra
Observational Equivalence
Systems Development
Aims and Learning Objectives
* Performance Modelling of Systems w.r.t. their Outcomes
* Timeliness Analysis -- Both Delay and Failure Together
* Categories of Resources, their Analysis and Interplay w.r.t. Timing
* ΔQSD Tool Support
* Large-Scale Industrial ΔQSD Best-Practices
Target Audience
The intended audience is system development engineers, typically those who have experience developing large distributed systems with high loads. The tutorial targets both intermediate and advanced participants. It is recommended that the participants have some mathematical maturity, at the level of a second-year university engineering degree, since the tutorial introduces formal concepts freely and uses them in the examples.
Prerequisite Knowledge of Audience
Required prerequisites are some system-development knowledge in terms of components and workflow and some mathematical knowledge including basic real analysis (integrals and derivatives) and probability theory (cumulative distribution functions and convolution). The ∆QSD paradigm uses these concepts freely. The tutorial does give brief introductions to the concepts from probability theory but it is recommended that participants have seen them before. No programming knowledge is necessary: the tutorial will present system design from the viewpoint of the interconnection of components, the flow of information between components, and the resulting system behaviour.
For the practice sessions, the participant will require ssh installed on their machines. (If there are a few that don’t have this, we will help them do it during the first lab session). Each participant will be given a username and password to log in to the server.
Detailed Outline
* Lecture 1 (Case Studies) gives several industrial case studies that have successfully used ∆QSD for design and diagnosis. These case studies are taken from PNSol’s practical experience with actual production systems. We start the lecture with a brief introduction to the relevant concepts needed to understand the case studies. We give a small cells case study that shows how to diagnose a large mobile telephony system using low-powered cellular radio access nodes. We give a Cardano Shelley case study that shows how ∆QSD was used in the design of a part of the Cardano blockchain, namely block diffusion.
* Lecture 2 (Compositional Systems) is the heart of the tutorial. It introduces the main concepts of ∆QSD, namely quality attenuation (cumulative distribution function of delay, denoted by ∆Q), outcome diagrams (directed graph giving system behaviours and their causal dependencies), and their mathematical foundation. It shows how to use these
concepts for design and diagnosis. It develops a set of example systems to illustrate important system patterns: client/server, cache memory, time-out, parallel work, load balancing. It presents the quality attenuations of common components including networks and software components, using concepts from queueing theory when necessary. It shows how to explore the design space with ∆QSD. It shows how to compare system designs by presenting several memory system designs and computing the performance and failure probability for trade-offs between time-out and retry.
* Lecture 3 (Systems with Dependencies) extends Lecture 2 by adding dependencies between components. Most real systems consist of a majority of independent parts complemented by a small number of dependencies. These dependencies are typically shared resources, but they can also be sequences of dependent actions. For example, when multiple message streams share a single database, or when multiple components share a single computing node, or when multiple mobile carriers share one cell tower. We show how to extend the techniques of Lecture 2 to model these systems and compute their performance.
* Lecture 4 (Multilevel Systems) explains how to add hierarchical failure handling at multiple timescales. The approach shown in the previous lecture is satisfactory for systems with limited load perturbations, but it is insufficient for safety-critical systems that must continue to work under all circumstances. Common approaches such as overdimensioning or adding defensive mechanisms do not solve the problem. The right solution is to build the system as a hierarchy of observers, where each observer manages the hazards that are not taken care of by observers at a lower level. These observers will act at different timescales, and this must be taken into account in the design.