Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to test a program against a particular device without having the device?

I was wondering if there is any solution to test a hardware-dependent software against a particular device.

For example consider a program which depends on Bluetooth or printer, using it through the OS APIs. How does developers deal with a situation when a users report that it does not work properly on a particular laptop model, if there is not enough debugging information available.

As another example, how can we know what paper sizes a specific printer supports without buying one and running a program on it to enumerate supported sizes.

Is there any way to simulate that device/driver or any service that provide the ability to test against that device?

like image 843
Mehrzad Chehraz Avatar asked Apr 22 '18 17:04

Mehrzad Chehraz


People also ask

How would you determine in which device to test an application?

When choosing a device for testing, you must consider the device's screen size, resolution, and other hardware parameters that may affect your app's performance. You should also check how much data and storage space your software uses. The processing speed of various devices has an impact on your app as well.

Which scenario can test only on real devices but not on an emulator?

Testing with real-world devices is very helpful in terms of interoperability testing. The emulator/simulators are not able to simulate the battery issues. Real-world devices can easily perform the same. The emulator/simulators are not able to simulate the incoming interrupts for SMS as well as the incoming calls.


1 Answers

Some things can be "emulated" others will force you to have at least the basic hardware so that later you could run a set of tests besides trying to code following standards, RFC's, etc. For example in the case of printers: https://www.rfc-editor.org/rfc/rfc7472 and cups-pdf, could help, but that will cover just the basics.

In some cases, the hardware is bought and co-located within a rack in a datacenter where later the developers access to it remotely by using a KVM over IP also known as ("spider").

If a specific feature/bug needs to be tested in a specific system, there are companies that could lease the hardware (Mac/PC/phones/tablets/etc) saving cost with this.

Besides shipping a "debug/report" tool could help in many cases to better diagnose the running system or catch/report issues if any.

For testing mobile devices you could use for example AWS Device Farm

like image 90
nbari Avatar answered Oct 12 '22 13:10

nbari