Using Time Machine for test environment rollback for Mac platform - macos

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".

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.

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.

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.

Related

Does MonoTouch work on a virtualized Mac OS?

Is it possible to install it on VirtualBox or other virtualization solution? If yes, how fast it works?
I don't see any problem running MonoTouch frameworks/IDEs in a virtualized Mac.
I can expect a lot of problems transferring across the USB cable the compiled applications to a real iPhone/iPad to test it. iTunes and XCode tend to be very picky about the configurations.
Buying a cheapest Mac might be easier and less costly if you consider the time you might waste, but your mileage may vary.
The evaluation version of MonoTouch will run, but the SDK tools used on the production version wont.
We were able to develop and deploy apps to real devices under VMWare Player and WMWare workstation. The problem we have is MonoTouch activations. It would activate and randomly need reactivation. It would work for a while then it would fail to activate.
Each time it failed we would need to contact support and reset the key so we could continue working. They do not support virtualized hardware and do not plan to fix the activation issue.
In the end we purchased real hardware.
Via VMWare Workstation I have it running quite nicely. Installing apps to iOS devices is fine, but creating a network for softdebug to find the iphone (or vice versa) is the only problem I've seen.
I'm trying to figure that out right now - I'll try and update this thread with the solution.

Can I use an Mac Mini Snow Leopard Server as a development machine for multiple people?

We are a Microsoft shop with C++ experience looking to get into some iPhone/iPad development.
Before we make a large investment in individual development machines, we would like to test our abilities with a modest investment.
Can we use one Mac Mini Snow Leopard Server as a development machine for 2-3 concurrent users? We would want them to remote from their PCs into the Mac Mini server and develop remotely.
Is this possible?
It sounds like you're about to break Joel's "Don't torture your developers" rule.
Skimping on hardware is a good way to waste expensive developer time, which will lead to unhappy developers and failed projects.
Since a Mac with a Windows license can be turned into a Windows development machine, you could buy Macs instead of generic Windows PCs as your existing development hardware hits its replacement dates, and have the flexibility to do either Windows or Mac development.
I think it's worth re-evaluating this initiative as to whether there's enough commitment behind it to make it succeed.
Not out of the box. Mac OS X server is not designed for multiple concurrent desktop access users like a Windows Terminal Server. Edit Here is a product that will do that. http://www.aquaconnect.net/
The Mac Mini is not any major power house either. Emulating the iPhone would not be feasible either since (at last I knew) all Mac Mini's were dual core.
That is a very interesting question which I do not know the answer to, but I will still be cheeky and post a reply. The cheapest Mac Mini is $599 and Mac OS X Server costs $499 so it might be worth just buying two Mac Minis for an additional cost of $100.
I do hope someone here has experience of a similar setup to what you have in mind.
A Mac Mini isn't enough oomph to do that; it's basically a low-end laptop, after all. You could do it with aquaconnect and an XServe, but it might be cheaper just to buy some KVMs and a few Mac Minis and give the developers one each.

How to create a LIVE CD for an Application

There are Live CDs that boot up an OS and allow you to use it without installation.
I was wondering if there is an easy way to customize a Live CD so that it only loads what is necessary to run one application, and runs that application.
With Ubuntu I used the Ubuntu Customization Kit to customize an Ubuntu Live CD that loaded the stuff I needed by default in my computer.
For some values of "easy way" yes, but in most cases no.
If the required OS is Windows, you'll find a lot of information if you check out BartPE. You'll have licensing problems if you don't understand that you can't distribute windows OS, even on a livecd, without MS licenses for each copy.
Linux livecds are a little more complex to create, but there are many people making the process easier, http://www.linux-live.org/ is a great resource to get started.
-Adam
That depends what you mean by "easy way". If you're comfortable installing and administering an OS to be secure and stable, you shouldn't have much trouble creating a LiveCD for that OS with the software you need installed and auto-running. Much more detail depends very much on the OS and type of application you're trying to run.

Is there something like Microsoft's TechNet or MSDN subcriptions for Apple?

I would like to test software designed to run on a Mac and would need a couple of OS versions (old ones, too) and maybe other Mac software to set up my (virtual) test machines.
For the same scenario on Windows, I can use the licenses available via TechNet or MSDN subscriptions. At the ADC Mac Dev Center, I couldn't find any specific information as to what is available. Does an ADC membership get me downloads of software / OS's to test against? If not, what is available?
Bear in mind that I don't believe any version of Mac OS (barring OS X Server) is licensed for use in a VM. In theory, if you want to test different versions of the OS you'll need to do either multiple installs on a single system (My first iMac came with OS 9 and OS X installed this way, not sure you could get multiple OS X versions installed on a single box) or have lots of boxes.
Yes it does. You can download the operating systems as well as betas (although not as early as "proper" beta testers).

Test a site in Mac Firefox

I need to test a site with a dynamic menu in Mac Firefox, but I'm running in Windows. A simple browsershot.com test won't help; I need to actually use the site.
How can I acquire a method of doing Mac emulation without physically having a Mac? Is there some kind of remote VM product out there?
We use BrowserCam for exactly that.
I realize that the original question asked for a virtual solution, however, as of this time there isn't a legal way to emulate a Mac on non-Apple hardware.
A service like BrowserCam is the best bet if you are entirely opposed to purchasing a Mac. Remote access from BrowserCam is about $400 a year and they have cheaper packages that may suit.
Depending on how often (and on what browsers/platforms) you need to test, you may want to consider purchasing a Mac Mini. A refurbished Mini runs between $500 and $600 and may be cheaper over the long run.
If cross-platform testing is central to your company's business, a full size Intel-based Mac running both OS X and Windows (with Parallels, BootCamp or VMWare) for testing may be a better option.
Check out the OSx86 Project. I've used this before, it works quite well and is pretty easy to understand.

Resources