WO2013088534A1 - クライアントからネットワークを介して携帯端末にアクセスするためのサーバ、方法、及び、コンピュータを該サーバとして機能させるプログラム - Google Patents

クライアントからネットワークを介して携帯端末にアクセスするためのサーバ、方法、及び、コンピュータを該サーバとして機能させるプログラム Download PDF

Info

Publication number
WO2013088534A1
WO2013088534A1 PCT/JP2011/078950 JP2011078950W WO2013088534A1 WO 2013088534 A1 WO2013088534 A1 WO 2013088534A1 JP 2011078950 W JP2011078950 W JP 2011078950W WO 2013088534 A1 WO2013088534 A1 WO 2013088534A1
Authority
WO
WIPO (PCT)
Prior art keywords
server
client
terminal
screen shot
portable
Prior art date
Application number
PCT/JP2011/078950
Other languages
English (en)
French (fr)
Inventor
武則 吉澤
優人 立花
山田 和弘
Original Assignee
株式会社ソニックス
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社ソニックス filed Critical 株式会社ソニックス
Priority to PCT/JP2011/078950 priority Critical patent/WO2013088534A1/ja
Priority to JP2013549006A priority patent/JP5959535B2/ja
Publication of WO2013088534A1 publication Critical patent/WO2013088534A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable

Definitions

  • the present invention relates to accessing a second device from a first device via a network. More particularly, the present invention relates to accessing a remote portable terminal via a network from a client of a user developing software of the portable terminal, and testing the behavior of software installed on the portable terminal. .
  • One of the important steps in software development is the step of testing the behavior when the software is actually operated on the target terminal.
  • the behavioral test of the software is all the types and operating systems targeted by the software. It is preferably done in a version.
  • a service called Keynote DeviceAnywhere has a limitation that dedicated software must be installed on a developer's terminal in order to access a remote portable terminal. This service can not be used from a processing terminal without dedicated software.
  • a service called Mobile Cloud is a service using a web browser to access a remote portable terminal.
  • this service there is a restriction that it must be a Web browser that can use Flash plug-in.
  • This service is, of course, not available to Web browsers that can not use Flash plug-ins.
  • One embodiment of the present invention is a server for a client to access one or more mobile terminals via a network.
  • the client is connected to the server via the network.
  • the server is connected to the one or more mobile terminals.
  • Each of the one or more mobile terminals includes display means for displaying information, and is configured to send a screen shot to the server when an instruction is received.
  • the screen shot represents the information displayed on the display means.
  • the server comprises first means for sending one or more HTML files to the client.
  • the one or more HTML files are selected as a character string that causes the client to display a first area for selecting one of the one or more portable terminals when interpreted by the client.
  • a character string for sending the terminal ID indicating the mobile terminal to the server, a character string for displaying the screen shot when the screen shot is received, and an input to the one or more mobile terminals A character string for displaying the second area, a character string for converting the received input into a command for the one or more portable terminals, and a character string for sending the command for the one or more portable terminals to the server And contains.
  • the server also comprises one or more second means.
  • Each of the one or more second means is associated with each of the one or more portable terminals, each of the one or more second means sends the indication to the associated portable terminal, the one or more second means. It is configured to send the command to the associated mobile terminal when the command for the mobile terminal is received.
  • the server when the server receives the screen shot from the portable terminal indicated by the terminal ID received by the server, the server sends the screen shot to the client, and the server receives the screen shot from the one or more portable terminals.
  • the server receives the command, the command is sent to the second means associated with the portable terminal indicated by the terminal ID received by the server among the one or more second means. It has the means.
  • the one or more HTML files may further include a string that, when interpreted by the client, causes the client to establish a two-way connection with the computer using a protocol.
  • the server is configured to interpret the protocol. Through the connection, the terminal ID, the screen shot and the command can be sent and received between the client and the server.
  • the server may further include fourth means for converting the screen shot received by the server according to an encoding scheme.
  • the coding scheme is such that it is possible to send the screen shots transformed by the coding scheme over the connection.
  • the server may further include fifth means for sending a program to a portable terminal indicated by the received terminal ID when the server receives the terminal ID.
  • each of the one or more portable terminals may further include a storage unit in which data corresponding to the information displayed on the display unit is stored.
  • the program sent to the portable terminal indicated by the received terminal ID can cause the portable terminal to convert the data stored in the storage means into data of a format that can be displayed by the client.
  • the screen shot may include the data in a format that can be displayed by the client.
  • the screen shot may include an image of the screen of the display means.
  • the character string included in the one or more HTML files includes one or both of an HTML tag conforming to HTML5 and JavaScript (registered trademark), and the HTML tag is a link to a file including JavaScript (registered trademark) Can contain tags for
  • the protocol may include the WebSocket protocol, the encoding scheme may include Base64, and the format may include one or both of Portable Network Graphics (PNG) format and Joint Photographic Experts Group (JPEG) format.
  • PNG Portable Network Graphics
  • JPEG Joint Photographic Experts Group
  • Another embodiment of the present invention is a system including the server and the one or more mobile terminals.
  • Another embodiment of the present invention is a method for accessing one or more mobile terminals from a client via a network.
  • the first means sends the one or more HTML files to the client
  • the third means receives the command for the one or more portable terminals.
  • the second means sends the instruction to the associated portable terminal
  • the third means includes
  • the server receives the screen shot from the portable terminal indicated by the terminal ID received by the server, the screen shot is sent to the client And a step.
  • the method may further include the step of the fourth means to transform the screen shot received by the server according to an encoding scheme.
  • the method may further include the fifth means sending a program to a portable terminal indicated by the received terminal ID when the server receives the terminal ID.
  • Yet another embodiment of the present invention is a program that causes a computer to function as a server for accessing one or more mobile terminals from a client via a network.
  • This program causes a computer to function as one or more of the above means.
  • the above service can be provided even when the data that can be transmitted and received between the client and the server is limited.
  • HTML5 is in the limelight.
  • This technology is a technology expected to replace the Flash plug-in described above.
  • WebSocket As a technology related to HTML5, there is a technology called WebSocket, and work on its standardization is in progress.
  • WebSocket is a technology that enables HTTP-based full two-way communication between a client and a server, which has not been possible in the past. Web browsers that support these HTML5 and WebSockets are expected to be widely disseminated.
  • the above service can be provided to more clients.
  • FIG. 1 is a block diagram illustrating an embodiment of the present invention. It is a flowchart which shows a terminal selection process. It is a flowchart which shows a screen shot acquisition process. It is a flowchart which shows a portable terminal access process. It is a flowchart which shows a terminal selection cancellation
  • a "computer” is a device including computing means which are hardware resources, control means, storage means, input means, and output means.
  • the calculation means and control means include a CPU, an MPU and the like.
  • the storage means includes a memory, a hard disk, an SSD and the like.
  • the input means includes a mouse, a keyboard, a touch panel, a network interface and the like.
  • the output means includes a network interface, a display, a printer, a speaker and the like. Two or more of the operation means, the control means, the storage means, the input means, and the output means can be physically one by using an FPGA, a microcomputer or the like.
  • One or more of the hardware resources such as computing means, control means, storage means, input means and output means cooperate with an arbitrary program which is software to realize each "means” described below It will be apparent to those skilled in the art that each "process" can be performed.
  • a “server” is a computer for providing a service.
  • One service in one embodiment described below is a service that provides the user of this service with access to a remote portable terminal. It goes without saying that different services can be provided in alternative embodiments.
  • a "client” is a computer for receiving a service.
  • a “mobile device” is a portable computer, which is a mobile phone, tablet or laptop computer of the Android platform, iPhone or iPod Touch or iPad of the iOS platform, and Windows (registered trademark) of the Windows (registered trademark) Mobile platform. Trademarks Including Phone etc. In one embodiment described below, it is assumed that the "mobile terminal” is a mobile phone of the Android platform.
  • HTML file is a file that contains a string described in Hypertext Markup Language. This string functions as an instruction to the computer, and can include one or both of an HTML tag and JavaScript (registered trademark).
  • the HTML tag can include a tag for a link to a file including JavaScript (registered trademark).
  • HTML tags can be tags that conform to HTML5.
  • FIG. 1 is a block diagram showing an embodiment of the present invention.
  • the server 100 relays the interaction between the user's client 120 and the mobile terminal 130 in order for the user to access the remote mobile terminal.
  • the server 100 is physically shown as one in this figure, the server may be composed of a plurality of computers.
  • a client 120 is connected to the server 100 via a network 110.
  • a web browser such as Safari is operating on the client 120 so that the client can interpret the character string contained in the HTML file.
  • any client 120 capable of interpreting the strings contained in the HTML file can be used.
  • one client 120 is shown in this figure, a plurality of clients can be connected to the server 100.
  • three portable terminals 130a to 130c are connected to the server 100.
  • the portable terminals 130a to 130c have display means 131a to 131c for displaying information, for example, a liquid crystal display. These portable terminals are configured to send a screen shot to the server 100 when receiving an instruction.
  • the “screen shot” represents the information displayed on the display means 131 of the portable terminal 130, and is, for example, an image of a screen displayed on the liquid crystal display.
  • the portable terminals 130a-c can include storage means 132a-c in which data corresponding to the information displayed on the display means 131a-c is stored. The storage means 132a to 132c will be described later.
  • three portable terminals 130a to 130c are shown in this figure, one or more arbitrary number of portable terminals can be connected to the server 100.
  • the server 100 comprises means 101 for sending one or more HTML files to the client 120.
  • This means can be realized, for example, by an http daemon operating on the server 100.
  • the one or more HTML files when interpreted by the client 120, cause the client to display an area for selecting one of the portable terminals 130, as will be described later with reference to FIG. Includes a character string that causes the server 100 to send a terminal ID indicating the selected portable terminal when one of the portable terminals 130 is selected.
  • the one or more HTML files when interpreted by the client 120, may cause the client to receive this screen shot from the portable terminal 130 via the server 100, as described below with respect to FIG. 3b. Contains the text to be displayed.
  • the one or more HTML files are strings that, when interpreted by the client 120, cause the client to display an area for receiving input to the mobile terminal, as described below with reference to FIGS. 2c and 3b. It includes a character string for converting the received input into a command for the portable terminal, and a character string for sending a command for the portable terminal to the server 100.
  • the one or more HTML files may further include a character string that, when interpreted by the client 120, causes execution of processing described later with reference to FIGS. 2 and 3 and display of a screen.
  • the server 100 also comprises means 102a-c, each associated with each of the mobile terminals 130a-c. Although three means 102a to 102c are shown in this figure, it goes without saying that the number of means 102 is increased or decreased according to the number of portable terminals connected to the server 100.
  • the means 102 sends a screen shot acquisition instruction to the associated portable terminal 130.
  • the means 102 also sends the command to the associated portable terminal 130 when it receives the above command for the portable terminal.
  • the means 102 can be realized by a terminal control daemon operating on the server 100.
  • a plurality of daemons can be executed on the server 100. When a daemon is newly executed on the server 100, means 102 corresponding to the daemon is newly added to the server 100.
  • the server 100 includes means 103 for transferring data received by the server to each means provided in the server and the client 120.
  • the means 103 sends the screen shot to the client 120 when the server 100 receives the terminal ID from the client 120 and receives a screen shot from the portable terminal indicated by the terminal ID.
  • the means 103 sends this command to a specific portable terminal when the server 100 receives the above terminal ID from the client 120 and then receives the above command for the portable terminal from the client 120.
  • the specific mobile terminal is a mobile terminal indicated by the received terminal ID among the mobile terminals 130.
  • the one or more HTML files may further include a string that, when interpreted by the client 120, causes the client to establish a two-way connection with the server 100 using a protocol.
  • the server 100 is configured to be able to interpret the above protocol.
  • an example of a certain protocol is the WebSocket protocol.
  • transmission and reception of data via the connection may be limited. More specifically, in a general computer, data is represented as a set of 8-bit numerical values, that is, numerical values from 0 to 255, but through the above connection, data including some numerical values other than those numerical values. Can not be sent or received. For example, some clients 120 may implement only a part of the WebSocket protocol in the specification of the Web browser in operation, and humans such as alphabets and numbers may be connected via the connection using the WebSocket protocol. It may not be possible to send or receive data that contains numerical values other than those that indicate the characters used to create a sentence. On the other hand, in general, the screen shot of the portable terminal 130 is data that can include all the values of 0 to 255 described above.
  • the server 100 can further include means 104 for converting the screen shot received by the server from the portable terminal 130 according to a certain encoding scheme.
  • the coding scheme may be any coding scheme that is capable of sending screen shots transformed by the coding scheme over the connection.
  • the screen shot can be converted by the Base 64.
  • the means 102 sends the converted screen shot to the client 120.
  • the server 100 may comprise means 105 for sending a program to the mobile terminal 130 in order to cause the mobile terminal 130 to perform a specific process.
  • the means 105 sends the program to the portable terminal indicated by the terminal ID when the server 100 receives the terminal ID in the terminal selection process described later with reference to FIG. 2a.
  • the means 105 is adapted to connect the portable terminal with the program when the portable terminal is newly connected to the server 100 at another appropriate time, for example, in the portable terminal registration process described later with reference to FIG. 2e. It can be sent to the terminal.
  • the load on the server 100 can be reduced, and load distribution can be realized.
  • the means 105 is useful when there is no function of acquiring a screen shot in the portable terminal 130, for example, the API of the OS operating on the portable terminal, for security or the like.
  • the storage unit 132 described above, for example, a frame buffer in which data corresponding to an image on the screen of the liquid crystal display is stored.
  • the data stored in the frame buffer is data in a format dependent on the portable terminal, and is generally not data in a format that can be displayed by the client 120.
  • the program may be a program that causes the portable terminal 130 to convert the data stored in the storage unit 132 into data in a format that can be displayed by the client 120.
  • the format that can be displayed depends on the client.
  • the format is not limited. For example, Portable Network Graphic (PNG) format, Joint Photographic Experts Group (JPEG) format, Graphics Interchange Format (GIF) format, etc. Clients will be able to view.
  • PNG Portable Network Graphic
  • JPEG Joint Photographic Experts Group
  • GIF Graphics Interchange Format
  • the server 100 includes one or both of a unit that stores the HTML file and the program, and a unit that acquires the HTML file and the program from a device different from the server. Can.
  • processing in an embodiment of the present invention will be described. However, processing that is general in the field related to the present invention, for example, processing for a user to log in to the server 100, and the like will be omitted.
  • FIG. 2a is a flow chart showing a terminal selection process performed when the user selects a portable terminal to access.
  • the client 120 having received the selection of the portable terminal from the user sends a terminal ID indicating the selected portable terminal to the server 100 (step 211). How the user selects the mobile terminal will be described later with respect to FIG. 3a.
  • the means 103 sends an instruction to start repeating the screen shot acquisition process described later to the means 102 associated with the portable terminal indicated by the ID (step 212).
  • the means 103 receives the terminal ID itself or the portable terminal indicated by the ID by an arbitrary method. Some information indicative of the terminal can be stored.
  • the means 103 can store the correspondence between one of the clients and the terminal ID received from the client by an arbitrary method.
  • the means 102 that has received the instruction starts repeating the screen shot acquisition process described later (step 213). Since this process can be repeated asynchronously with other processes, it can be executed by the screen shot acquisition thread created by the means.
  • FIG. 2b is a flowchart showing the screen shot acquisition process.
  • the means 102 sends the screen shot acquisition instruction described above to the associated portable terminal 130 (step 221).
  • the portable terminal 130 that has received the instruction acquires a screen shot, and sends the acquired screen shot to the server 100 (step 222).
  • the means 103 converts the screen shot by the Base 64 (step 223). Note that this step may be performed by the portable terminal 130 in step 222. In addition, as described above, this step is performed because there is a limit to data transmission and reception between the server 100 and the client 120. In alternative embodiments, where there is no such limitation, it can be omitted.
  • the means 103 sends the converted screen shot to the client 120 (step 224).
  • the client 120 having received the screen shot displays the screen shot (step 225). How the screen shot is displayed will be described later with respect to FIG. 3b.
  • FIG. 2c is a flow chart showing a mobile terminal access process performed when the user accesses the mobile terminal.
  • the client 120 receiving the input from the user converts the input into a command for the portable terminal (step 231). How to receive input will be described later with respect to FIG. 3b.
  • the command to the portable terminal includes a command to generate an event on the portable terminal, which occurs when flick operation, tap operation, soft key input and hard key input are performed on the portable terminal.
  • the client 120 sends a command for the mobile terminal to the server 100 (step 232).
  • the means 103 sends the command to the means 102 associated with the portable terminal 130 indicated by the previously received terminal ID (step 233).
  • the means 102 receiving the command of the portable terminal sends the command to the associated portable terminal 130 (step 234).
  • the portable terminal 130 which has received the command of the portable terminal generates an event corresponding to the command (step 235).
  • the occurrence of this event causes some kind of behavior to occur on the portable terminal 130.
  • This behavior includes a change on the screen of the display means 131 provided in the portable terminal 130, for example, a liquid crystal display.
  • the changed screen shot will be displayed on the client 120 by the above-described screen shot acquisition processing being executed asynchronously.
  • software developed by the user can be sent and installed on the mobile terminal 130.
  • such software can be executed on the mobile terminal 130, and an arbitrary event can be generated to test the behavior of the software on the mobile terminal 130.
  • commands to the mobile terminal can also be sent to the server 100 according to the test code written by the user.
  • step 231 is omitted.
  • FIG. 2d is a flow chart showing a terminal selection cancellation process which is executed when the user cancels the selection of the portable terminal to access.
  • the client 120 sends the server 100 an instruction to cancel the selection of the portable terminal (step 241).
  • the means 103 sends an instruction to end the repetition of the screen shot acquisition process to the means 102 associated with the portable terminal indicated by the terminal ID received earlier by the server 100 (step 242) .
  • the means 102 having received the instruction ends the repetition of the screen shot acquisition process (step 243).
  • the screen shot acquisition process is executed by the screen shot acquisition thread, the thread is deleted.
  • FIG. 2e is a flowchart showing a portable terminal registration process which is executed when a portable terminal is newly connected to the server 100.
  • the means 103 acquires information on the connected portable terminal (step 251).
  • This information can be acquired by a tool included in a software development environment for Android platform such as adb when the mobile terminal is a mobile phone of Android platform or the like. Further, this information includes the terminal ID of the mobile terminal, the model name, the maker name, the installed OS version and the like. Also, this step can include the step of the means 103 storing the information in any manner.
  • means 103 adds a new means 102 associated with the connected portable terminal (step 252).
  • the means 102 is realized by the terminal control daemon, by starting a new terminal control daemon on the server 100, the new means 102 is added to the server.
  • UI components are, for example, labels, text boxes, buttons, radio buttons, check boxes.
  • FIG. 3a shows a screen 300 for the user to select a mobile terminal to access.
  • each of the portable terminals 130a to 130c connected to the server 100 is displayed.
  • This information can include the model name of the mobile terminal, the manufacturer name, the installed OS version, and the like.
  • This information may include the terminal ID of the portable terminal.
  • each of the areas 302a to 302c information indicating the state of each of the portable terminals 130a to 130c is displayed.
  • This information is, for example, a "Preparing" string that is displayed when connected but can not be selected for some reason, and is displayed when another user has already selected It includes a character string “under selection” and a “selectable” character string indicating that the user can select.
  • a "Preparing” string that is displayed when connected but can not be selected for some reason, and is displayed when another user has already selected It includes a character string “under selection” and a “selectable” character string indicating that the user can select.
  • the rest is “in preparation” or “in selection of another user”.
  • Region 303 is used when the user selects a portable terminal.
  • only the mobile terminal 130 b can be selected, so only the area 303 b corresponding to the mobile terminal is displayed.
  • the corresponding portable terminal is selected.
  • the terminal ID indicating the selected portable terminal is sent from the client 120 to the server 100.
  • FIG. 3b shows a screen 310 for the user to access the mobile terminal and to test the behavior of the mobile terminal.
  • a screen shot of the portable terminal 130 received by the client 120 from the server 100 is displayed.
  • the client 120 can automatically update this area and always keep displaying the latest screen shot.
  • an arbitrary image can be displayed before the client 120 receives a screen shot.
  • this input causes an event that occurs when an input such as a flick operation and a tap operation is performed on the mobile terminal to be generated on the mobile terminal. Converted to a command.
  • Region 312 is used to perform soft key input at the mobile terminal.
  • the input is converted into a command that causes an event on the portable terminal to occur when the corresponding soft key input is performed on the portable terminal 130.
  • the area 313 is used to perform hard key input in the portable terminal.
  • the hard keys are "BACK”, "HOME” and "MENU” keys
  • three areas 313a-c are displayed in this figure.
  • the number of areas 313 increases or decreases depending on the assumed number of hard keys.
  • this input is converted into a command that generates an event on the portable terminal that occurs when a hard key input corresponding to the selected area is performed on the portable terminal 130. Ru.
  • Field 314 is used to enter test code.
  • the user can enter a test code for the mobile terminal in area 314.
  • the test code includes code for generating one or more of the above-described events on the mobile terminal.
  • test code also checks whether the state of the UI component displayed on the mobile device meets certain conditions, eg whether the string entered in the text box matches a specific string Contains code to The above condition is hereinafter referred to as "test case”.
  • the test code can include multiple test cases.
  • test code includes code for saving the screen shot displayed in the area 311 at any time.
  • the screen shot can be stored in the client 120 or the server 100 in any manner.
  • the user can write the test code using one of a plurality of UI test libraries.
  • UI test libraries are the libraries named Monkey Runner, Native Driver and Android Driver. Because the above code is different for each UI test library, the user can select a preferred UI test library, as described below with respect to FIG. 3f.
  • Region 315 is used to execute the entered test code.
  • the client 120 sends a command to the mobile terminal 130 to the server 100 according to the test code entered in the area 314, the test case is checked, and the screen shot is saved.
  • Field 316 is used to save the entered test code.
  • the input test code is stored in client 120 or server 100 in any manner.
  • An area 317 displays information for assisting the input of the test code.
  • a code corresponding to the input is displayed at 317.
  • the user can input a test code in area 314 using the code displayed in area 317.
  • Area 318 is used to save the screen shot displayed in area 311.
  • the screen shot displayed in the area 311 when the area 318 is selected is stored in the client 120 or the server 100 by any method.
  • Field 319 is used to enter a comment for the code displayed in field 317. Comments entered in area 319 can be displayed in area 317 along with the code. For example, when the user inputs a character string in the area 319 and presses the Enter key, the input character string can be output to the area 317 as a comment.
  • Areas 320 and 321 are used to select and deselect mobile terminals.
  • the screen shown in FIG. 3a is displayed.
  • the terminal selection cancellation process is performed.
  • FIG. 3c shows a screen 330 for managing the test.
  • the area 331 is used to specify software to be installed on the mobile terminal 130.
  • the client 120 is a computer on which a desktop environment such as Mac OS X operates
  • the user drags a file of software to be designated onto the area 331 using an optional input means (not shown) provided in the client 120.
  • the software can be uploaded to the server 100 by dropping it.
  • the area 332 is used to install the uploaded software on the mobile terminal 130. When this area is selected, the uploaded software is installed on the selected portable terminal.
  • the area 333 is used to delete the uploaded software from the server 100.
  • An area 334 is a button for creating a test class.
  • the test class is a unit of test, and for each test class, the input test code, the used UI test library, the test results to be described later, and the like are managed. Once area 334 is selected, a test class creation screen, described below with respect to FIG. 3f, is displayed.
  • An area 335 displays information on the created test class. This information includes the name of the test class, the name of the UI test library to be used, the last modification date of the test code, etc. Also, although not shown, the area 335 can include an area used to change the name of a test class or the like, or delete a test class being created. Although three areas 335a to c are displayed in this figure, it goes without saying that the number depends on the number of test classes created.
  • FIG. 3d shows a screen 340 showing the test history.
  • Each of the areas 341a-c corresponds to one test, and one test includes one execution of the test code.
  • An area 341 displays the result of the test code execution. Thus, this figure shows that the test code has been executed three times so far.
  • the test code can contain multiple test cases, and these areas will contain the string "OK” when all of these multiple test cases are satisfied, otherwise Can display the string "ERROR".
  • a screen will be displayed showing the details of the results described below with respect to FIG. 3e, corresponding to the selected areas.
  • each of the areas 342a-c information indicating the mobile phone 130 selected when the test code corresponding to each of the areas 341a-c was executed is displayed.
  • a log regarding the execution of the test code corresponding to each of the areas 341a-c is displayed.
  • This log contains the time taken to execute the test code, the number of unmet test cases, information indicating the unmet test cases, the date and time of completion of the test code execution, and the like.
  • test cases can be named, and the information indicating the test cases includes the name of the test case.
  • FIG. 3e shows a screen 350 for displaying details of the results of one test code execution.
  • An area 351 displays the result of the test code execution described above.
  • An area 352 displays information indicating the mobile phone 130 selected when the test code was executed as described above.
  • An area 353 displays a log related to the execution of the test code described above.
  • An area 354 displays information indicating a test case included in the executed test code.
  • An area 355 displays a screen shot saved during execution of the test code. If multiple screenshots are saved while the test code is running, multiple screenshots are displayed.
  • the user can install any software on the selected mobile terminal.
  • the screen 350 After installing the software and executing any test code, the behavior of the software on the portable terminal 130 can be confirmed by referring to this screen.
  • FIG. 3f shows a screen 360 for creating a new test class.
  • Field 361 is used to enter the name of the test class.
  • Each of the areas 362a-c is associated with each of the prepared UI test libraries, and is used to select a UI test library to be used in this test class. Although three areas 362a to 362c are shown in this figure, it goes without saying that the number of areas 362 also increases or decreases according to the number of prepared UI test libraries.
  • Field 363 is used to create a test class. When this area is selected, a test class is created together with the test class name input to the area 361 and the UI test library corresponding to the selected area 362. The created test class will be added to the screen described above with respect to FIG. 3c.
  • server 101 first means 102 second means 103 third means 104 fourth means 105 fifth means 110 network 120 client 130 portable terminal 131 display means 132 storage means

Abstract

より多くのソフトウェア開発者が遠隔の携帯端末にアクセスできるサービスを提供することである。 クライアントからネットワークを介して1以上の携帯端末にアクセスするためのサーバを提供する。このサーバは、1以上のHTMLファイルをクライアントに送る第1の手段を備えている。また、このサーバは、1以上の第2の手段を備えている。該1以上の第2の手段の各々は、1以上の携帯端末の各々に関連し、該1以上の第2の手段の各々は、スクリーンショット取得指示を関連した携帯端末に送り、1以上の携帯端末に対するコマンドを受けたときに該コマンドを関連した携帯端末に送るように構成されている。更に、このサーバは、該サーバが受けた端末IDによって示された携帯端末から該サーバがスクリーンショットを受けたときに、該スクリーンショットをクライアントに送り、1以上の携帯端末に対するコマンドを該サーバが受けたときに、該コマンドを1以上の第2の手段のうちの該サーバが受けた端末IDによって示された携帯端末に関連した第2の手段に送る第3の手段を備えている。

Description

クライアントからネットワークを介して携帯端末にアクセスするためのサーバ、方法、及び、コンピュータを該サーバとして機能させるプログラム
 本願発明は、第1の装置からネットワークを介して第2の装置にアクセスすることに関する。より詳細には、本願発明は、携帯端末のソフトウェアを開発しているユーザのクライアントからネットワークを介して遠隔の携帯端末にアクセスして、該携帯端末にインストールされたソフトウェアの挙動をテストすることに関する。
 昨今、Androidをプラットフォームとした携帯電話等の携帯端末のソフトウェア開発が盛んに行われている。
 ソフトウェアの開発において重要なステップの一つに、対象となる端末上でそのソフトウェアが実際に動作したときの挙動をテストするステップがある。
 ソフトウェアの挙動というのは、たとえ同じプラットフォームに属する携帯端末であったとしても、携帯端末の機種やOSバージョンによって微妙に異なるため、ソフトウェアの挙動テストは、そのソフトウェアが対象とする全ての機種及びOSバージョンにおいて行われることが好ましい。
 しかし、携帯端末は製品のライフサイクルが比較的早く、また、開発しているメーカーも様々であるため、想定される全てのOSバージョンの全ての機種を用意するのは困難であった。
 そのために、ネットワークを介して遠隔の携帯端末にアクセスし、その携帯端末にてテストを行うことで、開発者自らがテスト用の携帯端末を用意することなく、挙動テストを行うためのサービスが登場した。
 しかし、従来のサービスには制限があった。
 例えば、Keynote DeviceAnywhereというサービスは、遠隔の携帯端末にアクセスするために、開発者の端末に専用のソフトウェアをインストールしなければならないという制限があった。このサービスは、専用のソフトウェアの存在しない処理系の端末からは利用できない。
 また、例えば、Mobile Cloudというサービスは、遠隔の携帯端末にアクセスするために、Webブラウザを用いるサービスである。しかし、このサービスを利用するためには、Flashプラグインを利用できるWebブラウザでなければならないという制限があった。このサービスは、当然、Flashプラグインを利用できないWebブラウザからは利用できない。
 そのために、専用のソフトウェアをインストールすることなく、また、Flashプラグインを利用することなく、より多くのソフトウェア開発者が遠隔の携帯端末にアクセスできるサービスの登場が望まれていた。
 本願発明の一実施形態は、クライアントからネットワークを介して1以上の携帯端末にアクセスするためのサーバである。上記クライアントは上記ネットワークを介して上記サーバに接続されている。上記サーバは上記1以上の携帯端末に接続されている。上記1以上の携帯端末の各々は、情報を表示するための表示手段を備え、指示を受けたときにスクリーンショットを上記サーバに送るように構成されている。上記スクリーンショットは、上記表示手段に表示された情報を表すものである。
 上記サーバは、1以上のHTMLファイルを上記クライアントに送る第1の手段を備えている。上記1以上のHTMLファイルは、上記クライアントが解釈したときに、該クライアントに、上記1以上の携帯端末のうちの1つを選択するための第1の領域を表示させる文字列と、選択された上記携帯端末を示す端末IDを上記サーバに送ることをさせる文字列と、上記スクリーンショットを受けたときに該スクリーンショットを表示させる文字列と、上記1以上の携帯端末への入力を受けるための第2の領域を表示させる文字列と、受けた上記入力を上記1以上の携帯端末に対するコマンドに変換させる文字列と、上記1以上の携帯端末に対する上記コマンドを上記サーバに送ることをさせる文字列とを含んでいる。
 また、上記サーバは、1以上の第2の手段を備えている。該1以上の第2の手段の各々は、上記1以上の携帯端末の各々に関連し、該1以上の第2の手段の各々は、上記指示を関連した携帯端末に送り、上記1以上の携帯端末に対する上記コマンドを受けたときに該コマンドを関連した上記携帯端末に送るように構成されている。
 更に、上記サーバは、該サーバが受けた上記端末IDによって示された携帯端末から該サーバが上記スクリーンショットを受けたときに、該スクリーンショットを上記クライアントに送り、上記1以上の携帯端末に対する上記コマンドを該サーバが受けたときに、該コマンドを上記1以上の第2の手段のうちの該サーバが受けた上記端末IDによって示された携帯端末に関連した第2の手段に送る第3の手段を備えている。
 上記1以上のHTMLファイルは、上記クライアントが解釈したときに、該クライアントに、あるプロトコルを用いて上記コンピュータとの双方向の接続を確立させる文字列を更に含むことができる。この場合、上記サーバは、上記プロトコルを解釈するように構成される。上記接続を介して、上記端末ID、上記スクリーンショット及び上記コマンドは上記クライアントと上記サーバとの間で送受することができる。
 また、上記サーバは、該サーバが受けた上記スクリーンショットをある符号化方式により変換する第4の手段を更に備えることができる。上記符号化方式は、該符号化方式により変換された上記スクリーンショットを上記接続を介して送ることが可能であるようなものである。
 上記サーバは、該サーバが上記端末IDを受けたときに、受けた上記端末IDが示す携帯端末にプログラムを送る第5の手段を更に備えることができる。
 また、上記1以上の携帯端末の各々は、上記表示手段に表示された情報に対応したデータが記憶された記憶手段を更に備えることができる。
 受けた上記端末IDが示す上記携帯端末に送られた上記プログラムは、該携帯端末に、上記記憶手段に記憶された上記データを、上記クライアントが表示可能な形式のデータに変換させることができる。この場合、上記スクリーンショットは、上記クライアントが表示可能な形式の上記データを含むことができる。
 上記スクリーンショットは上記表示手段の画面の画像を含むことができる。上記1以上のHTMLファイルが含む上記の文字列はHTML5に準拠したHTMLタグ及びJavaScript(登録商標)のうちの一方又は双方を含み、上記HTMLタグはJavaScript(登録商標)を含むファイルへのリンクのためのタグを含むことができる。上記プロトコルはWebSocketプロトコルを含み、上記符号化方式はBase64を含み、上記形式はPortable Network Graphics(PNG)形式及びJoint Photographic Experts Group(JPEG)形式のうちの一方又は双方を含むことができる。
 本願発明の別の実施形態は、上記サーバと、上記1以上の携帯端末とを含むシステムである。
 本願発明のまた別の実施形態は、クライアントからネットワークを介して1以上の携帯端末にアクセスするための方法である。
 上記方法は、上記第1の手段が、上記1以上のHTMLファイルを上記クライアントに送るステップと、上記第3の手段が、上記1以上の携帯端末に対する上記コマンドを上記サーバが受けたときに、該コマンドを上記1以上の第2の手段のうちの該サーバが受けた上記端末IDによって示された携帯端末に関連した第2の手段に送るステップと、上記第2の手段が、上記1以上の携帯端末に対する上記コマンドを受けたときに該コマンドを関連した上記携帯端末に送るステップと、上記第2の手段が、上記指示を関連した携帯端末に送るステップと、上記第3の手段が、上記サーバが受けた上記端末IDによって示された携帯端末から該サーバが上記スクリーンショットを受けたときに、該スクリーンショットを上記クライアントに送るステップとを含んでいる。
 上記方法は、上記第4の手段が、該サーバが受けた上記スクリーンショットをある符号化方式により変換するステップを更に含むことができる。
 上記方法は、上記第5の手段が、該サーバが上記端末IDを受けたときに、受けた上記端末IDが示す携帯端末にプログラムを送るステップを更に含むことができる。
 本願発明の更に別の実施形態は、コンピュータを、クライアントからネットワークを介して1以上の携帯端末にアクセスするためのサーバとして機能させるプログラムである。このプログラムは、コンピュータを上記の手段のうちの1以上として機能させるものである。
 本願発明の一実施形態によると、専用のソフトウェアをインストールすることなく、また、Flashプラグインを利用することなく、ソフトウェア開発者が遠隔の携帯端末にアクセスできるサービスが提供できる。
 また、本願発明の一実施形態によると、クライアントとサーバとの間で送受できるデータが制限されている場合でも、上記サービスを提供することができる。
 更に、本願発明の一実施形態によると、上記サービスを提供する際の負荷を分散することができ、また、携帯端末にスクリーンショットを取得する機能が存在しない場合でも、上記サービスを提供することができる。
 ところで、最近、HTML5という技術が脚光を浴びている。この技術は、上述したFlashプラグインを置き換えることが期待された技術である。また、HTML5に関連した技術として、WebSocketという技術が存在し、その標準化の作業が進められている。WebSocketは、従来不可能であった、クライアントとサーバとの間でのHTTPをベースとした完全な双方向通信を実現する技術である。これらHTML5やWebSocketに対応したWebブラウザは、広く普及することが見込まれている。
 従って、本願発明の一実施形態によると、より多くのクライアントに対して、上記サービスを提供することができる。
本願発明の一実施形態を示すブロック図である。 端末選択処理を示すフロー図である。 スクリーンショット取得処理を示すフロー図である。 携帯端末アクセス処理を示すフロー図である。 端末選択解除処理を示すフロー図である。 携帯端末登録処理を示すフロー図である。 アクセスする携帯端末をユーザが選択するための画面300を示す図である。 ユーザが携帯端末にアクセスし、該携帯端末の挙動をテストするための画面310を示す図である。 テストを管理するための画面330を示す図である。 テスト履歴を示す画面340を示す図である。 1回のテスト・コード実行の結果の詳細を表示するための画面350を示す図である。 新たにテスト・クラスを作成するための画面360を示す図である。
 以下、本明細書で使用する一般的な用語を説明する。
 「コンピュータ」とは、ハードウェア資源である演算手段と、制御手段と、記憶手段と、入力手段と、出力手段とを含む装置のことである。演算手段及び制御手段はCPU及びMPU等を含む。記憶手段は、メモリ、ハードディスク及びSSD等を含む。入力手段は、マウス、キーボード、タッチパネル及びネットワーク・インターフェース等を含む。出力手段は、ネットワーク・インターフェース、ディスプレイ、プリンタ及びスピーカ等を含む。FPGAやマイクロコンピュータ等を使用して、演算手段と制御手段と記憶手段と入力手段と出力手段とのうちの2つ以上を物理的に1つのものとすることもできる。これらハードウェア資源である演算手段、制御手段、記憶手段、入力手段及び出力手段のうちの1以上と、ソフトウェアである任意のプログラムとが協働して、以下で説明する各「手段」を実現し、各「処理」を実行することができることは、当業者には明らかであろう。
 「サーバ」とは、あるサービスを提供するためのコンピュータのことである。以下で説明する一実施形態における1つのサービスは、このサービスのユーザに、遠隔の携帯端末へのアクセスを提供するサービスである。別実施形態において異なるサービスを提供できることは言うまでもない。
 「クライアント」とは、あるサービスを受けるためのコンピュータのことである。
 「携帯端末」とは、携帯可能なコンピュータのことであり、Androidプラットフォームの携帯電話やタブレットやノートパソコン、iOSプラットフォームのiPhoneやiPod TouchやiPad、及び、Windows(登録商標) MobileプラットフォームのWindows(登録商標) Phone等を含む。以下で説明する一実施形態において、「携帯端末」はAndoroidプラットフォームの携帯電話であると仮定している。
 「HTMLファイル」とは、ハイパーテキスト・マークアップ・ランゲージで記述された文字列を含むファイルのことである。この文字列は、コンピュータに対する命令として機能し、HTMLタグ及びJavaScript(登録商標)のうちの一方又は双方を含むことができる。HTMLタグは、JavaScript(登録商標)を含むファイルへのリンクのためのタグを含むことができる。HTMLタグは、HTML5に準拠したタグであることができる。
 以下、本願発明の一実施形態を説明する。
 図1は、本願発明の一実施形態を示すブロック図である。
 サーバ100は、ユーザが遠隔の携帯端末にアクセスするために、該ユーザのクライアント120と携帯端末130との間のやり取りを中継する。この図においてサーバ100は物理的に1つのものとして示されているが、このサーバは複数のコンピュータから構成されてもよい。
 サーバ100には、ネットワーク110を介してクライアント120が接続されている。この実施形態において、クライアント120上ではSafari等のWebブラウザが動作しており、それにより、このクライアントはHTMLファイルが含む文字列を解釈可能である。別実施形態においては、任意の、HTMLファイルが含む文字列を解釈可能なクライアント120を使用することができる。この図においては1つのクライアント120が示されているが、サーバ100には複数のクライアントを接続することができる。
 また、サーバ100には、3つの携帯端末130a~cが接続されている。携帯端末130a~cは、情報を表示するための表示手段131a~c、例えば、液晶ディスプレイを備えている。これら携帯端末は、指示を受けたときにスクリーンショットをサーバ100に送るように構成されている。「スクリーンショット」は、携帯端末130が備える上記表示手段131に表示された情報を表し、例えば、液晶ディスプレイに表示された画面の画像である。また、携帯端末130a~cは、表示手段131a~cに表示された情報に対応したデータが記憶された記憶手段132a~cを含むことができる。記憶手段132a~cに関しては後述する。この図においては3つの携帯端末130a~cが示されているが、サーバ100には1以上の任意の数の携帯端末を接続することができる。
 サーバ100は、1以上のHTMLファイルをクライアント120に送るための手段101を備えている。この手段は、例えば、サーバ100上で動作するhttpデーモンによって実現することができる。
 上記1以上のHTMLファイルは、クライアント120が解釈したときに、該クライアントに、図3aに関して後述するように、携帯端末130のうちの1つを選択するための領域を表示させる文字列と、ユーザが携帯端末130の1つを選択したときに、選択された携帯端末を示す端末IDをサーバ100に送ることをさせる文字列とを含んでいる。
 また、上記1以上のHTMLファイルは、クライアント120が解釈したときに、該クライアントに、図3bに関して後述するように、サーバ100を介して携帯端末130からスクリーンショットを受けたときにこのスクリーンショットを表示させる文字列を含んでいる。
 更に、上記1以上のHTMLファイルは、クライアント120が解釈したときに、該クライアントに、図2c及び図3bに関して後述するように、携帯端末への入力を受けるための領域を表示させる文字列と、受けた上記入力を携帯端末に対するコマンドに変換させる文字列と、携帯端末に対するコマンドをサーバ100に送ることをさせる文字列とを含んでいる。
 なお、上記1以上のHTMLファイルは、クライアント120が解釈したときに、図2及び3に関して後述する処理の実行や画面の表示をさせる文字列を更に含むことができる。
 また、サーバ100は、各々が携帯端末130a~cの各々に関連した手段102a~cを備えている。この図においては3つの手段102a~cが示されているが、サーバ100に接続された携帯端末の数に応じて、手段102の数も増減することは言うまでもない。手段102は、関連した携帯端末130に、スクリーンショット取得指示を送る。また、手段102は、携帯端末に対する上記コマンドを受けたときに、関連する携帯端末130にそのコマンドを送る。なお、手段102は、サーバ100上で動作する端末制御デーモンによって実現することができる。ここで、サーバ100上では複数のデーモンを実行することができる。サーバ100上で新たにデーモンが実行されると、該デーモンに対応した手段102がサーバ100に新たに追加されることになる。
 更に、サーバ100は、該サーバが受けたデータを該サーバに備わった各手段やクライアント120に転送する手段103を備えている。手段103は、サーバ100がクライアント120から上記端末IDを受けた後、この端末IDが示す携帯端末からスクリーンショットを受けたときに、このスクリーンショットをクライアント120に送る。また、手段103は、サーバ100がクライアント120から上記端末IDを受けた後、クライアント120から携帯端末に対する上記コマンドを受けたときに、このコマンドを特定の携帯端末に送る。ここで、特定の携帯端末は、携帯端末130のうちの、受けた上記端末IDが示す携帯端末である。
 上記1以上のHTMLファイルは、クライアント120が解釈したときに、該クライアントに、あるプロトコルを用いてサーバ100との双方向の接続を確立させる文字列を更に含むことができる。この場合、サーバ100は上記プロトコルを解釈できるように構成される。ここで、あるプロトコルの一例は、WebSocketプロトコルである。このような接続が確立された場合、該接続を介して、上記の端末ID、スクリーンショット及び携帯端末に対するコマンド等のデータをクライアント120とサーバ100との間で送受することができる。
 場合によっては、該接続を介したデータの送受が制限されることがある。より詳細には、一般的なコンピュータにおいて、データは8bitの数値、即ち0~255までの数値の集合として表現されるが、上記接続を介して、そのうちの一部の数値以外の数値を含むデータの送受ができないことがある。例えば、クライアント120によっては、動作しているWebブラウザの仕様上、WebSocketプロトコルの一部のみが実装されていることがあり、WebSocketプロトコルを用いた上記接続を介して、アルファベット及び数字等の人間が文章を作成する際に使用する文字を示す数値以外の数値を含むデータを送受できないことがある。一方、一般的に、携帯端末130のスクリーンショットは、上述の0~255の全ての数値を含みうるデータである。
 従って、サーバ100は、携帯端末130から該サーバが受けたスクリーンショットを、ある符号化方式により変換する手段104を更に備えることができる。符号化方式は、上記接続を介して、該符号化方式により変換されたスクリーンショットを送ることが可能である任意の符号化方式であってよい。上述の一例においては、Base64によりスクリーンショットを変換することができる。この場合、手段102は、変換後のスクリーンショットをクライアント120に送ることになる。
 更に、サーバ100は、携帯端末130に特定の処理を行わせるために、携帯端末130にプログラムを送るための手段105を備えることができる。この実施形態において、手段105は、図2aに関して後述する端末選択処理において、サーバ100が端末IDを受けたときに、この端末IDが示す携帯端末に上記プログラムを送る。別実施形態において、手段105は、他の適切なときに、例えば、図2eに関して後述する携帯端末登録処理において、サーバ100に携帯端末が新たに接続されたときに、上記プログラムを接続された携帯端末に送ることができる。サーバ100上で行う一部の処理を携帯端末上で行うことによって、サーバ100の負荷を減らすことができ、負荷分散が実現できる。
 特に、手段105は、セキュリティ等の理由により、携帯端末130にスクリーンショットを取得する機能、例えば該携帯端末で動作しているOSのAPIが存在しない場合に有用である。このような場合にスクリーンショットを取得するためには、上述した記憶手段132、例えば、液晶ディスプレイの画面の画像に対応したデータが記憶されたフレームバッファを直接読み取る必要がある。しかし、フレームバッファに記憶されたデータは携帯端末に依存した形式のデータであり、一般的にはクライアント120が表示可能な形式のデータではない。この場合、記憶手段132に記憶されたデータの形式を、クライアント120が表示可能な形式のデータに変換することが必要となる。
 従って、上記プログラムは、携帯端末130に、記憶手段132に記憶されたデータをクライアント120が表示可能な形式のデータに変換させるプログラムであることができる。表示可能な形式はクライアントに依存するが、例えば、限定するわけではないが、Portable Network Graphic(PNG)形式、Joint Photographic Experts Group(JPEG)形式、Graphics Interchange Format(GIF)形式等であれば、多くのクライアントが表示可能であろう。
 なお、図示していないが、サーバ100は、上記HTMLファイルやプログラムを記憶する手段、及び、該サーバとは別の装置から上記HTMLファイルやプログラムを取得する手段のうちの一方又は双方を含むことができる。
 次に、本願発明の一実施形態における処理を説明する。但し、本願発明に関する分野で一般的な処理、例えば、ユーザがサーバ100にログインするための処理等については、省略する。
 図2aは、アクセスする携帯端末をユーザが選択するときに実行される端末選択処理を示すフロー図である。
 ユーザから携帯端末の選択を受けたクライアント120は、サーバ100に、選択された携帯端末を示す端末IDを送る(ステップ211)。ユーザがどのように携帯端末を選択するかについては、図3aに関して後述する。
 サーバ100が端末IDを受けたときに、手段103は、該IDが示す携帯端末に関連した手段102に、後述のスクリーンショット取得処理の繰り返しを開始する指示を送る(ステップ212)。このとき、手段103は、ユーザが選択した携帯端末を、サーバ100に備わった各手段が後の処理において識別するために、任意の手法により、受けた端末IDそのもの、又は、該IDが示す携帯端末を示す何らかの情報を記憶することができる。また、複数のクライアントが同時に接続する場合には、手段103は、任意の手法により、複数のクライアントのうちの1つと、該クライアントから受けた端末IDとの対応関係を記憶することができる。
 指示を受けた手段102は、後述のスクリーンショット取得処理の繰り返しを開始する(ステップ213)。この処理は他の処理とは非同期に繰り返すことができるため、該手段が作成したスクリーンショット取得スレッドにより実行することができる。
 図2bは、スクリーンショット取得処理を示すフロー図である。
 手段102は、関連した携帯端末130に、上述のスクリーンショット取得指示を送る(ステップ221)。
 上記指示を受けた携帯端末130は、スクリーンショットを取得し、取得したスクリーンショットをサーバ100に送る(ステップ222)。
 サーバ100がスクリーンショットを受けたときに、手段103は、Base64によりスクリーンショットを変換する(ステップ223)。なお、このステップは、携帯端末130がステップ222において行ってもよい。また、このステップは、上述したように、サーバ100とクライアント120との間のデータの送受に制限があるために行うものである。別実施形態において、そのような制限がない場合には、省略することができる。
 次に、手段103は、クライアント120に、変換後のスクリーンショットを送る(ステップ224)。
 スクリーンショットを受けたクライアント120は、該スクリーンショットを表示する(ステップ225)。どのようにスクリーンショットが表示されるのかについては、図3bに関して後述する。
 図2cは、ユーザが携帯端末にアクセスするときに実行される携帯端末アクセス処理を示すフロー図である。
 ユーザからの入力を受けたクライアント120は、該入力を携帯端末に対するコマンドに変換する(ステップ231)。どのように入力を受けるのかについては、図3bに関して後述する。携帯端末に対するコマンドは、携帯端末上でフリック操作、タップ操作、ソフト・キー入力及びハード・キー入力等が行われたときに生ずるイベントを、該携帯端末上で発生させるコマンドを含む。
 次に、クライアント120は、サーバ100に、携帯端末に対するコマンドを送る(ステップ232)。
 サーバ100が携帯端末に対するコマンドを受けたときに、手段103は、先に受けた端末IDが示す携帯端末130に関連した手段102に、該コマンドを送る(ステップ233)。
 携帯端末のコマンドを受けた手段102は、関連した携帯端末130に、該コマンドを送る(ステップ234)。
 携帯端末のコマンドを受けた携帯端末130は、該コマンドに対応したイベントを発生する(ステップ235)。このイベントの発生により、携帯端末130上では何らかの挙動が発生することになる。この挙動は、携帯端末130が備える表示手段131、例えば液晶ディスプレイの画面上の変化を含む。この手段の画面上の変化が生じた場合には、非同期に実行されている上述のスクリーンショット取得処理によって、変化したスクリーンショットがクライアント120上には表示されることになる。
 図3cに関して後述するように、携帯端末130にはユーザが開発したソフトウェアを送りインストールすることができる。この携帯端末アクセス処理によって、そのようなソフトウェアを携帯端末130上で実行し、任意のイベントを発生させることにより、このソフトウェアの携帯端末130上での挙動をテストすることができる。
 また、図3bに関して後述するように、携帯端末に対するコマンドは、ユーザが記述したテスト・コードに従ってサーバ100に送ることもできる。この場合、ステップ231は省略される。
 図2dは、アクセスする携帯端末の選択をユーザが解除するときに実行される端末選択解除処理を示すフロー図である。
 クライアント120が、サーバ100に、携帯端末の選択を解除する指示を送る(ステップ241)。
 サーバ100が指示を受けたときに、手段103は、サーバ100が先に受けた端末IDが示す携帯端末に関連した手段102に、スクリーンショット取得処理の繰り返しを終了する指示を送る(ステップ242)。
 指示を受けた手段102は、スクリーンショット取得処理の繰り返しを終了する(ステップ243)。スクリーンショット取得処理をスクリーンショット取得スレッドにより実行している場合には、該スレッドを削除する。
 図2eは、サーバ100に新たに携帯端末を接続したときに実行される携帯端末登録処理を示すフロー図である。
 サーバ100に新たな携帯端末が接続されたときに、手段103は、接続された携帯端末に関する情報を取得する(ステップ251)。この情報は、携帯端末がAndroidプラットフォームの携帯電話等である場合、adb等のAndroidプラットフォーム用のソフトウェア開発環境に含まれるツールにより取得することができる。また、この情報は、該携帯端末の端末ID、機種名、メーカー名及びインストールされているOSバージョン等を含む。また、このステップは、手段103が、任意の手法により、上記情報を記憶するステップを含むことができる。
 次に、手段103は、接続された携帯端末に関連した新たな手段102を追加する(ステップ252)。上述のように、手段102が端末制御デーモンにより実現される場合、サーバ100上で新たな端末制御デーモンを起動することにより、該サーバに新たな手段102が追加されることになる。
 次に、本願発明の一実施形態において、クライアント120に表示される画面を説明する。なお、以下で行われる「入力」や「選択」は、クライアント120に備わった図示しない任意の入力手段を使用して、ユーザが行うことができる。また、以下で使用する「領域」は、クライアント120に表示されるUIコンポーネントを含んでいる。「UIコンポーネント」とは、例えば、ラベル、テキスト・ボックス、ボタン、ラジオ・ボタン、チェック・ボックスのことである。
 図3aは、アクセスする携帯端末をユーザが選択するための画面300を示している。
 領域301a~cの各々には、サーバ100に接続された携帯端末130a~cの各々を示す情報が表示される。この情報は、携帯端末の機種名、メーカー名及びインストールされているOSバージョン等を含むことができる。この情報は、携帯端末の端末IDを含んでいてもよい。
 領域302a~cの各々には、携帯端末130a~cの各々の状態を示す情報が表示される。この情報は、例えば、接続されているが、何らかの理由により選択ができないときに表示される「準備中」の文字列、既に他のユーザに選択されてしまっているときに表示される「他ユーザ選択中」の文字列、及び、ユーザが選択可能であることを示す「選択可能」の文字列を含む。この図においては、携帯端末130bのみが選択可能であり、それ以外は「準備中」又は「他ユーザ選択中」であると仮定している。
 この図においては3つの領域の組301a~c及び302a~cが示されているが、サーバ100に接続された携帯端末の数に応じて、これら領域の組の数も増減することは言うまでもない。多数の携帯端末がサーバ100に接続された場合には、一度に全ての携帯端末に対応した領域301及び302は表示できないため、図示していないスクロールバーを使用して、画面300の表示を切り替えることになるであろう。
 領域303は、ユーザが携帯端末を選択するときに使用される。この図においては、携帯端末130bのみが選択可能であるため、該携帯端末に対応した領域303bのみが表示されている。ユーザがこの領域を選択することにより、対応した携帯端末が選択される。なお、上述したように、続いて、選択された携帯端末を示す端末IDがクライアント120からサーバ100に送られることになる。
 図3bは、ユーザが携帯端末にアクセスし、該携帯端末の挙動をテストするための画面310を示している。
 領域311には、サーバ100からクライアント120が受けた、携帯端末130のスクリーンショットが表示される。上述のように、スクリーンショット取得処理は非同期に繰り返し行うことができるため、クライアント120はこの領域を自動的に更新し、常に最新のスクリーンショットを表示し続けることができる。なお、領域311には、クライアント120がスクリーンショットを受ける前は、任意の画像を表示することができる。
 また、ユーザが領域311上でドラッグ及びクリック等の入力を行うと、この入力は、携帯端末上でフリック操作及びタップ操作等の入力が行われたときに生ずるイベントを該携帯端末上で発生させるコマンドに変換される。
 領域312は、携帯端末においてソフト・キー入力を行うために使用される。ユーザがこの領域に文字列を入力すると、この入力は、対応したソフト・キー入力が携帯端末130上で行われたときに生ずるイベントを該携帯端末上で発生させるコマンドに変換される。
 領域313は、携帯端末においてハード・キー入力を行うために使用される。この一実施形態において、ハード・キーは「BACK」、「HOME」及び「MENU」のキーであると想定しているため、この図においては3つの領域313a~cが表示されている。しかし、領域313の数は、想定するハード・キーの数に依存して増減することは言うまでもない。ユーザが入力として領域313を選択すると、この入力は、選択された領域に対応したハード・キー入力が携帯端末130上で行われたときに生ずるイベントを該携帯端末上で発生させるコマンドに変換される。
 領域314は、テスト・コードを入力するために使用される。ユーザは、領域314において携帯端末に対するテスト・コードを入力することができる。
 テスト・コードは、1以上の上述したようなイベントを携帯端末上で発生させるためのコードを含む。
 また、テスト・コードは、携帯端末上で表示されるUIコンポーネントの状態がある条件を満たしているかどうか、例えば、テキスト・ボックスに入力された文字列が特定の文字列と一致するかどうかをチェックするためのコードを含む。なお、上記条件のことを、以下では「テスト・ケース」と呼ぶ。テスト・コードは、複数のテスト・ケースを含むことができる。
 更に、テスト・コードは、任意の時点で、領域311に表示されたスクリーンショットを保存するためのコードを含む。なお、スクリーンショットは、任意の手法で、クライアント120又はサーバ100に保存することができる。
 一実施形態においては、複数のUIテスト・ライブラリのうちの1つを用いて、ユーザは上記テスト・コードを記述することができる。UIテスト・ライブラリの例は、Monkey Runner、Native Driver及びAndroid Driverという名称のライブラリである。上記のコードは、UIテスト・ライブラリごとに異なるため、ユーザは、図3fに関して後述するように、好みのUIテスト・ライブラリを選択することができる。
 領域315は、入力されたテスト・コードを実行するために使用される。ユーザが領域315を選択すると、領域314に入力されたテスト・コードに従って、クライアント120はサーバ100に携帯端末130に対するコマンドを送り、テスト・ケースがチェックされ、スクリーンショットが保存される。領域316は、入力されたテスト・コードを保存するために使用される。ユーザが領域316を選択すると、任意の手法により、クライアント120又はサーバ100に、入力されたテスト・コードが保存される。
 領域317には、テスト・コードの入力を補助するための情報が表示される。領域311、312及び313に対して何らかの入力がなされると、その入力に対応したコードが317に表示される。ユーザは、領域317に表示されたコードを利用して、領域314にテスト・コードを入力することができる。
 領域318は、領域311に表示されているスクリーンショットを保存するために使用される。領域318が選択されると、領域318を選択したときに領域311に表示されているスクリーンショットは、任意の手法により、クライアント120又はサーバ100に保存される。
 領域319は、領域317に表示されたコードに対するコメントを入力するために使用される。領域319に入力されたコメントは、領域317にコードとともに表示することができる。例えば、ユーザが領域319に文字列を入力しEnterキーを押下したときに、入力された文字列をコメントとして領域317に出力することができる。
 領域320及び321は、携帯端末を選択及び選択解除するために使用される。領域320が選択されると、図3aに示される上記画面が表示される。領域321が選択されると、上記端末選択解除処理が実行される。
 図3cは、テストを管理するための画面330を示している。
 領域331は、携帯端末130にインストールするソフトウェアを指定するために使用される。例えば、クライアント120がMac OS X等のデスクトップ環境が動作したコンピュータである場合、クライアント120に備わった図示しない任意の入力手段を使用して、指定したいソフトウェアのファイルをユーザが領域331上にドラッグ&ドロップすることによって、そのソフトウェアをサーバ100にアップロードすることができる。
 領域332は、アップロードされたソフトウェアを携帯端末130にインストールするために使用される。この領域が選択されると、選択された携帯端末に、アップロードされたソフトウェアがインストールされる。領域333は、アップロードされたソフトウェアをサーバ100から削除するために使用される。
 領域334は、テスト・クラスを作成するためのボタンである。テスト・クラスとはテストの一単位のことであり、テスト・クラスごとに、入力されたテスト・コード、利用されるUIテスト・ライブラリ及び後述するテスト結果等が管理される。領域334が選択されると、図3fに関して後述するテスト・クラス作成画面が表示される。
 領域335には、作成されたテスト・クラスに関する情報が表示される。この情報は、テスト・クラスの名前、利用されるUIテスト・ライブラリの名前、テスト・コードの最終更新日等を含む。また、領域335は、図示していないが、テスト・クラスの名前等を変更したり、作成されているテスト・クラスを削除したりするために使用される領域を含むことができる。なお、この図において、3つの領域335a~cが表示されているが、その数は、作成されたテスト・クラスの数に依存することは言うまでもない。
 図3dは、テスト履歴を示す画面340を示している。
 領域341a~cの各々は、1回のテストに対応し、1回のテストは、上記テスト・コードの1回の実行を含む。領域341には、テスト・コードの実行の結果が表示される。従って、この図は、テスト・コードの実行が今までに3回行われたことを示している。上述のように、テスト・コードは複数のテスト・ケースを含むことができ、これら領域には、これら複数のテスト・ケースの全てが満たされたときに「OK」の文字列を、そうでないときに「ERROR」の文字列を表示することができる。ユーザが領域341a~cの各々を選択すると、選択された領域に対応する、図3eに関して後述する結果の詳細を示す画面が表示されることになる。
 領域342a~cの各々には、領域341a~cの各々に対応するテスト・コードが実行された際に選択されていた携帯電話130を示す情報が表示される。
 領域343a~cの各々には、領域341a~cの各々に対応するテスト・コードの実行に関するログが表示される。このログは、テスト・コードの実行にかかった時間、満たされなかったテスト・ケースの数、満たされなかったテスト・ケースを示す情報及びテスト・コードの実行の完了日時等を含む。テスト・コードにおいては、テスト・ケースに名前を付けることができ、テスト・ケースを示す情報は、テスト・ケースの名前を含む。
 図3eは、1回のテスト・コード実行の結果の詳細を表示するための画面350を示している。
 領域351には、上述した、テスト・コードの実行の結果が表示される。
 領域352には、上述した、テスト・コードが実行された際に選択されていた携帯電話130を示す情報が表示される。
 領域353には、上述した、テスト・コードの実行に関するログが表示される。
 領域354には、実行したテスト・コードに含まれるテスト・ケースを示す情報が表示される。
 領域355には、テスト・コードの実行中に保存されたスクリーンショットが表示される。テスト・コードの実行中に複数のスクリーンショットが保存された場合には、複数のスクリーンショットが表示される。
 図3cに関して前述したように、ユーザは、任意のソフトウェアを選択した携帯端末にインストールすることができる。ソフトウェアのインストールし、任意のテスト・コードを実行した後に画面350を参照することにより、そのソフトウェアの携帯端末130上での挙動を、この画面を参照することによって確認することができる。
 図3fは、新たにテスト・クラスを作成するための画面360を示している。
 領域361は、テスト・クラスの名前を入力するために使用される。
 領域362a~cの各々は、用意されたUIテスト・ライブラリの各々に関連し、このテスト・クラスにおいて利用するUIテスト・ライブラリを選択するために使用される。この図においては3つの領域362a~cが示されているが、用意されたUIテスト・ライブラリの数に応じて、領域362の数も増減することは言うまでもない。
 領域363は、テスト・クラスを作成するために使用される。この領域が選択されると、領域361に入力されたテスト・クラス名及び選択された領域362に対応したUIテスト・ライブラリとともにテスト・クラスが作成される。作成されたテスト・クラスは、図3cに関して前述した画面に追加されることになる。
 以上、本願発明の一実施形態について説明してきたが、この実施形態は、本願発明の一例に過ぎないことに注意されたい。本願発明は、特許請求の範囲によってのみ特定され、上述の実施形態に対して様々な変形、修正、削除及び代替をした実施形態をも含んでいる。
100 サーバ
101 第1の手段
102 第2の手段
103 第3の手段
104 第4の手段
105 第5の手段
110 ネットワーク
120 クライアント
130 携帯端末
131 表示手段
132 記憶手段

Claims (13)

  1.  クライアントからネットワークを介して1以上の携帯端末にアクセスするためのサーバであって、前記クライアントは前記ネットワークを介して前記サーバに接続され、前記サーバは前記1以上の携帯端末に接続され、前記1以上の携帯端末の各々は、情報を表示するための表示手段を備え、指示を受けたときにスクリーンショットを前記サーバに送り、前記スクリーンショットは、前記表示手段に表示された情報を表し、前記サーバは、
     1以上のHTMLファイルを前記クライアントに送る第1の手段であって、前記1以上のHTMLファイルは、前記クライアントが解釈したときに、該クライアントに、前記1以上の携帯端末のうちの1つを選択するための第1の領域を表示させる文字列と、選択された前記携帯端末を示す端末IDを前記サーバに送ることをさせる文字列と、前記スクリーンショットを受けたときに該スクリーンショットを表示させる文字列と、前記1以上の携帯端末への入力を受けるための第2の領域を表示させる文字列と、受けた前記入力を前記1以上の携帯端末に対するコマンドに変換させる文字列と、前記1以上の携帯端末に対する前記コマンドを前記サーバに送ることをさせる文字列とを含む、第1の手段と、
     1以上の第2の手段であって、該1以上の第2の手段の各々は、前記1以上の携帯端末の各々に関連し、該1以上の第2の手段の各々は、前記指示を関連した携帯端末に送り、前記1以上の携帯端末に対する前記コマンドを受けたときに該コマンドを関連した前記携帯端末に送る、1以上の第2の手段と、
     前記サーバが受けた前記端末IDによって示された携帯端末から該サーバが前記スクリーンショットを受けたときに、該スクリーンショットを前記クライアントに送り、前記1以上の携帯端末に対する前記コマンドを該サーバが受けたときに、該コマンドを前記1以上の第2の手段のうちの該サーバが受けた前記端末IDによって示された携帯端末に関連した第2の手段に送る第3の手段と
    を備えた、サーバ。
  2.  前記1以上のHTMLファイルは、前記クライアントが解釈したときに、該クライアントに、あるプロトコルを用いて前記サーバとの双方向の接続を確立させる文字列を更に含み、前記サーバは、前記プロトコルを解釈し、前記接続を介して、前記端末ID、前記スクリーンショット及び前記コマンドは前記クライアントと前記サーバとの間で送受され、
     前記サーバは、該サーバが受けた前記スクリーンショットをある符号化方式により変換する第4の手段を更に備え、前記符号化方式により変換された前記スクリーンショットは前記接続を介して送ることが可能である、請求項1に記載のサーバ。
  3.  前記サーバは、該サーバが前記端末IDを受けたときに、受けた前記端末IDが示す携帯端末にプログラムを送る第5の手段を更に備え、
     前記1以上の携帯端末の各々は、前記表示手段に表示された情報に対応したデータが記憶された記憶手段を更に備え、
     受けた前記端末IDが示す前記携帯端末に送られた前記プログラムは、該携帯端末に、前記記憶手段に記憶された前記データを、前記クライアントが表示可能な形式のデータに変換させ、前記スクリーンショットは、前記クライアントが表示可能な形式の前記データを含む、請求項1又は2に記載のサーバ。
  4.  前記スクリーンショットは前記表示手段の画面の画像を含み、
     前記1以上のHTMLファイルが含む前記の文字列はHTML5に準拠したHTMLタグ及びJavaScript(登録商標)のうちの一方又は双方を含み、前記HTMLタグはJavaScript(登録商標)を含むファイルへのリンクのためのタグを含み、
     前記プロトコルはWebSocketプロトコルを含み、
     前記符号化方式はBase64を含み、
     前記形式はPortable Network Graphics(PNG)形式及びJoint Photographic Experts Group(JPEG)形式のうちの一方又は双方を含む、請求項3に記載のサーバ。
  5.  請求項1~4の何れか一項に記載のサーバと、1以上の携帯端末とを含むシステム。
  6.  クライアントからネットワークを介して1以上の携帯端末にアクセスするための方法であって、前記クライアントは前記ネットワークを介してサーバに接続され、前記サーバは前記1以上の携帯端末に接続され、前記1以上の携帯端末の各々は、情報を表示するための表示手段を備え、指示を受けたときにスクリーンショットを前記サーバに送り、前記スクリーンショットは、前記表示手段に表示された情報を表し、前記サーバは、第1の手段と、1以上の第2の手段と、第3の手段とを備え、前記1以上の第2の手段の各々は、前記1以上の携帯端末の各々に関連し、前記方法は、
     前記第1の手段が、1以上のHTMLファイルを前記クライアントに送るステップであって、前記1以上のHTMLファイルは、前記クライアントが解釈したときに、該クライアントに、前記1以上の携帯端末のうちの1つを選択するための第1の領域を表示させる文字列と、選択された前記携帯端末を示す端末IDを前記サーバに送ることをさせる文字列と、前記スクリーンショットを受けたときに該スクリーンショットを表示させる文字列と、前記1以上の携帯端末への入力を受けるための第2の領域を表示させる文字列と、受けた前記入力を前記1以上の携帯端末に対するコマンドに変換させる文字列と、前記1以上の携帯端末に対する前記コマンドを前記サーバに送ることをさせる文字列とを含む、ステップと、
     前記第3の手段が、前記1以上の携帯端末に対する前記コマンドを前記サーバが受けたときに、該コマンドを前記1以上の第2の手段のうちの該サーバが受けた前記端末IDによって示された携帯端末に関連した第2の手段に送るステップと、
     前記第2の手段が、前記1以上の携帯端末に対する前記コマンドを受けたときに該コマンドを関連した携帯端末に送るステップと、
     前記第2の手段が、前記指示を関連した前記携帯端末に送るステップと、
     前記第3の手段が、前記サーバが受けた前記端末IDによって示された携帯端末から該サーバが前記スクリーンショットを受けたときに、該スクリーンショットを前記クライアントに送るステップと
    を含む、方法。
  7.  前記1以上のHTMLファイルは、前記クライアントが解釈したときに、該クライアントに、あるプロトコルを用いて前記サーバとの双方向の接続を確立させる文字列を更に含み、前記サーバは、前記プロトコルを解釈し、前記接続を介して、前記端末ID、前記スクリーンショット及び前記コマンドは前記クライアントと前記サーバとの間で送受され、
     前記サーバは第4の手段を更に備え、前記方法は、前記第4の手段が、該サーバが受けた前記スクリーンショットをある符号化方式により変換するステップを更に含み、前記符号化方式により変換された前記スクリーンショットは前記接続を介して送ることが可能である、請求項6に記載の方法。
  8.  前記サーバは第5の手段を更に備え、前記方法は、前記第5の手段が、該サーバが前記端末IDを受けたときに、受けた前記端末IDが示す携帯端末にプログラムを送るステップを更に含み、
     前記1以上の携帯端末の各々は、前記表示手段に表示された情報に対応したデータが記憶された記憶手段を更に備え、
     受けた前記端末IDが示す前記携帯端末に送られた前記プログラムは、該携帯端末に、前記記憶手段に記憶された前記データを、前記クライアントが表示可能な形式のデータに変換させ、前記スクリーンショットは、前記クライアントが表示可能な形式の前記データを含む、請求項6又は7に記載の方法。
  9.  前記スクリーンショットは前記表示手段の画面の画像を含み、
     前記1以上のHTMLファイルが含む前記の文字列はHTML5に準拠したHTMLタグ及びJavaScript(登録商標)のうちの一方又は双方を含み、前記HTMLタグはJavaScript(登録商標)を含むファイルへのリンクのためのタグを含み、
     前記プロトコルはWebSocketプロトコルを含み、
     前記符号化方式はBase64を含み、
     前記形式はPortable Network Graphics(PNG)形式及びJoint Photographic Experts Group(JPEG)形式のうちの一方又は双方を含む、請求項8に記載の方法。
  10.  コンピュータを、クライアントからネットワークを介して1以上の携帯端末にアクセスするためのサーバとして機能させるプログラムであって、前記クライアントは前記ネットワークを介して前記コンピュータに接続され、前記コンピュータは前記1以上の携帯端末に接続され、前記1以上の携帯端末の各々は、情報を表示するための表示手段を備え、指示を受けたときにスクリーンショットを前記コンピュータに送り、前記スクリーンショットは、前記表示手段に表示された情報を表し、前記プログラムは、前記コンピュータを、
     1以上のHTMLファイルを前記クライアントに送る第1の手段であって、前記1以上のHTMLファイルは、前記クライアントが解釈したときに、該クライアントに、前記1以上の携帯端末のうちの1つを選択するための第1の領域を表示させる文字列と、選択された前記携帯端末を示す端末IDを前記コンピュータに送ることをさせる文字列と、前記スクリーンショットを受けたときに該スクリーンショットを表示させる文字列と、前記1以上の携帯端末への入力を受けるための第2の領域を表示させる文字列と、受けた前記入力を前記1以上の携帯端末に対するコマンドに変換させる文字列と、前記1以上の携帯端末に対する前記コマンドを前記コンピュータに送ることをさせる文字列とを含む、第1の手段と、
     1以上の第2の手段であって、該1以上の第2の手段の各々は、前記1以上の携帯端末の各々に関連し、該1以上の第2の手段の各々は、前記指示を関連した携帯端末に送り、前記1以上の携帯端末に対する前記コマンドを受けたときに該コマンドを関連した前記携帯端末に送る、1以上の第2の手段と、
     前記コンピュータが受けた前記端末IDによって示された携帯端末から該コンピュータが前記スクリーンショットを受けたときに、該スクリーンショットを前記クライアントに送り、前記1以上の携帯端末に対する前記コマンドを該コンピュータが受けたときに、該コマンドを前記1以上の第2の手段のうちの該コンピュータが受けた前記端末IDによって示された携帯端末に関連した第2の手段に送る第3の手段と
    として機能させる、プログラム。
  11.  前記1以上のHTMLファイルは、前記クライアントが解釈したときに、該クライアントに、あるプロトコルを用いて前記コンピュータとの双方向の接続を確立させる文字列を更に含み、前記プログラムは、前記コンピュータに前記プロトコルを解釈させ、前記接続を介して、前記端末ID、前記スクリーンショット及び前記コマンドは前記クライアントと前記コンピュータとの間で送受され、
     前記プログラムは、前記コンピュータを、該コンピュータが受けた前記スクリーンショットをある符号化方式により変換する第4の手段として更に機能させ、前記符号化方式により変換された前記スクリーンショットは前記接続を介して送ることが可能である、請求項10に記載のプログラム。
  12.  前記プログラムは、前記コンピュータを、該コンピュータが前記端末IDを受けたときに、受けた前記端末IDが示す携帯端末にプログラムを送る第5の手段として更に機能させ、
     前記1以上の携帯端末の各々は、前記表示手段に表示された情報に対応したデータが記憶された記憶手段を更に備え、
     受けた前記端末IDが示す前記携帯端末に送られた前記プログラムは、該携帯端末に、前記記憶手段に記憶された前記データを、前記クライアントが表示可能な形式のデータに変換させ、前記スクリーンショットは、前記クライアントが表示可能な形式の前記データを含む、請求項10又は11に記載のプログラム。
  13.  前記スクリーンショットは前記表示手段の画面の画像を含み、
     前記1以上のHTMLファイルが含む前記の文字列はHTML5に準拠したHTMLタグ及びJavaScript(登録商標)のうちの一方又は双方を含み、前記HTMLタグはJavaScript(登録商標)を含むファイルへのリンクのためのタグを含み、
     前記プロトコルはWebSocketプロトコルを含み、
     前記符号化方式はBase64を含み、
     前記形式はPortable Network Graphics(PNG)形式及びJoint Photographic Experts Group(JPEG)形式のうちの一方又は双方を含む、請求項12に記載のプログラム。
PCT/JP2011/078950 2011-12-14 2011-12-14 クライアントからネットワークを介して携帯端末にアクセスするためのサーバ、方法、及び、コンピュータを該サーバとして機能させるプログラム WO2013088534A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2011/078950 WO2013088534A1 (ja) 2011-12-14 2011-12-14 クライアントからネットワークを介して携帯端末にアクセスするためのサーバ、方法、及び、コンピュータを該サーバとして機能させるプログラム
JP2013549006A JP5959535B2 (ja) 2011-12-14 2011-12-14 クライアントからネットワークを介して携帯端末にアクセスするためのサーバ、方法、及び、コンピュータを該サーバとして機能させるプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/078950 WO2013088534A1 (ja) 2011-12-14 2011-12-14 クライアントからネットワークを介して携帯端末にアクセスするためのサーバ、方法、及び、コンピュータを該サーバとして機能させるプログラム

Publications (1)

Publication Number Publication Date
WO2013088534A1 true WO2013088534A1 (ja) 2013-06-20

Family

ID=48612020

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/078950 WO2013088534A1 (ja) 2011-12-14 2011-12-14 クライアントからネットワークを介して携帯端末にアクセスするためのサーバ、方法、及び、コンピュータを該サーバとして機能させるプログラム

Country Status (2)

Country Link
JP (1) JP5959535B2 (ja)
WO (1) WO2013088534A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105431829A (zh) * 2013-08-14 2016-03-23 傲立焜株式会社 应用程序测试系统以及应用程序测试方法
JP2016197329A (ja) * 2015-04-03 2016-11-24 三菱電機株式会社 共有画面管理装置および共有画面管理プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001359157A (ja) * 2000-06-09 2001-12-26 Casio Comput Co Ltd 移動体通信システム、移動体通信端末の遠隔制御方法及びウェブサーバ装置
JP2002111893A (ja) * 2000-07-26 2002-04-12 Nec Corp 遠隔操作システムとその遠隔操作方法、及び遠隔操作プログラムを記録した記録媒体
JP2005323093A (ja) * 2004-05-07 2005-11-17 Fujitsu Ltd Webサーバを利用した遠隔操作制御プログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020029259A1 (en) * 2000-07-26 2002-03-07 Nec Corporation Remote operation system and remote operation method thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001359157A (ja) * 2000-06-09 2001-12-26 Casio Comput Co Ltd 移動体通信システム、移動体通信端末の遠隔制御方法及びウェブサーバ装置
JP2002111893A (ja) * 2000-07-26 2002-04-12 Nec Corp 遠隔操作システムとその遠隔操作方法、及び遠隔操作プログラムを記録した記録媒体
JP2005323093A (ja) * 2004-05-07 2005-11-17 Fujitsu Ltd Webサーバを利用した遠隔操作制御プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HIDEHIKO OKADA ET AL.: "PC Remote Controller based on User Interface Transformation", JOURNAL OF HUMAN INTERFACE SOCIETY, vol. 4, no. 4, 25 November 2002 (2002-11-25), pages 235 - 244 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105431829A (zh) * 2013-08-14 2016-03-23 傲立焜株式会社 应用程序测试系统以及应用程序测试方法
JP2016530628A (ja) * 2013-08-14 2016-09-29 オニコム株式会社 アプリテストシステム及びアプリテスト方法
JP2016197329A (ja) * 2015-04-03 2016-11-24 三菱電機株式会社 共有画面管理装置および共有画面管理プログラム

Also Published As

Publication number Publication date
JPWO2013088534A1 (ja) 2015-04-27
JP5959535B2 (ja) 2016-08-02

Similar Documents

Publication Publication Date Title
US10705942B1 (en) Simulated testing of API
US10353718B2 (en) Providing access to a remote application via a web client
US8949378B2 (en) Method and system for providing a state model of an application program
US11635974B2 (en) Providing a different configuration of added functionality for each of the stages of predeployment, deployment, and post deployment using a layer of abstraction
US20140082511A1 (en) Method and system for emulating desktop software applications in a mobile communication network
US9384005B2 (en) Systems and methods for dynamic configuration of client-side development environments through use of application servers
US9934007B2 (en) Method for operating tool in working environment and machine using such method
WO2008106643A2 (en) Forms conversion and deployment system for mobile devices
KR20110070982A (ko) 리소스 지향 프로그램을 시각적으로 모델링, 디버깅 및 실행하는 대화형 디자인 환경
CN108509207A (zh) Web应用程序的跨系统安装
US20140223414A1 (en) Paige control for enterprise mobile applications
JP7280388B2 (ja) カスタマイズされた人工知能生産ラインを実行する装置及び方法、機器及び媒体
JP2008276690A (ja) 開発システム、開発システムのサーバ、開発方法
CN107426588B (zh) 一种获取电视机配置信息方法、系统及存储装置
JP6482204B2 (ja) 情報処理端末、その制御方法及びプログラム
JP4626675B2 (ja) 通信ネットワークを利用したファームウェアの提供方法、そのシステムおよびサービスサーバ
JP5507500B2 (ja) デバッグシステム及びデバッグ方法
JP5959535B2 (ja) クライアントからネットワークを介して携帯端末にアクセスするためのサーバ、方法、及び、コンピュータを該サーバとして機能させるプログラム
JP2013210912A (ja) データ処理装置、データ処理システム及びプログラム
JP5393242B2 (ja) データ提供方法および中間サーバ装置
US20160350083A1 (en) Rapid mobile app generator
US9680967B2 (en) Method of using application, gateway using the method, terminal using the method, and terminal system using the method
JP2007122691A (ja) 情報処理装置、情報処理方法及びプログラム
JP2019219818A (ja) プログラム、情報処理装置、及び情報処理方法
JP2013137687A (ja) コンパイルレスなアプリケーション生成方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11877267

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013549006

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 18/09/2014)

122 Ep: pct application non-entry in european phase

Ref document number: 11877267

Country of ref document: EP

Kind code of ref document: A1