VMware Cloud Community
reedw
Contributor
Contributor

QA Software Process

Looking for some feedback on how other people are managing VM's with the same problem I am having.

We have an offsite developer creating builds of a product we give to our customers.  We need better testing so we are starting to use our vCenter with one Datacenter definition (not using clusters) and with one template for each architecture (x86 / 64) and OS version needs to be tested.  So the product needs the following OS.....


Win 7 32 bit

Win 7 64 bit

Win 8.1 32 bit

Win 8.1 64 bit

Server 2008

Server 2008 R2

Server 2012 R2


So the process I have so far is archive each of the past versions to keep for archiving, then create 7 VM's from the above templates.  I then install software on each one and run through some test scripts.  Next I need some sort of way to test an upgrade path either using all 7 or maybe just 2 of the VM's.  This ends up creating too much overhead and time to get testing done, since I am not a QA guy but a developer who happens to manage our VM Server.  My main question is how do some of you guys accomplish this for maybe your testing dept or developers with testing.  Do you use Template like how I am or do you use snapshots or clone from a template....I am looking for the best way I can tackle this and save some time.  If there is another VMWare product (not vRealize, too expensive) that I can do some more automation that would be ok too.....


Thanks I am a developer first and learning the VM side has been quite a learning experience!  please help :smileygrin:  Thanks in advance.

0 Kudos
2 Replies
kermic
Expert
Expert

Hey reedw,

Looks to me that one option (without buying / implementing additional products) might be:

1) deploy the kit of all VMs from template

2) create a snapshot on all VMs (probably should do this while VMs are powered off, could script this to make your life easier)

3) do your testing. In case if anything goes wrong, you can always revert to the initial "clean" snapshot, which should be a lot faster than cloning from template again (this also could be scripted so that you revert all VMs to clean state)

4) when testing finished and you need to archive the post-test state you can either clone the kit of VMs to archive location or use any VM backup software (VDP f.x. if you have Essentials+ or higher vSphere license). Backup would dedupe and compress the data thus consuming less space.

5) revert all kit VMs back to clean state snapshot for next tests (again, should script most likely so that you don't forget any)

in case anything goes wrong with your working kit, deploy a new one from template.

whenever you need to test upgrades, restore the kit with installed old version from backup, create snapshot and go through upgrade testing process.

If all your 7 VMs always need to be used together, some things can be made easier by using a vApp - cloning and powering on/off. Unfortunately in "naked" vSphere you can't create a snapshot on vApp. Linked clones sound like a really good idea for your needs, however I'm hesitating to name any VMware products that do this now, have been away from licensing for a while.

Another option might be searching for snapshot / cloning / provisioning options on your storage array, however availability of this depends heavily on array vendor / model you use.

hope this helps!

0 Kudos
reedw
Contributor
Contributor

Thank you so much for the insightful response!  I appreciate all the time you put in to write up that post. 

Where can I learn about scripting to vCenter?  Would it be the VIX API documentation?

I only have a vCenter Essentials license.

All my vm's dont need to be used together per say but they all could be in a vApp to make deployment faster from templates or creating

0 Kudos