views:

313

answers:

3

When I'm testing software I'm going to deploy or running through tests in the Windows world, I'll use VMWare images so that I can start from a fresh, known state at the beginning of each test. This has worked really well so that I can install software on different OS flavors or with other/different apps and drivers loaded. This makes it super simple to duplicate or nearly duplicate a customer's environment when addressing issues that crop up.

Now I'm tasked with doing something similar for Mac OS X. I'm far less familiar with this OS and didn't really see the same sort of thing available. I noted that the server version of 10.5 might allow this, but I'm not running that here. I've got access to 10.5 on a Mac Book and one of those Mac Minis.

Has anyone used Time Machine to put their test Mac box into a known state? Or do you have other ideas? I'm also interested in a solution for 10.4 since some of my customers run "Tiger".

+3  A: 

I tend to test things that don't manipulate the global computer state (i.e. a lot of well written Cocoa applications) with the "Guest" account. Since Tiger (I think), the effects of using this account are wiped at logout, so you can easily get a virgin environment again.

Adam Wright
didn't know the guest account worked like that. I'll have to keep it in mind.
Herms
Thanks for the info on the guest account. It is my understanding that under normal circumstances things clean up pretty well, though I saw (but haven't verified the statements made in) an article talking about how not everything 'guest' does necessarily is wiped at logout, namely things written to certain non-user directories, but that stuff is pretty esoteric and not really applicable for my well-behaved application. Appreciate the tip!
itsmatt
+3  A: 

By default, Time Machine excludes certain paths from backup. This could be detrimental to your testing strategy, depending on the system resources that your software touches. See this article for information on the exclusions. At a bare minimum, if you are going to use Time Machine to rollback, make sure nothing you are testing depends on any of the excluded files.

But, I think there is a better alternative, if you can live with Mac OS X Server: VMWare Fusion provides support for virtualizing instances of Mac OS X Server Leopard. Then you can use the same strategy you used for Windows.

From http://www.vmware.com/products/fusion/features.html

VMware Fusion boasts the most complete OS support, supporting more than 60 operating systems in a virtual machine, including Windows XP, Windows Vista, and even Mac OS X Server.

Keep in mind, you cannot virtualize Mac OS X Client due to license restrictions, though.

alanlcode
Yeah, knew that I couldn't virtualize the client stuff. Thanks for the info, though.
itsmatt
+1  A: 

An alternative (perhaps more lightweight) solution that I just found recently is an app called RooSwitch. It lets you swap configurations for an application. So you could have a bunch of different prefs files, cache files, etc for your app and create a named configuration for it. You can create multiple configurations to test new user setup, or to reproduce an issue using a customer's data without losing your own config. RooSwitch then lets you switch between all these different configs.

I haven't used it myself yet, but heard about it on a podcast recently and thought it sounded useful for my own development and testing.

Charles Gamble
Thanks for the info on RooSwitch, Charles, I'll be checking it out - and your iPhone apps too!
itsmatt