Performance, Load And Stress Testing - A Developer's Guide

Wednesday 03 Jul 2013 at 23:00
UserGroup  |  testing

This post is a write-up of a user group session at ChesterDevs on 3rd July 2013, delivered by Rob Tonnesson

  • Performance testing is adding more and more load until the application breaks.
  • Load testing is defining a load that is "real-world" and repeating tests against this load to ensure adequate performance of the application of the user.
  • Stress testing involves running the application turn off or removing resources such as databases, networks and monitoring how the application handles it.
  • Rob uses Visual Studio Team Test for the demos. This requires the Ultimate edition of Visual Studio and also requires the Visual Studio Agents to be installed.
  • For successful testing you'll need to "build a baseline". This involves finding the "best" and "worst" times to test against (e.g. A Friday night in a hospital's A&E department may be a good "worst" time).
  • Visual Studio Test project for load testing using MS Test with the "test context" with a "load test profile" as part of the solution.
  • You can feed environment statistics (CPU, RAM, Network etc.) back into test runs to increase or decrease test load (e.g Ramp up until CPU hits 70% load).
  • Rob works for a company that makes software called "Medway". It's a patient administration system sold to healthcare organisations.
  • A typical site load for the Medway software is approximately 400,000 transactions per hour.
  • The Service Level Agreement (SLA) is that each and every transaction (from the UI, through to application to the database and back again) has to be under 2 seconds.