A couple of months ago, Adron and I connected on Twitter. He fits the perfect profile of people I like in social media: a web developer, software architect, cloud computing advocate, public speaker, adrenaline junkie that is into heavy metal, transit & logistics, economics, and beautiful things. He also believes that load testing is often overlooked and performance can make or break a project (see below).
Adron is a Senior Application Developer at Russell Financial with strong technical skills in C#, VB.NET, VB 6/5/4, SQL, SQL Server, OLAP, SQL Server Analysis Services, and lots more. Other impressive abilities include keen business analysis, understanding of economic trends, and insight into goals relative to the use of technology. Please check out his blog about Snippets, software architecture, lean, agile, management, and leadership bits.
Formerly with WebTrends, Adron provided development integration & implementation support for Adobe AIR, Flash, .NET, Silverlight, WPF, Office 2k7 & 2k3 (a LOT of Excel) and more products that utilize WebTrends Data Exchange and Collection Services.
We are grateful that Adron shared his thoughts with us concerning load testing, software architecture, trends, and web performance in this interview.
What is your technical background?
I’m a solutions Architect these days. I’ve worked as a Network Engineer, Systems Administrator, Software Developer, Solutions Developer and a host of other positions. I have almost 15 years experience in the technology. I’ve worked with specifying the machines, to the UX design, and the software in between in my career and have to say I love what I do.
Do you consider yourself more of a software developer or QA professional?
These days, I generally am making sure that QA, Test, and Development play together nicely. I’ve played significant parts in both roles.
When and why did you get into this industry?
I was having a great time playing music, shredding to my hearts content playing guitar. However I had an insatiable desire to learn, and to eat regularly. The Tech Industry looked like a great place to be for continuous learning and a steady paycheck. It didn’t take long before I fell in love with the field and have been working every since.
What is your specialty? Why?
I like taking things from the business point of view, and setting out on implementation plans to actually create the architecture and solution that is needed. I’ve found that I have a great knack for leading teams, inspiring, mentoring, and getting software built from actual coding to the big picture view. In addition communicating the vision and seeing this through to completion is a great feeling. So overall, I see and implement from the big picture perspective, but can still implement the smallest details.
What do you believe to be the most critical elements of web application testing? Why?
In order of priority I see UX (User Experience) and load testing against the core web site architecture being fundamental. For big data sites, the load testing becomes even more paramount. Data has to be stored, integrity has to be maintained, and the architecture has to support that while providing as flawless a user experience as possible.
How do you see development or testing evolving over the past few years? the next few years?
The biggest evolution I’ve seen is being able to accurately load test sites utilizing the cloud platforms. However at the core of development and testing I’ve seen, and continue to see over the next few years a continuing confusion, and hopefully clarity, over developer unit testing, testing, QA, and integration testing. All of these topics seem to be muddled these days and often cause a lot of extra communication bringing clarity to what needs to be done and by who.
Is there anything commonly overlooked in web application testing?
Load testing is one. The other is verifying and really testing the architecture. Making sure the architecture can stand under load, but not just stand also do so while being elegant and efficient is rarely reviewed and tested. This trickles down to all sorts of negative consequences. Sometimes to the point of destroying companies out of excess or unseen costs. To put it simple, companies absolutely must get more efficient at testing architecture of their platforms.
How much involvement do you have with load and performance testing?
I often only specify how, where, and what basic criteria needs to be tested (estimated users, estimated growth over X period, peak users, minimals users, and how to scale accordingly). Sometimes these days I do get more involved at a technical level, but rarely.
What do you think is the most important aspect of load testing?
Verifying peak load capabilities, but also verifying what that load will actually cost. Then making appropriate architectural decisions to allocate costs according to the needed demands of the system.
How do you determine the load to apply to the target app during load testing?
While at Webtrends we often checked, or did some baseline initial analysis of what sites already had for traffic. We then would model peak and minimum load. Then setup everything from A/B Tests to load tests to help the clients verify capabilities.
Currently I do tests in varying ways, but one would have to read my blog to keep up with those, as elaborating would make this a bit of an excessive read. 🙂
Do you prefer using requests per second (RPS), concurrent users, or some other metric to define load?
Often I use RPSs and concurrent users. In most of the sites though the most important is RPSs, because the responses occur after asynchronous requests, which means we wouldn’t have concurrent but would have a significant number of requests. It is good to differentiate and test appropriately for these metrics.
Do you feel like performance testing is an accepted critical part of the development life cycle?
Unfortunately in many projects load testing is something I have to bring in myself, or someone else has to bring into the project. It often is overlooked for various reasons. Hopefully in the coming years this will change.
What are some of the most common web app bottlenecks that you find and/or fix?
One of the biggest bottlenecks I’ve dealt with the last few years is Relational Databases (mySQL, SQL Server, Oracle, etc). Pulling data out of these and building a big data system around HBase, Windows Azure Tables, Amazon Web Serivces S3 or SimpleDB can often be tumultuous when a system has been and is up and running live.
Do you have any cool tips/tricks for performance tuning?
If you think your site may ever hit millions of users, go ahead and start building your architecture are big data vs. the standard RDBMS. At least make extensive effort to keep your database very minimal and very efficient (i.e. appropriate indexes, only a few tables per query, etc).
How does cloud computing affect the future of automated testing?
Simply, cloud computing makes testing available to those that previously couldn’t afford good load testing, and makes levels of load testing available to even those that could afford some basic load testing. Cloud computing will continue to be a disruptive and positive force for change in testing.
Any thoughts on how the global economic downturn will specifically affect the application development and testing business? (e.g. less testing, more offshoring, etc.)
So far it seems more companies are spending cash on software projects to cut costs, I’ve only seen upside on this so far. Of course this seems contrary, but in reality I think a lot of the downturn has been used to make many inefficient corporations efficient by streamlining process and enhancing efficiencies that already existed but were not fully utilized.
How important is web performance to your clients?
Very, it often means the success or failure of the project effort.
Do you see any intersection points between usability and performance testing?
As I mentioned earlier in the interview, user experience (usability) is of fundamental importance. Without good performance from a site, it often means lost customers and lost revenue. People aren’t going to sit around forever waiting for an item to get added to their cart. Especially if the competition’s cart is blazing fast.
Please follow Adron on Twitter and check out his special transit blog:
Transit: http://transitsleuth.com
Twitter: http://www.twitter.com/adronbh
Please let him know how much you appreciated his interview by tweeting about this blog post!