Testing open mobile alliance server payload on an open mobile alliance client simulator

An Open Mobile Alliance client mobile communication device simulator. A computer system comprising at least one processor and a memory, an application, when executed by the processor, sets up a configuration file for a simulated device, retrieves test conditions for device capabilities to be configured on the device from a data store, builds an expected test result file in an Open Mobile Alliance tree structure with tree node set up with device settings and leaf node with device setting values, sends a request to the Open Mobile Alliance Device Management server for initiating the device configuration, receives an extensible markup language payload from the Open Mobile Alliance Device Management server for a mobile communication device, processes contents of the extensible markup language payload, and builds a test file in the form of an Open Mobile Alliance tree structure wherein the contents of the test file resides in memory contiguously.

CROSS-REFERENCE TO RELATED APPLICATIONS

Not applicable.

REFERENCE TO A MICROFICHE APPENDIX

Not applicable.

BACKGROUND

Device management for a mobile communication device may consist of several functions where the mobile communication device is provisioned and/or configured for software updates or feature updates during or after first time use of the device. Device management may be performed over the air using the Open Mobile Alliance (OMA) Device Management protocol which is a standard in mobile communication device management that many original equipment manufacturers (OEM) and wireless carriers adopt. Wireless carriers conduct testing of mobile communication devices that may or may not yet be released into the market place by the original equipment manufacturers (OEM) and part of the testing includes the device management aspects for a device.

SUMMARY

In an embodiment, an Open Mobile Alliance client simulator is disclosed. It comprises a computer system comprising at least one processor and a memory, an application stored in the memory that, when executed by the processor, sets up a configuration file for a mobile communication device, retrieves test conditions and device capabilities to be configured on the device from a data store; builds an expected test result file in an Open Mobile Alliance tree structure with tree node set up with device settings and leaf node with device setting values. It then sends a request to the Open Mobile Alliance Device Management server for initiating the mobile communication device configuration and receives an extensible markup language payload from the Open Mobile Alliance Device Management server for a mobile communication device. It then processes contents of the extensible markup language payload and builds a test file in the form of an Open Mobile Alliance tree structure with tree node set with mobile communication device settings and leaf node with mobile communication device setting values wherein the contents of the test file resides in memory contiguously.

In another embodiment, a method of simulating an Open Mobile Alliance Client, comprising, setting up a configuration file for a mobile communication device, retrieving test conditions and device capabilities to be configured on the device from a data store, building an expected test result file in an Open Mobile Alliance tree structure with tree node set up with device settings and leaf node with device setting values, sending a request to the Open Mobile Alliance Device Management server for initiating the mobile communication device configuration, receiving an extensible markup language payload from the Open Mobile Alliance Device Management server for a mobile communication device and processing contents of the extensible markup language payload and building a test file in the form of an Open Mobile Alliance tree structure with tree node set with device settings and leaf node with device setting values wherein the contents of the test file resides in memory contiguously, comparing the contents of the test file with the expected test results file and determining the passing or failing of tests based on the comparison.

In another embodiment, a method of validating simulation results, comprising building an expected test result file in an Open Mobile Alliance tree structure with tree node set up with device settings and leaf node with device setting values, sending a request to the Open Mobile Alliance Device Management server for initiating the device configuration, receiving an extensible markup language payload from the Open Mobile Alliance Device Management server for a mobile communication device, processing contents of the extensible markup language payload and building a test file in the form of an Open Mobile Alliance tree structure with tree node set with mobile communication device settings and leaf node with mobile communication device setting values wherein the contents of the test file resides in memory contiguously, validating the contents of the test file against the expected test result file to ascertain if the test file contains the same tree nodes set with device settings as the expected test result file and the leaf node set with device setting values as the expected test result file, presenting results of passing or failure of test conditions.

DETAILED DESCRIPTION

When a new mobile communication device is released into the market place, a wireless carrier may conduct tests in order to verify proper functioning of the mobile communication device on the wireless carrier's server. A portion of the tests include testing the device management aspects of the mobile communication device. It is important that a wireless carrier's sever be versatile enough to manage mobile communication devices of differing hardware and software capabilities without causing a partial or system wide failure of the carrier's systems caused by the introduction of a new and unproven device to the carrier's wireless network. To prevent such a failure, wireless carriers often introduce new communication devices into a simulated server environment to test for any unforeseen consequences caused by the introduction of new and fully developed devices prior to the devices' release date. This allows the carrier to simulate the interaction between two known systems without risk of corruption to the wireless carrier's overall system. This technique follows a typical simulation routine in that the functionality between two or more known systems is tested to determine cross-compatibility between the two or more systems. For example, the systems being tested might be a known system A (e.g., the carrier's server) and a known system B (e.g., a fully developed communication device).

There are, however, circumstances where wireless carriers do not have access to a mobile communication device that is fully developed and the final hardware version of the device is not yet available for direct testing by the wireless carrier. Instead, the hardware manufacturer may provide the carrier with only basic operating parameters and capabilities of the mobile communication device. Because the wireless carrier may be facing a relatively short time frame between having access to the fully developed device and the mobile communication device's eventual release date it would be useful for the wireless carrier to have the capability of testing the currently known parameters of the communication device against the carrier's wireless server. The system being described herein differs from other techniques used in the industry in that it tests a first known system, the wireless carrier's server, against the effects of the introduction of an unknown system (i.e., a communication device which may still be under development).

This disclosure describes systems and methods focused towards testing the ability of the wireless carrier's server to effectively manage a wide array of devices. This mobile communication device management testing is enabled by the Open Mobile Alliance client on a mobile communication device interacting with an Open Mobile Alliance Device Management (OMA DM) server where the client on the device may initiate a request using the Open Mobile Alliance Device Management protocol to start the process of device management. Then the server initiates communication with the mobile communication device and issues commands by exchanging messages with the mobile communication device using an extensible markup language (XML) payload patterned on the Open Mobile Alliance tree structure. The Open Mobile Alliance tree structure is a hierarchical structure with interior tree nodes and leaf nodes of the tree where the nodes may associate to the device settings and the leaf nodes may contain a value of the device setting. The mobile communication device is configured when it processes the extensible markup language (XML) payload structured in accord with the form of the Open Mobile Alliance tree, responds to the commands issued by the Open Mobile Alliance Device Management server in the extensible markup language (XML) payload by setting the values for device settings in the appropriate location of the device. It is to be noted that the device setting on the mobile communication device is based on the values in the Open Mobile Alliance tree structure but the actual tree structure does not exist in a contiguous state in the memory of the device.

As stated above when mobile communication devices are not available in the market place or when they are released for testing just before launch of a device, testing the Open Mobile Alliance Device Management server becomes problematic in that the wireless carrier might not have access to the yet unreleased hardware to perform a complete server to device system test. In addition, testing various models of a mobile communication device from different original equipment manufacturers with different hardware and firmware and testing each of the client interaction codes with the Open Mobile Alliance Device Management server is expensive and time consuming. The present disclosure teaches building a simulator that simulates a mobile communication device and tests the Open Mobile Alliance Device Management server against the simulated mobile communication device. The simulator's functions are based on utilizing a database which contains the operating parameters of multiple physical devices and then evaluating the simulated mobile communication devices' interaction with the Open Mobile Alliance Device Management server thereby creating a common code that may simulate any model of the device manufactured by any original equipment manufacturer in any chosen configuration. This facilitates early development and testing of server side code and may bypass limitations in testing with a device that is not yet available.

A configuration file may be present on the simulator to describe or specify the device or a plurality of devices being simulated. The Open Mobile Alliance client code that is developed for the simulated mobile communication device may be made available on the simulator, and the simulator may also retrieve test data from a data store containing test conditions and device capabilities. The simulator may use the data store to publish test results. The simulator may then construct a file modeling the expected result of the Open Mobile Alliance Tree that configures the device for various device capabilities defined in the data store. The simulator may then make a request to the Open Mobile Alliance Device Management server to start the device management process. The Open Mobile Alliance Device Management server may respond by transmitting an extensible markup language (XML) payload. The simulator then processes the payload and may build a test file based on the Open Mobile Alliance Device Management tree structure. The simulator may then compare the expected result file with the test file built from the payload returned from the server. The validation of the test results is to ensure that the node setting in the expected result file is the same as the node setting in the test file that is built from the returned payload from the Open Mobile Alliance Device Management server.

For example, if a HTC X device is to be configured by an Open Mobile Alliance payload as a personal hotspot, the device mobile equipment identifier, encryption mechanism and model number for the HTC X may be written in the configuration file. In addition, the test conditions along with the mobile communication device capability, in this case, personal hotspot and the related parameters that need to be simulated for the personal hotspot on a HTC, may be available in the data store. The simulator then builds an expected test result file in the form of an Open Mobile Alliance tree with nodes that contain the device setting for a personal hotspot, for example, user id and a related leaf node containing the value of the user ID.

It should be noted that no Open Mobile Alliance tree is created on the actual, production mobile communication device during the course of an OMA DM update of the device. This expected test result file may be constructed until all the parameters for the personal hotspot are set as device settings and device setting values in appropriate nodes. This is stored in the simulator in internal memory or file memory. The simulator then initiates a connection with the Open Mobile Alliance Device Management server and appears to the server as an actual HTC device. The Open Mobile Alliance Device Management server then retrieves the extensible markup language (XML) payload corresponding to the connected HTC device and sends it to the simulator. The simulator then processes the payload and builds a test file with the payload in the form of an Open Mobile Alliance tree structure and stores the test file in the memory of the simulator. This test file may be stored in internal memory or file memory of the simulator. The simulator may then start the validation process where the expected test result file and the test file built from the payload are compared. If each mobile communication device setting for the capability of the personal hotspot is found to be matching between the two files, the simulator updates status of the test with the successful result of the test in the data store.

There may be several instances during the testing process where the test may not be successfully completed due to a failure to connect to the Open Mobile Alliance Device Management Server or for some other reason. As a result, the simulator may then update the status of a test or tests as “no run” and may provide an appropriate reason for the failure in a table in the data store where test results may be stored.

The simulator may be configured to test and evaluate multiple mobile communication devices from different manufacturers for example, Galaxy and iPhone, for the same device capability. These tests may be run in a single test run and the validation between the multiple test files and the expected test result files may be evaluated concurrently. The configuration of the simulator is flexible to test interactions of the Open Mobile Alliance Device Management server with multiple capabilities on multiple mobile communication devices and in multiple mobile communication device configurations. It is to be noted that the devices may be new to the market or they may also be legacy devices. In cases of legacy mobile communication devices, the same method may be employed to test existing functionality (i.e., regression testing) if there have been updates to the Open Mobile Alliance Device Management server code since the mobile communication device was last provisioned.

The Open Mobile Alliance client simulator may simulate a mobile communication device comprising a mobile equipment identifier, model number and encryption mechanism singly or may be configured to read from a database containing a device list thereby running multiple tests simultaneously. The simulator may be scaled to handle multiple concurrent sessions with the Open Mobile Alliance Device Management server and the simulator code may coexist with the Open Mobile Alliance Device Management server code or may reside on a local network, wireless network, or other network. This portable code facilitates remote testing and testing on different network elements. The performance of the network (e.g., load testing) may be tested with these different configurations.

The simulator may be configured to handle differences in how each mobile communication device may interact with the Open Mobile Alliance Device Management server where a session with the Open Mobile Alliance Device Management server could be open for the length of the interaction with the server or when the session is opened and closed each time a capability is established on the device. For example, the simulated mobile communication device may initiate a first session with the Open Mobile Alliance Device Management server and exchange a first message and a second message and a third message with the Open Mobile Alliance Device Management server via the first session. After communication is complete, the first session may be ended. Alternately, the simulated mobile communication device may initiate a first session with the Open Mobile Alliance Device Management server, exchange a first message with the Open Mobile Alliance Device Management server, and end the first session. The simulated mobile communication device may then open a second session, exchange a second message with the Open Mobile Alliance Device Management server, and end the second session. The simulated mobile communication device may then open the third session with the Open Mobile Alliance Device Management server, exchange a third message with the Open Mobile Alliance Device Management server, and end the third session.

The simulator may also be used for load testing by invoking tests to the Open Mobile Alliance Device Management server which would simulate thousands of concurrent sessions or threads from the simulated mobile communication device to the server. This may depend on the scalability of architecture of the simulator. This may emulate a high load in the production environment where there may be hundreds of thousands of users who receive a firmware release to a mobile communication device that they may possess. Load testing for these conditions may be performed by configuring the simulator for many thousands of devices and testing the interaction of the Open Mobile Alliance Device management server.

The testing that may be accomplished with the simulator can span unit, integration, load and performance testing which may facilitate earlier release schedules of the device certification thereby saving the time and expense of testing new hardware or firmware against devices on an ad hoc basis. Overall automation of testing is also feasible with the simulator.

Turning now toFIG. 1a system100is disclosed. In an embodiment, the system100comprises a computer system40connected to a network16, an Open Alliance Device Management server (OMA DM)18comprising a plurality of XML Payloads32, and a test conditions data store26. The computer system40comprises a processor42, a memory44and an application46within the memory44of the computer system40.

The application46comprises a configuration file24, an expected test result file20and a test file22which is processed and built by the application46after reading a XML Payload32. Said in other words, the test file22may exist transiently in the memory44and/or in the application46, for example after it has been built during the execution of a test of the functionality of the Open Mobile Alliance Device Management server18and before it is deleted from the memory, in other words, after the pass/fail result of the test is determined. The application46interacts with the test conditions data store26which has the test conditions, device capabilities28and where test results are published in test results table30. In an embodiment, the application46simulates the Open Mobile Alliance client of a mobile communication device and tests the interaction with the Open Mobile Alliance Device Management server18for new mobile communication devices that are not yet available to the wireless carriers for testing.

The application46reads from the configuration file24, the new device parameters such as model number, mobile equipment identifier and the encryption mechanism that the device uses. These mobile communication device parameters may be obtained from an outside source (i.e., the specification associated with the device) and may be manually, or otherwise, inputted into the configuration file. The application46then retrieves the device capabilities28that are expected to be set by the interaction with the Open Mobile Alliance Device Management server18from the test conditions data store26. The application46builds an expected test result file20in the form of an Open Mobile Alliance Device Management tree with a node set with device settings and the leaf node set with any device setting value(s) that the device capabilities28may require. When the application46retrieves the mobile communication device capabilities28from the test conditions data store26, the end result is that there is at least one expected test result file20that is built and stored in the memory44of the computer system40. This may be stored in file memory or internal memory. There may be at least one test condition to run the application46based on which there may be one expected test result file20constructed by the application46. In addition, there may be at least one expected test result file20built for every different model of device in the configuration file24.

The application46then initiates connection with the Open Mobile Alliance Device Management server18and if the connection fails writes to the Test Results table30in the test conditions data store26, a ‘no run’ status and the reason for the failed attempt. This may be further analyzed and a fix for the root cause of the problem may be explored. When the connection from the application46to the Open Mobile Alliance Device Management server18is successful, the server sends an XML payload32containing the instructions for configuring the device that is being simulated. There may be at least one XML Payload32for each mobile communication device in the configuration file. The XML Payload32is then processed by the application46where the application46parses the payload to build a test file22according to the model of an Open Mobile Alliance tree structure. The application46may build the test file22where the device settings are in the tree node of the Open Mobile Alliance tree and the values of the device settings are in the leaf node of the Open Mobile Alliance tree structure. The test file22is built in the memory44of the computer system40and is available contiguously in the memory44. Said in other words, the test file22provides values of the OMA tree for the OMA DM operation commanded by the XML Payload32, and these values are stored in memory contiguously, unlike the corresponding values which might be stored in an actual mobile communication device responsive to an OMA DM operation. In the case of an actual mobile communication device, at least some of the values would be stored at separate storage locations within the mobile communication device and not all contiguously. It is understood that the test file22may exist in internal memory or file memory. After successful processing of the XML Payload32, there must be at least one expected test result file20that is stored in the memory of the application46.

The test file22may be built in the form of an Open Mobile Alliance tree structure with nodes and leaf nodes where the tree nodes may have the device settings and the leaf nodes may have the corresponding device setting values for configuring the mobile communication device that is being simulated. The application46then validates the test file22against the expected test result file20and compares the device setting on the node device setting values on the leaf node between the two files. This may be validated for each device capability that is to be enabled and configured on the computer system40. If there is a match between the two files for a mobile communication device capability, the application46may write a ‘pass’ (or other indication of a successful test) in the test results table30in the test conditions data store26. If there is no match between the two files for a device mobile communication capability, the application46may write a ‘fail’ (or other indication of an unsuccessful test) in the test results table30in the test conditions data store26.

In another embodiment, there may be multiple mobile communication devices which may be configured simultaneously in the configuration file24by the application46. The application46may execute one simulated mobile communication device at a time or execute all of the mobile communication devices concurrently. Multiple expected test result files20may be built for each different model or configuration of the simulated device. The XML payload32from the Open Mobile Alliance Device Management server18may be processed for each simulated mobile communication device and the test file22may be built for each simulated mobile communication device. The application46may run the validation of the corresponding set of expected test result file20against the test file22and may update the test results table30for each simulated mobile communication device.

The application46may exist on a computer system40. The computer system40may be coupled to the network16by a wired link or by a wireless link or may be ported on a local network or an enterprise network as needed. Performance of the network connectivity between the application46and the Open Mobile Alliance Device Management server18may be tested with multiple configurations of the application46. As stated above the system being tested is the Open Mobile Alliance Device Management server18. In addition, application46may be made scalable where the Open Mobile Alliance Device Management server18may be accessed in up to a thousand sessions, or some other number of sessions, thereby conducting load testing of the device and the server. The application46may also be configured for a legacy device and existing functionality may be tested with changes in the Open Mobile Alliance Device Management server if any. This assists with regression testing of Open Mobile Alliance server capabilities. With the test conditions data store, it is also possible to automate tests thereby allowing up to date data on a wide range of device and server behavior under different conditions. A successful simulation result is defined as a match between the expected test result file20and the test file22.

Turning now toFIG. 2, a method200is described. At block202, write to a configuration file for a simulated device with serial number, mobile equipment identifier and encryption mechanism for the device. At block204, retrieve test conditions for mobile communication device capabilities to be configured on the simulated mobile communication device from a data store. At block206, build an expected test result file in an Open Mobile Alliance tree structure with tree node set up with mobile communication device settings and leaf node with device setting values. At block208, send a request to the Open Mobile Alliance Device Management server for initiating the device configuration. At block210, receive an extensible markup language payload from the Open Mobile Alliance Device Management server for a mobile communication device. At block212, process contents of the extensible markup language payload and build a test file in the form of an Open Mobile Alliance tree structure with tree node set with device settings and leaf node with device setting values wherein the test file resides in memory contiguously. At block214, compare the contents of the test file with the expected test result file and determine the passing or failing of tests.

Turning now toFIG. 3, a method300is described. At block302, build an expected test result file in an Open Mobile Alliance tree structure with tree node set up with mobile communication device settings and leaf node with device setting values. At block304, send a request to the Open Mobile Alliance Device Management server for initiating the mobile communication device configuration. At block306, receive an extensible markup language payload from the Open Mobile Alliance Device Management server for a mobile communication device. At block308, process contents of the extensible markup language payload and build a test file in the form of an Open Mobile Alliance tree structure with tree node set with mobile communication device settings and leaf node with mobile communication device setting values wherein the test file resides in memory contiguously. At block310, validate the contents of the test file against the expected test result file to ascertain if the test file contains the same tree nodes set with device settings as the expected test result file and the leaf node set with device setting values as the expected test result file. At bock312, present results of passing or failure of test conditions.