Patent Publication Number: US-10320650-B2

Title: Testing a network using a communication device

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     The present invention claims priority from U.S. Provisional Patent Application No. 61/877,518 filed Sep. 13, 2013, which is incorporated herein by reference. 
    
    
     TECHNICAL FIELD 
     The present invention relates to communication networks, and in particular to devices and methods for network testing. 
     BACKGROUND 
     Communications systems vary in performance depending on time and geographical location. To maintain service quality, communications providers perform network testing on an ongoing basis. Network tests can also be used to verify network installation and upgrades. 
     One traditional method of network testing is termed “drive testing”. A vehicle carrying testing equipment is driven through areas of a wireless communication service, and various parameters e.g. radio frequency (RF) signal strength, signal quality, etc., are continuously tested as the vehicle is driven across the coverage areas. The testing equipment carried around in the vehicle may include a cellular phone controlled by a computer to make and receive test calls, etc. 
     Due to cost and efficiency issues, the drive testing has been increasingly replaced by more sophisticated methods of testing engaging customers&#39; individual communication devices as test probes. A common drawback of such systems is that the measured network parameters may or may not be related to a direct end user experience with the communications network. Nowadays, end users increasingly use cell phones not only for phone communications, but also for application-based data communications e.g. instant messaging. Furthermore, processing power available in today&#39;s smartphones enables a variety of applications such as social networking, Internet browsing, mapping, photo and video sharing, etc. Accordingly, a perceived quality of a network service may not necessarily be related to quality of the phone calls as such, but also, and increasingly so, by the perceived quality of these additional services. The additional services are provided by specialized software programs, or “apps”, installed on the smartphones. 
     In one prior art test system, a Virtual Network Computing (VNC) interface has been used to control a remote smartphone for test purposes. The VNC interfaces are typically used to remotely control computer equipment. The VNC interface includes a “VNC server” and a “VNC client”. The VNC server is disposed on the computer to be remotely controlled. The function of the VNC server is to emulate the user input e.g. key presses, mouse moves, and so on. The VNC server also functions as a screen grabber, sending computer&#39;s screen images back to the remote user. The VNC client is disposed at the user location. The function of the VNC client is to receive the user input and communicate the user input to the remotely disposed VNC server for simulation of the user input on the remote computer. It may also re-display the grabbed images to the user. In this way, a work computer can be reached and operated from home, and vice versa. 
     Referring to  FIG. 1 , such a test system  100  may include a remote management module  102  and a smartphone  104 . The smartphone  104  has installed thereon a “target application”  106  and a VNC server  108 . The remote management module  102  includes a VNC client  110  and a memory store  112 . The remote management module  102  is configured to perform at least one automated operation of the target application  106  by sending a command  103  for the VNC server  108  to emulate a user action. One or more images of a target application graphical user interface are captured by the VNC server  108  and communicated via a VNC data link  109  to the VNC client  110 . The images are analyzed by the VNC client  110  at the remote management module  102  to obtain performance data of the target application  106 . The obtained performance data are stored in the memory store  112 . 
     One drawback of the test system  100  is that the VNC data link  109  may consume a considerable portion of available data transfer bandwidth of a cellular network being tested. Transmitting the captured smartphone screenshots may cause a considerable network load, both for the cellular network being tested, and for the smartphone  104  participating in the test. Another drawback is that the management module  102  may be overwhelmed with image processing analysis tasks of the screen captures from multiple individual smartphones  104 . These drawbacks effectively limit the number of smartphones that can participate simultaneously in the process of cellular network testing. 
     SUMMARY 
     In accordance with one embodiment, a VNC client is installed not on a remote test station but on a same communication device where the VNC server is installed. The communication between the remote test station and the VNC client may include compact scripts instead of screen captures and voice messages. As a result, the communication device e.g. a smartphone, becomes a self-contained, “smart” test unit. This allows the data bandwidth requirements of the data exchange between the communication device and the remote test station to be reduced. Furthermore, tasks of image processing may be offloaded from the processor of the remote test station to the processor of the communication device. The VNC interface provides interoperability with a broad variety of applications run on the communication device, e.g. smartphone “apps”. 
     In accordance with another embodiment, there is provided a test system for testing a network, the test system comprising a first communication device and a test station configured to perform a first test by sending a first command to the first communication device via the network to cause the first communication device to transmit or receive first data through the network; wherein the first communication device comprises: 
     an application controller configured to receive the first command from the test station, the application controller comprising a VNC client configured to generate user input data based on the first command; 
     a VNC server operationally coupled to the VNC client, configured to generate application input based on the user input data received by the VNC client; and 
     an application operationally coupled to the VNC server, configured cause the first communication device to transmit or receive the first data through the network based on the application input generated by the VNC server; 
     wherein the VNC server is configured to receive a response of the application upon transmitting or receiving the first data by the first communication device, and to generate application output data therefrom; 
     wherein the application controller is configured to process the application output data to obtain a result of the first test. 
     In one exemplary embodiment, the application controller is configured to send the result back to the test station via the network. 
     In accordance with another embodiment, there is further provided a communication device for use in a network test system comprising a test station configured to perform a first test by sending a first command to the first communication device via the network to cause the first communication device to transmit or receive first data through the network; the communication device comprising: 
     an application controller configured to receive the first command from the test station, the application controller comprising a VNC client configured to generate user input data based on the first command; 
     a VNC server operationally coupled to the VNC client, configured to generate application input based on the user input data received by the VNC client; and 
     an application operationally coupled to the VNC server, configured to cause the first communication device to transmit or receive the first data through the network based on the application input generated by the VNC server; 
     wherein the VNC server is configured to receive a response of the application upon transmitting or receiving the first data by the first communication device, and to generate application output data therefrom; and 
     wherein the application controller is configured to process the application output data to obtain a result of the first test. 
     In accordance with another embodiment, there is further provided a method for testing a network, the method comprising: 
     (a) providing a first communication device comprising an application controller comprising a VNC client, a VNC server operationally coupled to the VNC client, and an application operationally coupled to the VNC server; 
     (b) initiating a first test by sending a first command from a remote test station to the application controller, causing the VNC client to generate user input data based on the first command; 
     (c) causing the VNC server to generate application input based on the user input data received by the VNC client; 
     (d) causing the application to transmit or receive the first data through the network based on the application input generated by the VNC server; 
     (e) causing the VNC server to receive a response of the application upon transmitting or receiving the first data by the first communication device, and to generate application output data therefrom; and 
     (f) causing the VNC client to process the application output data, and causing the application controller to obtain a result of the first test. 
     In one embodiment, the method comprises communicating the first test result to the test station. By way of a non-limiting example, the result of the first test may include GPS information, signal strength, connection time, quality of audio signal, and service availability. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Exemplary embodiments will now be described in conjunction with the drawings, in which: 
         FIG. 1  illustrates a prior-art cellular network test system using a VNC interface for communicating test data; 
         FIG. 2  illustrates a network and a test system according to one embodiment; 
         FIG. 3  illustrates a block diagram of the test system of  FIG. 2 ; 
         FIG. 4  illustrates a block diagram of an exemplary embodiment of the test system of  FIG. 3 ; and 
         FIG. 5  illustrates a flow chart of a method for testing the cellular network of  FIG. 2  using the test system of  FIG. 3  or  FIG. 4 . 
     
    
    
     DETAILED DESCRIPTION 
     While the present teachings are described in conjunction with various embodiments and examples, it is not intended that the present teachings be limited to such embodiments. On the contrary, the present teachings encompass various alternatives and equivalents, as will be appreciated by those of skill in the art. 
     Referring to  FIG. 2 , a cellular network  200  may include a base station  202 , a plurality of RF towers  204  connected to the base station  202  via data links  206 , and a plurality of wireless communication devices  208 ,  208 A,  208 B including a first communication device  208 A and a second communication device  208 B. According to some embodiments, a test station  210  may be coupled to the base station  202 . The test station  210  may also be disposed remotely from the base station  202 . The test station  210  may be configured to perform a first test by sending a first command  211  to the first wireless communication device  208 A via the cellular network  200  to cause the first wireless communication device  208 A to transmit or receive first data  221  through the cellular network  200 . Networks other than the cellular network  200  may be tested as well. For example, a service running on a device connected via Wi-Fi or Ethernet on a fixed-line network may be tested. These and other communication networks may be tested using non-wireless, that is, cable-connected communication devices. 
     Referring to  FIG. 3 , the first wireless communication device  208 A is shown in detail. In the embodiment shown, the first wireless communication device  208 A may include an application controller  302  including a VNC client  304 , a VNC server  306  operationally coupled to the VNC client  304 , an application (“app”)  308 , e.g. Facebook™, Twitter™, Netflix™, Family Map™, Skype™, etc., is operationally coupled to the VNC server  306 , and a mobile operating system  310 , e.g. iOS™. The application controller  302  may be configured to receive the first command  211  from the test station  210 . The VNC client  304  may be configured to generate user input data  305 , e.g. buttons to be pressed, test voice messages or pointers to pre-recorded test voice messages, etc., based on the first command  211 . The VNC server  306  may be configured to generate application input  307 , that is, emulate pressing the buttons and playback of the test messages, etc., based on the user input data  305  received by the VNC client  304 . The application  308  may be configured to cause the first wireless communication device  208 A to transmit or receive the first data  221  through the cellular network  200  based on the application input  307  generated by the VNC server  306 . Thus, the test of the cellular network  200  may be initiated. 
     To evaluate a result  315  of sending or receiving the first data  221 , the VNC server  306  may be configured to receive a response  311  of the application  308 , for example, an output screen, a response voice or text message, etc., upon transmitting or receiving the first data  221  by the first wireless communication device  208 A. The VNC server  306  may be configured to generate application output data  313  from the application response  311 , for example a screen capture (screenshot), a text representation of the message, etc. The VNC client  304  and/or the application controller  302  may be configured to process the application output data  313 , enabling the application controller  302  to obtain the result  315  of the first test. The test result  315  may be communicated back to the test station  210  which has sent the first command  211 , or processed internally, e.g. to obtain response statistics. The test result  315  may include GPS information, signal strength, connection time, quality of audio signal, service availability, and the like. As noted above, the first communication device  208 A may be a wireless device or it may be connected to a terminal device of the network  200  via a cable. 
     The first wireless communication device  208 A may include a visual display, not shown. The application output data  313  may include a screenshot of the visual display. In this embodiment, the VNC client  304  may be configured to automatically determine a configuration of graphical items of the screenshot. The result of the first test may be evaluated by the application controller  302  from the configuration of the graphical items determined by the VNC client  304 . By way of another non-limiting example, the application output data  313  may include an audio signal, i.e. a voice signal, obtained from the received first data  221 . For this case, the result of the first test may include a quality parameter of the obtained audio signal. The application controller  302  may be configured to obtain a reception quality parameter based on the first data  221  received, and to send the reception quality parameter to the test station  210  via the cellular network  200 . 
     In one embodiment, the test station  210  may be configured to build a schedule to perform a series of tests of the cellular network  200  including the first test describe above. The first command  211  may include the schedule to be followed. The application controller  302  may be configured to receive the schedule and to perform the series of tests of the cellular network  200  based on the received schedule. 
     The tests may involve more than one wireless communication device  208 . Referring back to  FIG. 2 , the test station  210  may be configured to send a second command  212  to the second wireless communication device  208 B via the cellular network  200  to cause the second wireless communication device  208 B to transmit the first data  221  through the cellular network  200  to the first wireless communication device  208 A. The second wireless communication device  208 B may be configured to transmit the first data  221  through the cellular network  200  to the first wireless communication device  208 A upon receiving the second command  212  from the test station  210 . The wireless communication devices may include the test software portion, including the application controller  302 , the VNC client  304 , the VNC server  306 , pre-installed before distributing to end customers. 
     Turning to  FIG. 4  with further reference to  FIG. 3 , a wireless communication device  400  is similar to the first wireless communication device  208 A. One feature of the wireless communication device  400  is a specific implementation of the phone application controller (PAC)  302 . The PAC  402  may include a logistics module  402 , a script manager module  404 , and a reporter module  406 . The first command  211  may include instructions for the logistics module  402  to authorize remote access to the wireless communication device  400 , to configure the wireless communication device  400 , to provide licensing information, to provide software updates for the wireless communication device  400 , and the like. The script manager module  404  may receive schedules to perform various tests, as well as context data for these tests, e.g. indices to pre-recorded voice messages, phone numbers to call, etc. All this information may be included into the first command  211 . The reporter module  406  may analyze results of tests and condense the results into brief scripted reports, to save the bandwidth for transmission of the first test result  315 , as well as the processing power requirements for the test station  210 . Effectively, the test results may be pre-processed by the wireless communication device  400 , and/or the first  208 A and/or the second  208 B wireless communication devices. This may allow the test station  210  to save its own processing power for involving a larger number of the wireless communication devices  208  into tests of the cellular network  200 . 
     Referring now to  FIG. 5  with further reference to  FIGS. 2 and 3 , an exemplary method  500  e.g. for testing the cellular network  200  of  FIG. 2  using the test system  300  of  FIG. 3 , includes a step  502  of providing the first wireless communication device  208 A, e.g. a smartphone, having installed thereon the application controller  302  including the VNC client  304 , the VNC server  306  operationally coupled to the VNC client  304 , and the application  308  operationally coupled to the VNC server  306 , as explained above. The VNC client  304  and the VNC server  306  may be software applications installed on the first wireless communication device  208 A. 
     In a step  504 , the first test may be initiated by sending the first command  211  ( FIG. 3 ) from the remote test station  210  to the application controller  302 , causing the VNC client  304  to generate the user input data  305  in a step  506  ( FIG. 5 ). The user input data  305  may be based on the first command  211 . In a next step  508 , the VNC server may generate the application input  307 , e.g. key presses and voice messages, based on the user input data  305  received by the VNC client  304 . In a next step  510 , the application  308  transmits or receives the first data  221  through the cellular network  200 . The first data  221  may be based on the application input  307  generated by the VNC server  306 . For example, the application  308  may receive the first data  221  from the second wireless communication device  208 B, which has sent the first data  221  upon receiving the corresponding second command  212  ( FIG. 2 ) from the test station  210 , as explained above. The first data  221  may include instant messages, voice messages, text, a Web page, an image, and so on. 
     In a following step  512  of the method  500  ( FIG. 5 ), the VNC server  306  may receive the application response  311  ( FIG. 3 ) upon transmitting or receiving the first data  221  by the first wireless communication device  208 A, and may generate the application output data  313  from the application response  311 . In a next step  514 , the VNC client  304  may process the application output data  313 , and the application controller  302  may obtain the first test result  315  from the processed application output data  313 . For example, such results as quality of a phone call or a data connection, connection time, service availability, ping time, and the like may be obtained using known digital data processing methods. Finally, in an optional step  516 , the application controller  302  may report the first test result  315  to the test station  210 . The first command  322  and the first test result  315  may also be communicated via a wired communications link. Accordingly, the network being tested using the method  500  may generally include a non-wireless communications network, for instance a cable network, an optical network, and so on. 
     The method  500  allows one to obtain quality of service as used by end customers. The method  500  may be used to test end user service availability, service coverage, service performance, service conformance to specifications and agreements, service quality, service capacity, and the like. Phone-to-phone voice and SMS instant message tests, or phone to server tests may be performed. Standardized measurements as recommended by TS 102 250, IREG, GRQ and TADIG standards, may be performed. Furthermore, the test method  500  may also be used for lower-level tests such as RF coverage and network protocol tracing. Widely distributed measurement capacity and centralized control of which ones of the wireless communication device  208  participate in taking measurements enables the testing to be more systemic. A centralized data analysis platform with geo-mapping capability may be used to aggregate multiple measurements and study the results for optimization of radio access network (RAN) coverage. 
     In one embodiment, the application output data  313  may comprise a screenshot of the display of the first wireless communication device  208 A. The VNC client  304  may automatically determine a configuration of graphical items of the screenshot to determine the first test result  315  in the processing step  514 , based on possible graphical output of the application  308 , e.g. a button highlighted, a button not highlighted, an alarm message put on screen, etc., in accordance with a graphical user interface used by the application  308 . The application output data  313  may also include an audio signal obtained from the received first data  221 . For this embodiment, the processing step  514  may include evaluating a parameter of the audio signal, e.g. audio quality, jitter, echo, etc. The processing step  514  may be performed by the application controller  302  ( FIG. 3 ). 
     In an embodiment of the method  500  that involves two wireless communications devices  208 A and  208 B, the second command  212  is sent from the remote test station  210  to the second wireless communication device  208 B via the cellular network  200 , causing the second wireless communication device  208 B to transmit the first data  221  through the cellular network  200  to the first wireless communication device  208 A. 
     To streamline ongoing testing of the cellular network  200 , the method  500  may include a step  503  of building a schedule to for the first wireless communication device  208 A to perform a series of tests of the cellular network, not just one first test. When the schedule is created, it may be sent from the remote test station  210  to the first wireless communication device  208 A in the step  504 . When the schedule is received by the application controller  302  of the first wireless communication device  208 A, the application controller  302  may control the first wireless communication device  208 A to perform at least one of the series of tests in steps  506  to  514 . The test results may be analyzed in a step  515 . 
     The testing steps  504  to  514  of the method  500  may be periodically repeated to validate long-term performance of the cellular network  200 . When the testing steps  504  to  514  are repeated over a period of time, the processing step  514  of the method  500  may include analyzing a time dependence of the first test result  315 . The validation schedule may be generated and implemented on the remote test station  210 , or alternatively, when the validation schedule is received by the application controller  302 , the latter may initiate the periodic testing and accumulate/analyze test results locally, to save the bandwidth of the cellular network  200  and the processing power of the remote test station  210 . 
     The method  500  of  FIG. 5  may also be used for network update verification purposes. To that end, the testing steps  504  to  514  may be performed twice, before and after an upgrade of the cellular network  200  ( FIG. 2 ), and the quality parameter obtained in the steps  514  performed before and after the upgrade are compared to each other. 
     The hardware used to implement the various illustrative logics, logical blocks, modules, and circuits described in connection with the aspects disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor may be a microprocessor, but, in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. Alternatively, some steps or methods may be performed by circuitry that is specific to a given function. 
     The foregoing description of one or more embodiments has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the precise form disclosed. Many modifications and variations are possible in light of the above teaching.