In addition to our large and constantly-growing inventory of mobile devices, we also maintain an extensive array of physical Windows and Macintosh computers, as well as the components and peripherals to support them. While we do employ virtual machine images from time to time, the demands of hardware compatibility testing require physical components, so our labs have grown up around this requirement. All our systems, both Macs and PCs, are able to be reimaged quickly to a desired baseline operating system, but we’ll discuss how we maintain operating system images in another article.
We currently have a combined inventory of over 100 PCs and Macs (in a roughly 75/25 split), including desktops, laptops, and all-in-ones.
These are just the systems that are routinely available, and don’t include test servers, individual non-testing systems, or boxes running our infrastructure. These systems span a considerable array of hardware going back as far as Core Duo Macs and Pentium IV PCs.
Over the years, we’ve endeavored to keep an inventory of at least the main flagship AMD and Intel CPUs (on the PC side of things) and most Mac system types (Minis, iMacs, MacBooks, etc.). We generally place less emphasis on both server CPUs and less-mainstream processor series (Celeron, Sempron, etc.), although we do keep a few examples available; most of our hardware diversity is arranged around consumer and small business systems. We generally make a point to stock OEM systems from a variety of manufacturers (although we end up with a fair amount of Dell hardware, regardless) so that our mix of components isn’t effectively homogeneous to one manufacturer.
While we acquire new mobile devices on what is essentially a quarterly basis, we’re a bit more sporadic about our system and component updates—this is mainly so that we can accommodate the kinds of specific hardware requests that come up with many compatibility testing projects. We prefer to maintain some budget and flexibility to accommodate specific project needs.
Whenever we make new acquisitions, it is with an eye toward adding capabilities not already present in our labs—different CPU models, specific memory or storage technologies, embedded (or just diverse) GPUs, etc. We’ll typically try and cover as many new features as possible when adding systems to our inventory, at least on the Windows side. Macs are usually more straightforward, although we try to maintain some diversity of hardware rather than just incremental improvements of the ever-popular MacBook Pro. Most of our lab systems tend to sit in the mid-end (or even low-end) range of their respective hardware generations. Rather than try and maintain an unrealistically large number of high-end computers, we prefer to upgrade individual systems to meet performance threshold (by adding RAM, video cards, etc.) for testing projects with demanding requirements. It is easier to build up than down, in general.
In addition to the systems themselves, we also maintain inventories of spare RAM, hard drives, power supplies, and video cards that can be used to reconfigure each system substantially (at least in principle; form factors and components always place some limits on what we can do). We prefer not to swap CPUs if we can avoid it, so we don’t usually have many loose CPUs and motherboards on our shelves. Some of these components are also used to replace failing parts (hey, it happens) or to build/rebuild new systems as well. Most of our hardware-swapping capabilities are built around the demands of PC compatibility testing. We typically see less demand for extensive Mac hardware compatibility testing due in part to the relatively small market share as well as the systems being increasing less-configurable by the end user.
This is only a very general overview of how our hardware labs are configured; please contact us if you have any questions or are interested in a more in-depth discussion of our specific capabilities or have questions about other software testing services we provide.