Table of contents for Performance Wilderness
- Performance Wilderness: Look up on A Summer Night and See The Stars by Howard Clark
- Performance Wilderness:Setting Up Your Performance Testing Camps by Howard Clark
- Performance Testing Wilderness: Hold Hands and Make a Ring Around the Campfire by Howard Clark
(2 Factor Orthogonal Array Example) The ties that bind us together, our networks, connecting the disparate dots on our application landscape allowing us to process transactions from around the globe. Imagine a circle of people holding hands moving in unison around the camp fire, a perfect symphony of movement as eveyone dances around faster and faster until the circle becomes a blur of movement. It’s not until someone’s shoestings come untied, followed by a stumble and a loud thud that we start to realize that we might have been standing too close to the open flames. This is the type of analogy that comes from a mind warped on videogames that add flamethrowers to your arsenal, games which I only play to discover software bugs and not as mindless entertainment for hours on end by the way. Back on subject, our application network is only as robust as its weakest link, an adage that has held true for thousands of years. Unless confronted with hard performance requirements this is another one of those areas that is so easy to take for granted in the context of having tested intranet applications that reside behind the corporate firewall. In reality this is even more precarious than testing an external facing application whose end user is on the other side of the world wide web. I say that because if you want a simple worse case scenario all you need to do is govern the bandwidth that you conduct your test with when simulating an external user. You can take the broadband penetration numbers and scale accordingly using the lesser of the average connection speeds. Right now Nielsen/NetRatings pegs broadband penetration at about 33% of American households, this is an abysmal number compared to other countries leaving us at an overwhelming majority of households at less than broadband or at 56kbps worst case. So if you wanted to cover your bets, all of the external users in your test would run at 56kbps. Obviously all of this could be trumped by a hard technical requirement that states the minimum connectivity speed. But when it comes to internal apps behind the firewall we tend to not even gather network stats because we are on the corporate LAN. This false sense of security can be shattered with one misconfigured router, an incorrect duplex setting on a NIC, bad cables, or poor network connection handling in the application. Complicating this is the infrastructure behind the corporate firewall, then on the other side of the firewall you have the possibility of caching servers and services(Akamai), and possibly local caching on the client-side of the application puzzle.
In a vacuum, a component test of a piece of business logic may produce results that prove to be acceptable. But when the result of that business logic’s execution ends up in a datagrid in the UI that is waiting to be rendered because the data hasn’t made it across the wires in a timely fashion you end up with a performance problem. This means you absolutely have to take the render time into account from an end-user perpective and create a 360-degree view of your application performance which absolutely should include your network or the internet’s performance.
This now adds an additional factor to your testing array where you can represent various types of network speeds using less-than broadband, broadband and enterprise levels of connectivity. This then opens up to the addition of WAN topology and modes of transport such as wireless.
Don’t get burned.