Home > Ask the Software Quality Experts > Software Testing and Quality Assurance Questions & Answers > Software testing in a virtual environment
Ask The Software Quality Expert: Questions & Answers
EMAIL THIS

Software testing in a virtual environment

Mike Kelly EXPERT RESPONSE FROM: Mike Kelly

Pose a Question
Other Software Quality Categories
Meet all Software Quality Experts
Become an Expert for this site


Software quality news and advice
Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google


>
QUESTION POSED ON: 14 May 2008
What is the likelihood of capturing accurate load testing results in a virtual test environment? We use LoadRunner/PerformanceCenter for performance testing. Our company is in the process of making use of virtualization. It seems this may be ideal for functional test environments, but not for performance test environment. What is your opinion?

>
EXPERT RESPONSE

There are a lot of ways to use virtual environments in your performance testing, so there's no easy answer to this question. I'm assuming that you're referring to hosting the entire application in a virtual environment and running your performance testing against that platform. My answer is that, as always, it depends.

Some research on the topic has found that virtual environments don't scale as well as non-virtual environments. In a study by BlueLock, a company that provides IT infrastructure as a service, they found that "the number of simultaneous users that could be handled by the virtualized server was 14% lower than the number of simultaneous users being handled by the traditional server configuration."

This is consistent with my experience testing financial service applications in virtual environments. Scott Barber, fellow SearchSoftwareQuality.com expert, recently gave a talk on the topic. You can find the PowerPoint slides for the talk here. In those slides he points out some other common challenges with working in a virtual environment.

If you don't have much choice, or if you have a lot of pressure to make it work, I would recommend that you perform a comparison performance test to prove out the new platform. If you can do that successfully, you'll have some confidence that the platform is comparable. But just be aware that over time, as the application changes and the server configurations change (both virtual and the physical servers in production) your comparison will become outdated. It may happen faster than you might think.

As Scott points out in his talk, the problem isn't necessarily virtualization. It's that we don't always pay attention to all the other factors that affect performance. Differences in software and hardware configurations, network devices, geographic location, firewalls and other security measures, and a host of other factors all affect performance. Virtual environments often only make it more complex to track everything since they introduce their own overhead, rely on different network devices, and can reside in different physical locations.

It's not all doom and gloom. You might be able to virtualize some parts of your application quite successfully. For example, at the April Indianapolis Workshop on Software Testing, Ken Ahrens from iTKO shared an experience where he used the iTKO LISA product to enable service-oriented virtualization -- a process where you virtualize services that your application might rely on. In this case, if you were performance testing the core application and not the services it relies on, then that virtualization wouldn't necessarily affect your performance testing at all.

Software testing resources:
Testing for performance, part 1: Assess the problem space

What to include in a performance test plan

How to specialize in performance testing

In that specific case study, before virtualization Ken's customer was unable to run performance tests on a regular basis due to service availability. Testing was an "event" where tens of teams had to get together to make a load test happen, and the high cost meant that this only happened a few times a year. Since they virtualized some of those services, they can run tests daily. Virtualization at the message level also gave them a greater ability to experiment with issues such as "what if this key service slows down significantly?" Or to try different data scenarios, such as "what if the lookup returns 900 records instead of 10 records?"

As you implement virtual environments in your context, pay close attention to the implementation. It may not matter to you if you see a 14% decrease in what you can support in that environment. For some teams, that's a reasonable risk. Before you decide to completely throw out virtualization, ask yourself if there are specific uses for it that make sense, like in Ken's example.


Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google


RELATED CONTENT
Software Testing and Quality Assurance
How testers can convince developers of software errors
Should you retest closed defects during regression testing?
Common mistakes of new software testers
How to test an application's scalability, performance
Integration testing: Is it black box or white box testing?
Test strategy document vs. an acceptance test plan
The future of software testing
Quality assurance testing vs. user acceptance testing
Eliminating testing environment troubles
How to use tools for system integration testing

Advice from Mike Kelly
Integration testing: Is it black box or white box testing?
Test strategy document vs. an acceptance test plan
The future of software testing
An approach to integration testing
Choosing code coverage tools
Performance testing and experimental design
How to test software with dynamic requirements
Test metrics and use case coverage during testing
How to learn white box testing
How to determine test coverage

Software testing and quality assurance (QA) fundamentals
How testers can convince developers of software errors
Pictures communicate software requirements without slowing development
Common mistakes of new software testers
Cloud computing creates software testing challenges
How cloud computing affects agile practices, testing
Test strategy document vs. an acceptance test plan
SOA application testing a combined effort
Overcoming SOA testing challenges
The future of software testing
Eliminating testing environment troubles

RELATED GLOSSARY TERMS
Terms from Whatis.com − the technology online dictionary
build  (SearchSoftwareQuality.com)
code review  (SearchSoftwareQuality.com)
conformance testing  (SearchSoftwareQuality.com)
error handling  (SearchSoftwareQuality.com)
garbage in, garbage out  (SearchSoftwareQuality.com)
load testing  (SearchSoftwareQuality.com)
NUnit  (SearchSoftwareQuality.com)
quality assurance  (SearchSoftwareQuality.com)
stress testing  (SearchSoftwareQuality.com)
white box  (SearchSoftwareQuality.com)

RELATED RESOURCES
2020software.com, trial software downloads for accounting software, ERP software, CRM software and business software systems
Search Bitpipe.com for the latest white papers and business webcasts
Whatis.com, the online computer dictionary



Search and Browse the Expert Answer Center
Search and browse more than 25,000 question and answer pairs from more than 250 TechTarget industry experts.
Browse our Expert Advice



Software Quality - Software Maintenance, Software Requirements, Software Standards
About Us  |  Contact Us  |  For Advertisers  |  For Business Partners  |  Site Index  |  RSS
SEARCH 
TechTarget provides enterprise IT professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective IT purchase decisions and managing their organizations' IT projects - with its network of technology-specific Web sites, events and magazines.

TechTarget Corporate Web Site  |  Media Kits  |  Reprints  |  Site Map




All Rights Reserved, Copyright 2006 - 2008, TechTarget | Read our Privacy Policy
  TechTarget - The IT Media ROI Experts