Welcome!

@DevOpsSummit Authors: Elizabeth White, Pat Romanski, Liz McMillan, Yeshim Deniz, SmartBear Blog

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
DevOpsSummit New York 2018, colocated with CloudEXPO | DXWorldEXPO New York 2018 will be held November 11-13, 2018, in New York City. Digital Transformation (DX) is a major focus with the introduction of DXWorldEXPO within the program. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive over the long term. A total of 88% of Fortune 500 companies from a generation ago are now out of business. Only 12% still survive. Similar percentages are found throughout enterprises of all sizes.
For better or worse, DevOps has gone mainstream. All doubt was removed when IBM and HP threw up their respective DevOps microsites. Where are we on the hype cycle? It's hard to say for sure but there's a feeling we're heading for the "Peak of Inflated Expectations." What does this mean for the enterprise? Should they avoid DevOps? Definitely not. Should they be cautious though? Absolutely. The truth is that DevOps and the enterprise are at best strange bedfellows. The movement has its roots in the tech community's elite. Open source projects and methodologies driven by the alumni of companies like Netflix, Google and Amazon. This is a great thing for the evolution of DevOps. It can be alienating for Enterprise IT though. Learning about Netflix and their simian armies, or Facebook and their mind-melting scale is fascinating. Can you take it back to the office on Monday morning though?
For organizations that have amassed large sums of software complexity, taking a microservices approach is the first step toward DevOps and continuous improvement / development. Integrating system-level analysis with microservices makes it easier to change and add functionality to applications at any time without the increase of risk. Before you start big transformation projects or a cloud migration, make sure these changes won’t take down your entire organization.
Learn how to solve the problem of keeping files in sync between multiple Docker containers. In his session at 16th Cloud Expo, Aaron Brongersma, Senior Infrastructure Engineer at Modulus, discussed using rsync, GlusterFS, EBS and Bit Torrent Sync. He broke down the tools that are needed to help create a seamless user experience. In the end, can we have an environment where we can easily move Docker containers, servers, and volumes without impacting our applications? He shared his results so you can decide for yourself.
The Jevons Paradox suggests that when technological advances increase efficiency of a resource, it results in an overall increase in consumption. Writing on the increased use of coal as a result of technological improvements, 19th-century economist William Stanley Jevons found that these improvements led to the development of new ways to utilize coal. In his session at 19th Cloud Expo, Mark Thiele, Chief Strategy Officer for Apcera, compared the Jevons Paradox to modern-day enterprise IT, examining how the Internet and the cloud has allowed for the democratization of IT, resulting in an increased demand for the cloud and the drive to develop new ways to utilize it.