Sunday, April 06, 2008

Are You Ready for "Green Testing"?

"Green IT" has been without doubt one of (if not the) the main hypes of this years CeBIT. The discussion about CO2 emissions has let the automotive industry all the way from a hype to a point that you'll be able to get even a Porsche with a hybrid engine in the near future. Regardless what one might think about that current hype, i think "green" technology is a good thing (no need to argue about that). While computer hardware actually does require less energy with every new generation of CPUs for example, most current trends in software engineering (from "green screen appliactions" or rich clients to WebApps, domain specific languages for higher abstraction, trading simple PHP-scripts for MVC frameworks like Rails, from unmanaged code to byte code that runs on virtual machines) do require more hardware resources on the other hand.

In order to create greener systems the software industry has to go a way similar to that the automotive sector did in the last years:
  • Engineering with efficiency in mind
  • Measuring the efficiency
  • Discuss the results, make them matter
This blog post by Yahoo!s performance expert Steve Sounders made me think about green IT from a load and performance testers point of view. As a performance tester you measure the efficiency of software systems against requirements based on response times, a number of transactions/concurrent users in a given time interval. All those factors have influence on the power consumption (and as such on CO2 emissions) of the system under test. So much for the theory.

In practice there are few projects with defined non-functional requirements just like the mentioned above. Without an quantified workload (output) you are not able to tell if the usage of hardware resources (input) is reasonable or not - not to mention being able to optimize the system.

furthermore most performance testing is done in a late project phase when there's no time left for architectural turnarounds in case of a severe bottleneck were found. This leads to the usual solution: throwing more hardware at the system (which doesn't exactly match the definition of efficiency, does it?) - more on the downsides of that waterfall approach to load testing popped up on testingreflections recently: here and here.

So, what comes next? Will "the system should be efficient and green" become a standard non-functional requirement of large software systems? Will they refer to us performance testers as the "green team" someday (in analogy to the "black team")? I think it would actually be pretty cool to give efficiency a greater significance in the IT world. Or am i the only one thinking the "throwing more hardware on the system" thing isn't really up to date anymore?

1 comment:

Shan said...

Software testing is a relatively new field but it has changed considerably in past few years.

test automation