Welcome!

@DevOpsSummit Authors: Jnan Dash, Liz McMillan, Zakia Bouachraoui, Janakiram MSV, Pat Romanski

Related Topics: @DevOpsSummit, Linux Containers, Containers Expo Blog, Agile Computing

@DevOpsSummit: Blog Post

Mobile Stress Testing | @DevOpsSummit #DevOps #ContinuousDelivery

While extreme load conditions rarely appear in production, never underestimate the potential for their occurrence

Falling beneath the umbrella of performance testing, both load and stress testing play an important role in assessing the availability and performance of your web or mobile applications under expected and extreme load.

While the terms "stress testing" and "load testing" may be used interchangeably within a testing team or organization, the two differ when it comes to their definitions and purpose.

Stress Testing vs. Load Testing
Load Testing
: A performance-related testing process that places simulated demand on software, web or mobile applications in order to measure responses and systems' behavior under both normal and anticipated peak load conditions.

Its purpose: Providing insight into your application and system's behavior under expected load conditions.

Stress Testing: A testing process designed to push an application's environment to its breaking point so that QA teams can gain an understanding of the upper limits of capacity within the system.

Its purpose: Stress testing exposes issues that may not appear under normal or even expected conditions. It allows testers to determine the software's robustness and ensure that the system fails and recovers in an acceptable manner.

Stress Testing: When, Why and How
When to conduct stress tests
Typically during the software development lifecycle, smaller load tests can be run before a big release or after each sprint/iteration. This allows for the detection of issues that may cause larger performance problems during full scale stress testing.

While some Agile organizations are able to run stress tests at the end of sprints before they release to integration or deploy to production, this strategy is NOT recommended for business critical applications.

When your application absolutely needs to perform for end users, you'll need to run longer peak tests and stress tests during a hardening sprint (or before the release of a new application/update if you're working in a traditional environment) to truly ensure application performance in production. This becomes especially important for eCommerce apps around big holiday seasons, online tax filing services during tax season, universities during class registration periods, etc.

The biggest takeaway here is that stress testing during a hardening sprint or right before a release is absolutely necessary to ensure that your application's performance level meets end user expectations.

Benefits of stress testing
Extreme load conditions are rarely seen in production. Therefore, stress testing benefits organizations by revealing application issues that only become apparent under these extreme conditions. Proper stress tests can also help you uncover the following:

  • Synchronization and timing bugs
  • Interlock problems
  • Priority problems
  • Resource loss bugs
  • Memory leaks
  • Data loss & corruption

Utilizing stress testing tools
When approaching stress testing, you'll want first identify test objectives, key scenarios, the workload you want to apply, and the metrics you'll be tracking. After you've created your test cases, work with a stress testing tool to simulate the required load for each test case and capture performance metrics.

A truly effective stress testing tool will realistically simulate thousands+ of users, analyze your application's performance and monitor your servers under load.

Reaching the Breaking Point
Stress testing is an essential and beneficial process that provides otherwise unattainable insight into the performance of your web and mobile applications under extreme load. Identifying the potential breaking points in your application will allow you to correct them before they become expensive issues in production.

While extreme load conditions rarely appear in production, never underestimate the potential for their occurrence. To learn more about how you can stress test your web or mobile applications in preparation for peak load conditions, check out our Holiday Readiness Case Study here.

More Stories By Tim Hinds

Tim Hinds is the Product Marketing Manager for NeoLoad at Neotys. He has a background in Agile software development, Scrum, Kanban, Continuous Integration, Continuous Delivery, and Continuous Testing practices.

Previously, Tim was Product Marketing Manager at AccuRev, a company acquired by Micro Focus, where he worked with software configuration management, issue tracking, Agile project management, continuous integration, workflow automation, and distributed version control systems.

@DevOpsSummit Stories
If you are part of the cloud development community, you certainly know about “serverless computing,” almost a misnomer. Because it implies there are no servers which is untrue. However the servers are hidden from the developers. This model eliminates operational complexity and increases developer productivity. We came from monolithic computing to client-server to services to microservices to the serverless model. In other words, our systems have slowly “dissolved” from monolithic to function-by-function. Software is developed and deployed as individual functions – a first-class object and cloud runs it for you. These functions are triggered by events that follow certain rules. Functions are written in a fixed set of languages, with a fixed set of programming models and cloud-specific syntax and semantics. Cloud-specific services can be invoked to perform complex tasks. So for cloud-na...
Kubernetes is an open source system for automating deployment, scaling, and management of containerized applications. Kubernetes was originally built by Google, leveraging years of experience with managing container workloads, and is now a Cloud Native Compute Foundation (CNCF) project. Kubernetes has been widely adopted by the community, supported on all major public and private cloud providers, and is gaining rapid adoption in enterprises. However, Kubernetes may seem intimidating and complex to learn. This is because Kubernetes is more of a toolset than a ready solution. Hence it’s essential to know when and how to apply the appropriate Kubernetes constructs.
In a recent survey, Sumo Logic surveyed 1,500 customers who employ cloud services such as Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP). According to the survey, a quarter of the respondents have already deployed Docker containers and nearly as many (23 percent) are employing the AWS Lambda serverless computing framework. It's clear: serverless is here to stay. The adoption does come with some needed changes, within both application development and operations. That means serverless is also changing the way we leverage public clouds. Truth-be-told, many enterprise IT shops were so happy to get out of the management of physical servers within a data center that many limitations of the existing public IaaS clouds were forgiven. However, now that we've lived a few years with public IaaS clouds, developers and CloudOps pros are giving a huge thumbs down to the...
To enable their developers, ensure SLAs and increase IT efficiency, Enterprise IT is moving towards a unified, centralized approach for managing their hybrid infrastructure. As if the journey to the cloud - private and public - was not difficult enough, the need to support modern technologies such as Containers and Serverless applications further complicates matters. This talk covers key patterns and lessons learned from large organizations for architecting your hybrid cloud in a way that: Supports self-service, "public cloud" experience for your developers that's consistent across any infrastructure. Gives Ops peace of mind with automated management of DR, scaling, provisioning, deployments, etc.
CoreOS extends CoreOS Tectonic, the enterprise Kubernetes solution, from AWS and bare metal to more environments, including preview availability for Microsoft Azure and OpenStack. CoreOS has also extended its container image registry, Quay, so that it can manage and store complete Kubernetes applications, which are composed of images along with configuration files. Quay now delivers a first-of-its-kind Kubernetes Application Registry that with this release is also integrated with Kubernetes Helm so that deployment of an application can be completely automated.