Nokia
The world's largest manufacturer of mobile telephones.
Overview
Assisted in the design, development and support of a test framework to exercise the software servers within mobile phones attached to a computer.
Technical Details
The .NET based class framework allowed
junior developers to rapidly produce tests to exercise Nokia series 40
(and to a lesser extent series 60) phones. The latter prove harder to
test as much of their functionality is controlled via functional
interfaces that are difficult to call from outside the phone, the
former make much greater use of message based interfaces that can be
called from a PC. The department this system was developed for
specialised in multi-media applications (Camera, Music and Voice
Recognition and Recording) but other groups (such as USB development)
also quickly picked up on its functionality, with the system eventually
being rolled out across the corporation. The tests produced were
packaged into a library ready for execution within a test environment.
A
major contributor to the ease of developing tests was the ability to
rapidly build messages to be sent to the target phone. Within the .NET
framework these messages were represented as classes. As there are
hundreds of messages that can be sent to a phone a tool was developed
that ingested .PMD files (that describe the messages a phone
understands) and produced the appropriate C# or Visual Basic classes
via the CodeDOM.
A system service monitored specified
directories for command xml files to appear that would cause the
service to go off and automatically flash a phone with the specified
software release. Once flashed the service would run a set of tests (as
described earlier). Once complete the results were emailed to the
appropriate individuals (as specified within the xml file).
The development of FFT
based audio and image comparison mechanisms permitted the
possibility of automating what were previously considered to be manual
tests – for example the testing of audio quality, detection of
corrupted photos, etc. To this end a prototype based around
the
Windows Workflow Foundation was produced that would allow test
developers to record a series of keystroked on the phone and at
appropriate stages take a snapshot of the display to determine,
via OCR,
if the phone had reached the expected destination. If so further
actions could be taken such as recording audio or extracting a photo
from the phone and these media files examined for differences from what
was expected. The prototype relied on the developer dragging actions,
such as keyboard playback, start recording audio, grab snapshot of
phone display, etc. on to the worksheet. Whilst constructing the work
flow they could toggle recording of key strokes on the phone via a tool
bar, or alternatively record the keystrokes at a later date once the
work flow was constructed.