Share this
What is performance testing and why does it matter?
by Stephen Townshend on 08 February 2016
You may have heard of 'performance' or 'performance testing' within the industry and your organisation. In this post I will cover off the basics on what software performance is, why it matters, and what you can do to manage it.
In this post I will cover:
- What is software performance?
- Why does performance matter?
- What is performance testing?
- How do performance testing tools work?
What is software performance?
Performance is a property of a software solution. We measure performance in three ways:
- Response time measures the experience of your users. An example of response time is how long it takes a web page to render or how long it takes to run a report. Response time measures the time between the user clicking a button and the page or screen being fully loaded. This is especially important when your users are your customers.
- Stability measures whether your solution works correctly and continues to work correctly over prolonged periods of use. An example of a stability issue is a memory leak, which is where a piece of software unintentionally fills up the memory on a server, ultimately leading to a system failure. Stability is measured by looking at failure rates and monitoring the underlying infrastructure.
- Capacity measures how much load your solution can cope with. Capacity can be measured in many ways; web pages viewed per hour, concurrent users on a system, number of business transactions completed per minute, etc. Understanding the capacity of your solution also helps in correctly scaling the hardware to support it.
Every performance issue will fit into one or more of the three categories above.
Why does performance matter?
Software performance matters when:
- Your solution has or will process a large volume of load. For example, if there are thousands of users in your organisation who use it every day, or your system is expected to process a large volume of transactions, then capacity matters.
- A system outage is linked to the revenue of your organisation. What would the cost be if your software solution was down for an hour? A day? If the costs are severe then the stability of your solution matters.
- Your solution is customer facing. The responsiveness of your solution is directly linked to the experience of your customers, and therefore your reputation and revenue. In this case response time matters.
- Human wellbeing is at stake, for example, many systems found in the healthcare industry. In that case stability, capacity, and response time all matter a great deal.
What is performance testing?
A common approach to avoiding performance issues in the real world is to test your solution for performance issues before going live. In general, the earlier you detect an issue the more cost effective it is to remedy.
Performance testing is the discipline of testing the stability, capacity, and response time of a software solution. There's a lot involved in performance testing but at a very basic level we use a tool to simulate the real world activity of the users on a system. We then observe how the system behaves under load to determine its capacity, stability, and response time.
How do performance testing tools work?
Performance testing tools (specifically, load testing tools) simulate the conversation between a client and a server at a large scale (simulating many users doing a lot of business activity).
Let's use a metaphor to explain. Imagine a café. Each customer who walks in is a client. The staff in the café are the servers.
Let's say a customer walks in, asks for a flat white (coffee with milk), hands over some money, and eventually receives the flat white. This is the same as it is with computer systems - a client makes a request, the server then processes that requests and provides something back to the client in their response.
If we built a load testing tool for a café we might bring a couple of dozen actors to the café. We'd ask each actor to repeat what the first customer did by writing them a "script" of what to ask for. We'd set the frequency to which our actors entered the café to control the throughput (maybe one every 30 seconds, for example). We'd tweak the actors so they ordered different things by altering the script we gave them - some would ask for soy milk, maybe some a coffee and a muffin. By doing this we're testing the capacity, stability, and responsiveness of the staff (servers) in the café.
Load testing tools work the same way. In the real world multiple users interact with a web browser on a device such as a PC, tablet or smart phone. The web browser sends requests over a network to an application:
A load testing tool jumps in at the network level and simulates this same conversation between the browser and the application. This is often achieved by "recording" the network traffic sent and received while a real user interacts with the application. The tool can then replicate the traffic multiple times to simulate multiple users interacting with your solution:
We can also modify the network traffic to interact in a dynamic way, for example we could give each user their own credentials, and let them pick different options in the application. This allows us to simulate realistic activity against a software solution. While simulating multiple concurrent users we observe the behaviour of the system under test to measure its stability, capacity, and response time.
Conclusion
So that's what software performance is and why it matters. Remember that whether you performance test depends on the degree to which the stability, capacity, and response time of your application is tied to the reputation and revenue of your organisation. This should also inform the scale of testing you undertake.
If you think you have a solution which needs performance testing or are looking for advice Equinox IT is here to answer your questions.
Share this
- Agile Development (153)
- Software Development (126)
- Agile (76)
- Scrum (66)
- Application Lifecycle Management (50)
- Capability Development (47)
- Business Analysis (46)
- DevOps (43)
- IT Professional (42)
- Equinox IT News (41)
- Agile Transformation (38)
- IT Consulting (38)
- Knowledge Sharing (36)
- Lean Software Development (35)
- Requirements (35)
- Strategic Planning (35)
- Solution Architecture (34)
- Digital Disruption (32)
- IT Project (31)
- International Leaders (31)
- Digital Transformation (26)
- Project Management (26)
- Cloud (25)
- Azure DevOps (23)
- Coaching (23)
- IT Governance (23)
- System Performance (23)
- Change Management (20)
- Innovation (20)
- MIT Sloan CISR (15)
- Client Briefing Events (13)
- Architecture (12)
- Working from Home (12)
- IT Services (10)
- Data Visualisation (9)
- Kanban (9)
- People (9)
- Business Architecture (8)
- Communities of Practice (8)
- Continuous Integration (7)
- Business Case (4)
- Enterprise Analysis (4)
- Angular UIs (3)
- Business Rules (3)
- Java Development (3)
- Lean Startup (3)
- Satir Change Model (3)
- API (2)
- Automation (2)
- GitHub (2)
- Scaling (2)
- Toggles (2)
- .Net Core (1)
- Diversity (1)
- Security (1)
- Testing (1)
- February 2024 (3)
- January 2024 (1)
- September 2023 (2)
- July 2023 (3)
- August 2022 (4)
- August 2021 (1)
- July 2021 (1)
- June 2021 (1)
- May 2021 (1)
- March 2021 (1)
- February 2021 (2)
- November 2020 (2)
- September 2020 (1)
- July 2020 (1)
- June 2020 (3)
- May 2020 (3)
- April 2020 (2)
- March 2020 (8)
- February 2020 (1)
- November 2019 (1)
- August 2019 (1)
- July 2019 (2)
- June 2019 (2)
- April 2019 (3)
- March 2019 (2)
- February 2019 (1)
- December 2018 (3)
- November 2018 (3)
- October 2018 (3)
- September 2018 (1)
- August 2018 (4)
- July 2018 (5)
- June 2018 (1)
- May 2018 (1)
- April 2018 (5)
- March 2018 (3)
- February 2018 (2)
- January 2018 (2)
- December 2017 (2)
- November 2017 (3)
- October 2017 (4)
- September 2017 (5)
- August 2017 (3)
- July 2017 (3)
- June 2017 (1)
- May 2017 (1)
- March 2017 (1)
- February 2017 (3)
- January 2017 (1)
- November 2016 (1)
- October 2016 (6)
- September 2016 (1)
- August 2016 (5)
- July 2016 (3)
- June 2016 (4)
- May 2016 (7)
- April 2016 (13)
- March 2016 (8)
- February 2016 (8)
- January 2016 (7)
- December 2015 (9)
- November 2015 (12)
- October 2015 (4)
- September 2015 (2)
- August 2015 (3)
- July 2015 (8)
- June 2015 (7)
- April 2015 (2)
- March 2015 (3)
- February 2015 (2)
- December 2014 (4)
- September 2014 (2)
- July 2014 (1)
- June 2014 (2)
- May 2014 (9)
- April 2014 (1)
- March 2014 (2)
- February 2014 (2)
- December 2013 (1)
- November 2013 (2)
- October 2013 (3)
- September 2013 (2)
- August 2013 (6)
- July 2013 (2)
- June 2013 (1)
- May 2013 (4)
- April 2013 (5)
- March 2013 (2)
- February 2013 (2)
- January 2013 (2)
- December 2012 (1)
- November 2012 (1)
- October 2012 (2)
- September 2012 (3)
- August 2012 (3)
- July 2012 (3)
- June 2012 (1)
- May 2012 (1)
- April 2012 (1)
- February 2012 (1)
- December 2011 (4)
- November 2011 (2)
- October 2011 (2)
- September 2011 (4)
- August 2011 (2)
- July 2011 (3)
- June 2011 (4)
- May 2011 (2)
- April 2011 (2)
- March 2011 (3)
- February 2011 (1)
- January 2011 (4)
- December 2010 (2)
- November 2010 (3)
- October 2010 (1)
- September 2010 (1)
- May 2010 (1)
- February 2010 (1)
- July 2009 (1)
- April 2009 (1)
- October 2008 (1)