Performance Engineering Our services and offers Our Performance Testing Expertise Tech stack we cover at Nagarro

Big Data Enterprise Performance testing the real- time and batch based big data Performance testing of applications for the robustness customized enterprise solutions and performance in three major like SAP, Oracle Cloud, IBM areas – volume, velocity and BPM, Salesforce etc. variety. Distributed Architecture Centric

Performance testing for the Performance testing on highly available distributed diversified architecture like environments and monolithic, microservices, containerized applications serverless, CaaS, IaaS, PaaS, SaaS. based on Docker and Kubernetes. Chatbot & IVR* Mobile app Performance testing of Performance testing for mobile automated chatbots based on applications includes backend AI/ ML and auto respondent performance , network bandwidth IVR systems for performance. and device specific nonfunctional usability metrices. Our Performance Testing Experience in Niche Area Innovative PT solutions for complex technical problems across business domains

Developed protocol agnostic framework Performance testing of ecommerce application Developed a customized performance testing solution for a peer-to-peer video streaming application based on WebRTC. Conducted performance testing of an ecommerce There was no open-source tool available and paid solutions application which helped the client to increase user were covering only limited scenarios. footfall and enhanced end user experience.

Performance testing of AI/ML based Performance testing of Big Data application application

Developed automated performance testing solution for an image Developed an optimized PT solution for a traffic recognization AI/ML application. management application that uses historical data and real- time traffic reports to control traffic.

Performance testing of FaaS* Performance testing of CaaS* application (Serverless) application

Performed performance testing of a payment-based Continuous performance testing for a Docker based multi-node application developed on serverless architecture. application implemented in REST technology. Possible Challenges in Application Performance Lifecycle It is imperative to understand the factors affecting performance before embarking on the task of handling them. The factors affecting may be divided into three performance large categories: management oriented, testing and technical.

ProjectSqueezed Planning timeline for delivery. Low priority to ToolPerformance fitment for performance Testing testing. Memory leaks , Array boundTechnical errors, inefficient performance during project planning. Gathering realistic nonfunctional requirements. buffering. Squeezed timeline for delivery. Low priority to Tool fitment for performance testing. Memory leaks , Array bound errors, performance during project planning. Gathering realistic nonfunctional requirements. inefficient buffering. More affinity towards functional testing than Too many process cycles, large number of Unmanaged technical debts. performance testing. HTTP transactions

Unmanaged technical debts. More affinity towards functional testing than Too many process cycles, large number of performance testing. HTTP transactions. Missing standard guidelines for code Large no of file transactions between memory and Limited time and budget for performance testing. development. disk. Inefficient session state management. Missing standard guidelines for code Limited time and budget for performance Large no of file transactions between memory and development. testing. disk. Inefficient session state management. Tightly coupled system design with Thread contention due to maximum concurrent Shift left or shift right dilemma. minimal focus on reusability. users. Poor architecture sizing of peak load.

Tightly coupled system design with Shift left or shift right dilemma. Thread contention due to maximum concurrent minimal focus on reusability. users. Poor architecture sizing of peak load. Incompetence to handle complexities of emerging Inefficient SQL statement. Lack of proper Unscalable design architecture. technologies. indexing on the database tables. Incompetence to handle complexities of Unscalable design architecture. Inefficient SQL statement. Lack of proper emerging technologies. indexing on the database tables. Failed to model real time user load. Ambiguous performance requirements. Inappropriate server configurations. Non-prudential approach to analyze results and logs. Failed to model real time user load. Ambiguous performance requirements. Inappropriate server configurations. Non-prudential approach to analyze results and logs. 3SR Approach for performance testing

Ensuring seamless user experience Requirement Engineering Brainstorming sessions with key stakeholders to refine the nonfunctional requirements. 01 Using business domain expertise, creation of realistic workload models for performance test runs. Iteration Speed Stability Reliability

Rigorous Planning Iteration Best fit performance test approach for Incremental Iterative 3SR Approach 02 tool evaluation, test environment detailing, KPI definition, risks assessment and dependency identification. Iteration

Iteration

Robust & Realistic User Journeys Script development representing real-time 03 user journey. Reusable test data, mirroring real-time user transactions.

Insightful Monitoring & Analytics Dynamic Analysis & Optimization 3SR Validation Performance engineering and profiling Top to bottom modular approach for getting Validation based on proven test processes, activities using heap dump analysis, CPU insights on performance bottlenecks using 04 real-time load test monitoring, meaningful & 05 06 analysis, DB tuning, thread dump analysis, application performance management tools. insightful reporting, incremental and iterative vertical scaling, etc. setup with CI/CD. Performance Testing @ Nagarro using 3SR approach

Requirement Engineering Rigorous Planning Robust & Realistic User Journeys 3SR Validation Brainstorming sessions with key stakeholders Best-fit performance test approach for Script development representing real-time Validation based on proven test processes, to refine the nonfunctional requirements. Using tool evaluation, test environment detailing, user journey. Reusable test data, mirroring real-time load test monitoring, meaningful business domain expertise, creation of realistic KPI definition, risks assessment and real-time user transactions. & insightful reporting, incremental and workload models for performance test runs. dependency identification. iterative setup with CI/CD.

Tools Evaluation Load Simulation Result Analysis

Server Side KPIs ✦ CPU Utilization ✦ Memory Utilization ✦ Networl I/O ✦ Disk I/O Load Internet AUT Servers Generator + End User KPIs Machine Firewall ✦ Response Time ✦ Throughput ✦ Latency Clients ✦ Data Transfer rate Performance Monitoring using 3SR approach @Nagarro

Insightful Monitoring & Analytics Top to bottom modular approach for getting insights on performance During test runs we monitor through APM bottlenecks using application performance management tools. Tools based on multiple differentiators: Application Deep-Dive Analytics ✦ CPU Utilization - Steal, softriq, user utilization, Application architecture-based analysis for the extensibility and iowait stability on all the modes of on-prem and cloud native ✦ Disk - Disk I/O, read/write execution, disc utilization, environments in SaaS, PaaS, IaaS available, used, reserved for root. ✦ Memory - Utilization- available, committed, minor Business Transaction Profiling Application Code Level page fault, Kernel- Dirty, memory used by kernel, Analysis of the transaction flow through Diagnostics slab, kernel stack, page tables, VmallocUsed, Slab- every tier of the application Tracing the errors through app reclaimed, unreclaimed architecture to isolate where slowness server/web server/DB server/load ✦ Network Stack - TCP- bad data, timeout, timestamp, is being caused. balancer’s log analytics for the exact sack, fack, reno, inqueue, dropped, merged, RCA of performance bottleneck pruned,, received, sent, failed, ecn- NoECTP, ECTPO. ✦ Ipv4 Networking - Used, received, sent, delivered, packets- received, sent, delivered, ICMP- received, User Experience Monitoring Application Resource Viability sent. This deals with tracking the experience of Many application issues occur due to slow ✦ Quality of service - eth0(tc.world_in/out)- icmp, application users and identifying delivery network connectivity, a memory leak in dns, vpn, ssh, mail, webserver, default, client. times of CDNs and when they experience the server, virtualization bottlenecks, ✦ Web server - Active connection, requests, writing, slowness, errors or downtime storage hotspots, etc. idle, Connection rate- accepted, handled ✦ https methods- GET, PUT, POST, Options ✦ IP Protocol- IPv4, IPv6 Tools ✦ DB Queries - read/write, queries, generated Performance Engineering using 3SR approach @Nagarro

Dynamic Analysis & Optimization Performance engineering and profiling activities using heap dump analysis, CPU analysis, DB tuning, thread dump analysis, vertical scaling, etc.

Code Profiling What we do in Possible Profiling Tools Activities Code Optimization Bottlenecks

✦ Statistical sample In code optimization, ✦ Resource utilization (CPU profiling (sampling) once we get code usage, memory leakage) ✦ Function instrumentation profiling done, then the ✦ Thread blockage profiling outputs of code profiling ✦ Garbage collection issues ✦ Sampling and call count needs to be fixed in code ✦ Code issue(redundant instrumentation profiling optimization phase. Code, unnecessary wait ✦ Postmortem profiling for Exceptions needs to be time/loops , sleeps call count handled, memory leaks ✦ Data base issues (long needs to be fixed, running queries, wrong unnecessary loops need DB configurations) to be removed and coding standard need to be followed. Performance Testing Offering • Client-focused tailormade offerings

Performance Testing Performance Test Consulting Incremental and iterative02 3SR 04 Technical solutioning for complex performance testing approach business problems. during the entire project lifecycle.

Support Code Optimization Training Support to the developer for Conducting knowledge sharing performance bottlenecks insights. and training activities. Performance Testing Ninja Offerings Tool Evaluation Nagarro’s performance Comparative tool analysis for best fit testing solution for end-to- tool selection based on technology end performance testing. support and cost effectiveness.

Capacity Planning Performance Test Evaluation Validation of underlying Assessment of existing infrastructure and application performance test solutions based architecture for future planning. on industry best practices. What differentiates us • Key differentiators for performance testing

01 02 03 04

In-house Our Unique Centre of Excellence Expert Consultants Performance Testing Incremental Iterative for Performance Testing Solution NINJA 3SR Approach Certified performance Dedicated R&D and test engineers thriving for exploration group which is excellence in Our Ninja performance Nagarro helps businesses continuously engaged in performance testing & testing solution provides optimize their PT&E exploring new areas of engineering. end-to-end performance activities with its unique, performance testing. COE At Nagarro, we believe in testing capabilities i.e., incremental, and iterative engineers work on different continuous learning and client side, server-side 3SR approach. Our POCs covering niche and have hands-on experience performance testing, log performance engineering emerging areas of technology. and know how on monitoring, and real-time experts provide best fit We regularly publish various different tools of application monitoring. performance testing blogs and white papers and performance testing, solutions, while participate as speakers in monitoring, and profiling. ensuring the key pillars different renowned like speed, stability, conferences. Thinking breakthrough scalability, and reliability sessions are organized to intact. demonstrate innovative solutions to the clients. Case Study How we solve a complex problem? Validation of performance, stability & scalability of web-based application

About Client:

The client is a leading customer to vendor multi-step payment solution provider. Problem Statement Our Approach Techincal Challenges

To validate the scalability and • Testing for the concurrent • Complex user flow for the stability of the web-based users for the functionality automated script. Testing Tools application on the projected and static content. future user load conditions. The • Captcha integration in one of Apache JMeter application was deployed on • Sudden incremental load the flows to be bypassed AWS platform. testing for validation of the during the testing. consistency and stability of the application components. • Proper application logging configuration to identify RCA. Monitoring • Validation of concurrent database connections for the • Test data preparation for AWS CloudWatch, Performance realistic user load conditions. real-time user flow Insight simulation at scale. • RCA of the problems for the database and APIs. Imagine what we can do together