Mobile Linux

Our second case study focused on one variant of Mobile Linux. The platform, which contained basic smartphone features, was built by one of the industrial partners and is not publicly available. Our case study focused on one application in the platform: The Media Player. Test automation was limited to running the application on an emulator. A detailed report about the case study can be found in the following paper: Model-based GUI testing of smartphone applications: Case S60 and Linux


Modeling the media player introduced a new challenge: real-time features. When a video clip or a sound file is played, the state of the application will automatically change later when the file ends. A similar case had already been faced with the Voice Recorder application in S60, but in that case, we simply waited until the clip finished before executing any new actions from the model. In the Media Player case, such approach would limit the features that could be tested (fast forwarding, pausing, rewinding, ...) too much. Instead, we used the ability to utilize python code in the model transitions: when the playback was launched, a timestamp was saved to a python variable. Before executing any actions after launching a media clip, the timestamp, the length of the clip and present time was used to check what the current status of the playback was. The approach resulted in somewhat complicated refinement machines, but was still manageable. In many other modeling approaches, modeling such features would not have been possible.

The test automation in the Linux case was based on the Accessibility technologies. Accessibility, originally designed to help blind people in using GUIs, allows viewing the properties of GUI objects and injecting various GUI events through an API, which compared with the S60 case proved to be more reliable. The test automation works with any Linux environment that supports AT-SPI technology, such as GNOME. The tool uses pyatspi library ( to access the AT-SPI information. The test automation tool is available in our release package.