The following is an interview with Ryan Cramer, the CEO of RCD, LLC in Atlanta. Ryan specializes in design and development of medium-to-large scale web sites and web applications, and we are grateful he has shared his thoughts with us regarding software testing.
What is your technical background?
My background is equal parts web designer and programmer. I’ve been developing online applications since the late 1980s and early 1990s — back when “online” meant BBSs. My formal training is more in graphic design and I worked as a senior designer for several years before starting RCD in 2003.
Do you consider yourself more of a software developer or QA professional?
I consider myself a web site/application designer and developer.
When and why did you get into this industry?
RCD was started in 2003, but I’ve been involved in the industry much longer (see above). I’ve always enjoyed systems-oriented design of all kinds, but especially that which takes place online. The rapid pace of change and progress is not seen anywhere else like it is online. I got into the industry because this is where my interests lie and it is where I can best serve my clients.
What is your specialty? Why?
My specialty is with integrated design and development. There are major benefits to the integrity and longevity of the product if design and development are part of the same process. This is the area that I specialize in. I also work on quite a few projects where I’m doing just the design, or just the development, but am called upon because of experience in both.
What do you believe to be the most critical elements of web application testing? Why?
When it comes to web applications testing, I’d say that security of the system(s), the accessibility of the delivery (on multiple platforms), and the flexibility of the design with the diverse realities of dynamic content are the most critical elements with the sites that I work on. Load testing is also a critical factor, but more dependent upon the scale of the audience the client is publishing to.
How do you see development or testing evolving over the past few years? the next few years?
I expect that we’ll see continued improvements in the capabilities of automation and testing tools. The understanding of factors that demand testing, especially with regard to security, accessibility and load, will gain a wider audience. Clearly, the mission-critical needs of clients continues to increase in tandem with the size of the online audience. The need for both specialists and tools for testing will likewise increase in many areas.
Is there anything commonly overlooked in web application testing?
It depends. There are a great deal of competent shops in existence that are doing an excellent job. But there are likewise an even greater number of shops that are delivering products that may look good, but are not planned or tested well. In fact, many might label “web application testing” as purely related to testing on a multitude of web browsers. I don’t believe there is a broad understanding of the factors affecting security or loads for modern web sites/applications.
Any thoughts on how the global economic downturn will specifically affect the application development and testing business? (e.g. less testing, more offshoring, etc.)
Recessions motivate companies to optimize. This in turn leads them to increase their level and scope of online services. While the outside economy may continue to struggle for a bit, the internet economy will continue to grow. Recessions also inspire innovation, and a great deal of this happens online. As the internet economy grows, so does the need for supporting services, like testing.
How much involvement do you have with load or performance testing?
To be honest I don’t have a lot of involvement with load testing on a large scale, and I would like to gain more experience here. I build software in the most optimal way I can by limiting queries, building caching systems and the like. But when it comes to actually handing that load, I rely more to the expertise of the systems administrators. I keep in close contact with administrators on a couple of sites higher-traffic I develop. We keep a close eye on both live server loads and historical traffic patterns and collaborate on how best to balance the load. But I ultimately rely upon the expertise of others, as I believe this is an area that demands it.
What would you say is the difference between load testing and performance testing?
Without specifically looking for an exact definition, I consider the goals of load testing to be aimed at ensuring availability of service, and performance testing aimed at ensuring quality (or speed) of service.
What is the biggest change you have witnessed in the way people conduct load testing?
While I don’t witness a lot of specific load testing, I feel that the change I’ve witnessed is in the understanding of the need for it. Handling loads with web sites has been primarily a reactive discipline in years past. We are now in a time where there is greater experience and understanding of these loads, and likewise a greater proactivity in testing and planning for such loads.
Do you feel like load testing is an accepted critical part of the development life cycle?
It really depends on the application. My impression is that companies test relative to their resources, and that load testing is not as widespread or understood as well as something like security testing.
Please share with us an interesting story about your experience with software development or load testing.
Actually I’ll share a story that is a good example of why load testing is so important. My wife was signing up for the Peachtree Road Race this month, and online registration opened at 7 am Sunday morning, for 45,000 registrants. It was expected to sell out quickly, so everyone woke up early to register, and this was the first year that online registration was offered. Upon attempting to complete the registration, the web site returned all sorts of errors indicating what appeared to be a lack of resources.
We got on Twitter to search for who else might be having trouble, and it turns out that everyone was. Someone on Twitter discovered that if you hit reload a hundred or so times, eventually the registration went through. So all of us on Twitter managed to complete the registration. It makes you wonder how this might have affected the demographics of who will be in the race this year — will it be a group of primarily tech savvy runners?
The Peachtree Road Race is a big deal in Atlanta, and this problem with the online registration system was widely reported in the news. Assuming that load was the problem, had the system been properly load tested, it would have prevented this epic failure.
Please provide a link to your favorite blog post that you have written and tell us what you like about that one.
While not specific to load testing, these two articles are related in that they describe a similar process of awareness, planning and testing for the future. Like load testing, they are items that people may not always be thinking about, but are so crucial to the future success of the site.