Building out your own device farm
why invest in a local device farm when cloud solutions are widely available? The short answer: it is worth it.
Why a device farm?
The question we heard most often: why invest in a local device farm when cloud solutions are widely available? The short answer: it is worth it. Smaller companies often work with limited budgets, and a local device farm allows them to make a one-time investment while maintaining both the volume and, more importantly, the quality of their tests.
The longer answer is more specific: with proper research and analysis, you can run a solid device pool on a modest budget and save many hours of manual testing. Building an in-house farm does not exclude using cloud platforms such as Sauce Labs, BrowserStack, or AWS Device Farm. See it as an extra building block: both technologies complement each other.
The local device farm provides faster feedback and makes the application visible and tangible. The cloud platform, on the other hand, makes it easier to cover more exotic configurations and extends the overall reach of your tests.
Targeted setup
Your project largely determines how you set up your device farm. If you want to keep costs under control, it is essential to focus on the most popular devices used by your target audience. In addition, the intended usage defines your operating model: will you support a single specific application on each device, or multiple?
Building a device farm comes with some interesting challenges. First, the size of your farm affects complexity, although you can start small with just two devices and a host machine. Second, the configuration learning curve is quite steep initially. Once you are familiar with it, however, you know your chosen setup inside out. Finally, fine-tuning the configuration and adding stability are the last technical hurdles to creating a maintainable and reliable device farm.
Devide and conquer
After successfully setting up the technical foundation, we explored how to extend the solution. We implemented a dedicated queuing system on the farm, enabling multiple projects to use the same infrastructure efficiently.
Another key improvement was the ability to segment devices in two ways. First, we created device groups and assigned specific devices to each group - for example, a group containing “devices from before 2020.” Second, we could group devices by operating system version, such as a set dedicated to iOS 14.
Playing with technologies
All of the above also required custom code to run smoothly. To orchestrate the interaction between all technologies, Refleqt developed a Jenkins plug-in that controls the device farm service and passes commands to Appium, which then executes the tests on the applications.
Our node agent was a Mac Mini. We configured this agent so that adding additional node agents or mobile devices to the device farm became straightforward.
This setup keeps the farm highly flexible, allows us to adapt it to each customer’s needs, and enables us to detect and resolve bugs efficiently.
In doing so, Refleqt showcased its testing expertise and brought a local, personalized device farm to life.
Milan Meuleman
Business development & sales
Contact Refleqt today
Would you like more control over software quality, test automation, or performance? We are happy to explore together how we can support your team with an approach that works in practice.