The applications build with beacon is used widely nowadays which offers a wide variety of opportunities, but there are more challenges when it comes to the testing team. Beacons are small, low of the cost, easily portable and pieces operated by a battery which can be easily attached to a wall. which uses Bluetooth connections to transmit data regularly. The beacon can be detected on any mobile devices which supports Bluetooth low energy and can detect other beacons nearby.
Low energy emitted by Bluetooth is used by beacons to broadcast signals which are gathered up by a compatible applications/OS. Transmit data over short distances by a network technology is known as Bluetooth low energy. The Devices physical location can be looked up over the internet or by triggering an action on the device such as a push notification.
Signals are transmitted as data packets with Bluetooth which all the devices are in range at an interval ranging from 10 ms to 10 seconds.This interval also impacts the battery life of the beacon. Shorter intervals result in the quicker discovery of devices but it means shorter battery life.
To test the beacon application, we followed the following steps:
1. Installed the App on multiple iOS/Android devices.
2. Logged in to the App on all the devices with different user IDs.
3. Placed beacons in different rooms (1 beacon per room) at 4 rooms of one geolocation and 2 rooms of another geolocation.
4. With iOS OR Android device move to a room.
5. Verified that the count of the attendee in that room is increased by 1.
6. Moved out of that room.
7. Verified that the count of the attendee in that room is decreased by 1.
8. Moved into one room with both iOS and Android device.
9. Verified that the count of the attendee in that room is increased by 2.
10. Moved out of that room.
11. Verified that the count of the attendee in that room is decreased by 2.
12. A user with different User Id enters different rooms at different Geo-Locations.
13. Verified that the count of the attendee in each room is increased by 1.
Challenges in Testing:
Testing a beacon based application
Well, testing a beacon based application is not as straightforward as testing any other application. There were many obstacles which we faced while testing this application. Below I have jotted down a few of those:
1. The range of Beacons: Important features of Beacons is Ranging; Beacons generate the signals are responsible for searching any compatible devices in range. This is an issue faced often that the detection of devices are not consistent and sometimes even when the iOS/Android device was in a range of the beacon it was not detected by the beacon. It happened many times that the range was changed from ‘Near’ to ‘Far’ even when the beacon and mobile devices were placed closed to each other.
2. Battery Drainage: Battery drainage was another issue that we faced during testing. When the application was running on the devices, the battery drainage varied from 14%-19%. However, the drainage problem in Android was slightly lower as compared to iOS devices.
3. Internet connectivity: This is another challenge that we faced. If the internet is disconnected for a fraction of a second, then the application will not respond and the record of the person will not be updated. Once the internet connection is reestablished, then the application will start running again and then only it will send the information to the server to reflect the user count.
4. Placement of Beacon: Well, placement of the beacon is very important in testing any app which is based on beacon technology. Because even If the beacon range is good and there is some obstacle between the beacon and the mobile device, then the detection of the mobile device can be a problem. We saw this frequently during our testing.
5. Multiple Geo-Location verifications: it was quite a challenge to test the application at other geolocations, as the entire team was in one geolocation, and for this, we requested our stakeholders to install the app on their mobile devices and use the same from other geolocation simultaneously.
Like other applications, our application also has certain prerequisites as follows:
1. Location services should always be up and running.
2. Internet connectivity should be on always.
3. Bluetooth should always be On on the mobile device.
4. The app should be running on mobile device.
QA Best practices
1. To overcome the beacon ranging issue, the QA team, in coordination with the dev team, started the ranging as soon as monitoring started and the method to stop ranging was set not to be called ever.
2. The app should be run in the background to reduce battery drainage, and more the beacon ranging time is set in settings, lesser will be the battery drainage.
3. Internet connectivity issue can be overcome by a high-speed regular internet connection, which can cover the mobile device in an entire company’s location.
4. Beacons should be fixed on the wall or roof of the rooms so that there will be no obstacles between them and mobile devices.
5. We can use the Android SDK to send mock GPS information to a real device, For multiple geolocation testing. The Android SDK theoretically allows us to do so.
Thus we have seen about how to test and challenges faced during beacon testing, At Mallow technologies, we have successfully implemented the applications with the help of beacons and faced and overcame the challenges while testing.