The Artima Developer Community
Sponsored Link

.NET Buzz Forum
Unit Testing scalability and performance

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Roy Osherove

Posts: 1807
Nickname: royo
Registered: Sep, 2003

Roy Osherove is a .Net consultant based in Israel
Unit Testing scalability and performance Posted: Jul 19, 2004 3:52 PM
Reply to this message Reply

This post originated from an RSS feed registered with .NET Buzz by Roy Osherove.
Original Post: Unit Testing scalability and performance
Feed Title: ISerializable
Feed URL: http://www.asp.net/err404.htm?aspxerrorpath=/rosherove/Rss.aspx
Feed Description: Roy Osherove's persistent thoughts
Latest .NET Buzz Posts
Latest .NET Buzz Posts by Roy Osherove
Latest Posts From ISerializable

Advertisement
I had an interesting chat with Clemens today. I told him about the Rollback ability using ES and he totally disagreed with me that its a viable option for testing database usage for several reasons:
  • If you run tests with LOTS of data - rollback will take a loooong time
  • You're introducing "context" into your running code - thus changing is runtime behavior, even if ever so slightly
  • If you have components that require new transactions or do not support transactions you can't use this technology
So how does he do it? he restores the database every time. Costly? yes - but less expensive than the other way and the weaknesses just listed won't happen. But more importantly - why is this big difference in opinion happening? why do these rollbacks seem perfectly natural to me and so unnatural and irrelevant to him? Its because we're doing the testing in different ways of thinking. Clemens is testing scalability issues and integration issues in a much more fierce manner than I have ever though about doing. I guess it comes with the territory. Personally - I never needed such tests. What would be required to test load balancing, scalability and perf issues?
  • Multi threaded testing
  • Repeated - long running, large data volume tests
  • lots of interaction in the DB for DALs
My tests look nothing like this. I support the approach that when you test something you test it solely for its own functionality and nothing else. for example - an object that is supposed to behave in a specific way with other objects might be tested using mock objects to verify that it works fine. A DAL will be tested for the simple functionality it has, without multiple threads testing it. I know that it works. If I get a scenario that fails it - *then* I'd test the harder stuff. here are pointers from my testing needs:
  • they should run as fast as possible so that you can run them all the time. all of them.
  • they should test individual object functionality - often using mock objects and interfaces
  • Against the database I will test the simplest functionality until I need something bigger. Scalability testing does enter this field until I *need* scalability. KISS principle.
So - what's the big deal? we're  both working on the same direction - on different paths. I do suspect a time will come when I will need to get into hardcore perf and scalability testing. I know Rollback won't help me then. But being able to restore a database easily will.
Hopefully - both of these will be available via attributes in my unit tests. It's possible even today - with a little effort.

Read: Unit Testing scalability and performance

Topic: Solving Business Problems with SQL Server 2005 Data Mining Previous Topic   Next Topic Topic: ProClarity for Microsoft SharePoint Portal Server

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use