EP2992419A1 - Program testing service - Google Patents
Program testing serviceInfo
- Publication number
- EP2992419A1 EP2992419A1 EP14791080.6A EP14791080A EP2992419A1 EP 2992419 A1 EP2992419 A1 EP 2992419A1 EP 14791080 A EP14791080 A EP 14791080A EP 2992419 A1 EP2992419 A1 EP 2992419A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- program
- computer
- test
- computing devices
- testing
- Prior art date
- Legal status (The legal status 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 status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
Definitions
- FIG. 1 is a network architecture diagram showing an overview of one illustrative mechanism described herein for testing the operation of a program utilizing a program testing service, according to one embodiment disclosed herein;
- FIG. 2 is a network architecture diagram showing aspects of one illustrative mechanism described herein for submitting a request to a program testing service to test the operation of a program, according to one embodiment disclosed herein;
- FIG. 3 is a network architecture diagram showing aspects of one illustrative mechanism described herein for testing the operation of a program, and returning test results to a requestor following the testing, according to one embodiment disclosed herein;
- FIG. 4 is a flow diagram showing aspects of the operation of a developer computer for requesting that a program service test a program, and for receiving and presenting the results of the testing of the program, according to one embodiment disclosed herein;
- FIG. 5 is a flow diagram showing aspects of the operation of components in a service provider network for testing the operation of a program and for providing results of the testing, according to one embodiment disclosed herein;
- FIG. 6 is a network architecture diagram showing aspects of one illustrative mechanism described herein for utilizing a direct connection between a developer computer and a device in a service provider network to test the operation of a program, according to one embodiment disclosed herein;
- FIG. 7 is a flow diagram showing aspects of one illustrative routine disclosed herein for utilizing a direct connection between a developer computer and a device in a service provider network to test the operation of a program, according to one embodiment disclosed herein;
- FIG. 8 is a computer architecture diagram showing an illustrative computer hardware architecture for implementing a computing device that might be utilized to implement aspects of the various embodiments presented herein.
- a service provider can provide a network-based program testing service that includes functionality for permitting developers to test the operation of programs on a wide variety of physical computing devices and/or device emulators.
- a program testing service includes functionality for permitting developers to test the operation of programs on a wide variety of physical computing devices and/or device emulators.
- a program testing service Through the use of such a program testing service, a developer can quickly, easily and economically test the operation of a program on many physical computing devices, such as smartphones, tablets and, potentially, other types of device. Through this type of testing, the developer may improve the likelihood that their program will execute properly on a wide range of computing devices.
- a service provider operates a service provider network that includes host computers that have various computing devices connected thereto.
- host computers in the service provider network might have some number (e.g. six to sixteen) smartphones or tablet computing devices or other types of mobile computing devices connected thereto.
- a host computer in the service provider network might have sixteen smartphones connected thereto utilizing an appropriate connection type, such as a Universal Serial Bus (“USB") connection.
- the connected devices might have different hardware and/or software configurations. Other types of devices might also be connected to the host computers for use in testing programs.
- a developer can utilize the mechanisms disclosed herein to test the execution of a program on the devices connected to the host computers in the service provider network.
- the service provider network might also include host computers having device emulators executing thereupon.
- a host computer might be configured to execute some number (e.g. two or three) of device emulators in virtual machine instances.
- the device emulators might emulate the physical hardware of devices, like smartphones or tablet computers, having different hardware and/or software configurations.
- a developer can utilize the mechanisms disclosed herein to test the execution of a program on the device emulators executing on the host computers in the service provider network.
- test cases In order to test the operation of a program, the developer first creates the program in a convention fashion. For example, a developer might utilize a suitable program development environment to create the program. The developer then creates one or more test cases for use in testing the program. The test cases describe the manner in which the program should be tested. Additional details regarding the test cases will be presented below.
- test request is submitted to a component in the service provider network.
- the test request may include the program, at least one test case, and data identifying the devices and/or device emulators that should be used for testing the operation of the program.
- the test request might be transmitted to the service provider network by way of the program development environment, through a page provided by the service provider network, such as a Web page in a Web portal, in an e-mail message, or in another manner.
- a workflow coordinator or another component in the service provider network may determine whether the computing devices and/or device emulators that the program is to be tested on are available for use (i.e. not in use testing another program). If the devices and/or device emulators that the program is to be tested on are not available for use, the workflow component may cause the test request to be queued until such time as the devices and/or device emulators required for testing become available for use.
- the workflow coordinator in conjunction with other components in the service provider network, may cause the program to be installed on the devices and/or device emulators upon which testing is to be performed.
- the program is then executed on the devices and/or device emulators, and the supplied test case, or test cases, is utilized to test various aspects of the operation of the program. Testing might be performed on many devices and/or device emulators simultaneously. Real-time testing data might also be provided to the developer during the testing of the program. For instance, textual data or video screen data generated by a device or a device emulator upon which testing is being performed might be transmitted to the developer.
- the results of the testing may be gathered and transmitted to the developer of the program.
- the results might include summary results (e.g. whether a particular test passed or failed), detailed results such as log files generated by the program or the test case, screen captures taken prior to, during, and/or after testing and, potentially, video captured from the device and/or device emulator during testing.
- the developer may then utilize the test results to modify aspects of the operation of the program. In this way, a developer can utilize the testing service described above to quickly, easily and economically test the operation of a program on many physical computing devices, such as smartphones or tablets, and/or device emulators for many different computing devices. Additional details regarding the various components and processes described above for providing and utilizing a network-based program testing service will be presented below with regard to FIGS. 1-6.
- FIG. 1 is a network architecture diagram showing an overview of one illustrative mechanism described herein for testing the operation of a program 108 utilizing a network-based program testing service, according to one embodiment disclosed herein.
- a developer 102 might utilize an appropriate developer computer 106 to execute a program development environment 104.
- a program development environment 104 is an environment that allows a user to create, compile, and execute a program, such as the program 108.
- the program development environment 104 is the ECLIPSE integrated development environment ("IDE") from the ECLIPSE FOUNDATION. It should be appreciated, however, that other IDEs and other types of program development environments 104 from other vendors might also be utilized with the mechanisms disclosed herein.
- IDE ECLIPSE integrated development environment
- the program 108 is an executable or interpreted program configured for executing on a computing device, such as a smartphone, a tablet computing device, an e-reader device, or another type of computing device.
- a computing device such as a smartphone, a tablet computing device, an e-reader device, or another type of computing device.
- a computing device such as a smartphone, a tablet computing device, an e-reader device, or another type of computing device.
- a computing device such as a smartphone, a tablet computing device, an e-reader device, or another type of computing device.
- a computing device such as a smartphone, a tablet computing device, an e-reader device, or another type of computing device.
- the embodiments disclosed herein might also be utilized with other types of computing devices.
- the embodiments disclosed herein might be utilized with tablet computing devices, video game devices, set-top box devices, and other types of computing devices.
- the embodiments disclosed herein should not be construed as being limited to a
- the developer 102 might establish a connection to a service provider network 110 by way of the network 126.
- the service provider network 1 10 is operated by a service provider, and is configured to provide a network-based service for testing a program, such as the program 108, on a variety of computing devices.
- the developer computer 106 might connect to the service provider network 110 through an appropriate network 126, such as the Internet.
- an appropriate network 126 such as the Internet.
- test cases 114 for use in testing the operation of the program 108 on the specified devices.
- the test cases 114 describe the test, or tests, that should be performed on the program 108 while the program 108 is executing on various computing devices.
- the test cases 1 14 might define simulated user input events that are presented to the device upon which the program 108 is being tested.
- the test cases 114 might define changes in orientation, configuration, and/or simulate the presence or removal of external devices.
- the test cases 1 14 might also define a stress test that sends pseudo random events to a device while a program 108 is being tested.
- the test cases 1 14 might also define other types of tests configured to test various aspects of the operation of a program 108, such as the impact on battery life, processor or memory usage, or other operational aspects.
- the service provider might also provide pre-defined test cases 114 for use by the developer 102. For instance, pre-defined test cases 114 might be provided for executing the program 108 and determining if any errors are encountered, for stress testing the program 108, and/or for performing other types of tests on the program 108.
- test cases 114 might be defined utilizing the ANDROID INSTRUMENTATION TESTING FRAMEWORK.
- Other formats might be utilized to define the test cases 1 14 when the devices utilized to test the program 108 are configured with operating systems from other manufacturers.
- the embodiments described herein are primarily presented in the context of testing a program 108 on computing devices utilizing the ANDROID operating system, the embodiments presented herein are not limited to use with such devices.
- the embodiments disclosed herein might be utilized to test a program 108 on devices executing other types of operating systems from other manufacturers.
- various development tools might also be provided to assist a developer 102 in creating test cases 114 for use with the testing service provided by way of the service provider network 1 10.
- a user interface (“Ul") -based software development tool may be provided that allows the developer 102 to record user interface interactions. These Ul interactions may then be utilized to test functionality of the program 108 on the various computing devices provided by the service provider network 110.
- Ul interactions may then be utilized to test functionality of the program 108 on the various computing devices provided by the service provider network 110.
- other types of software tools might also be provided for use by the developer 102 in utilizing and interacting with the various facilities provided by the service provider network 1 10 as described herein.
- the developer 102 might be permitted to select one or more computing devices 1 18 within the service provider network 1 10 that are to be utilized for testing the operation of the program 108. For example, in various embodiments, a list of available devices 118 might be presented to the developer 102. In other implementations, the particular device 1 18, or devices 118, upon which a program is to be tested might be selected through any analysis of the program 108. For example, if the program 108 has been created for use with a particular operating system or device type, this information might be utilized to select the device 118, or devices, upon which the program 108 is to be tested.
- the developer 102 might also be permitted to test the operation of the program 108 on device emulators 122 provided by the service provider network 110.
- a device emulator 122 is a software emulation of a computing device. Utilizing this mechanism, a developer 102 can simultaneously test the operation of a program 108 upon actual physical computing devices 118 and upon device emulators 122.
- the developer 102 can select the specific device, or devices that the developer 102 would like the program 108 to be tested upon.
- the developer 102 might also be permitted to select the devices by the operating system version that the devices are executing.
- the developer 102 might also be permitted to select devices for testing based upon the type of hardware, software, or other aspects of the devices. For example, the developer 102 might request that the program 108 be tested on devices having a camera and a particular version of the ANDROID operating system.
- a developer 102 might be permitted to select devices, and/or device emulators, for use in testing the program 108 based upon one or more of, a device manufacturer, a device type, a device version, device hardware, operating system version, other software version, or other attributes of a device.
- test request 112 might be transmitted to the service provider network 110.
- the test request 1 12 includes the program 108, the test cases 1 14, and data identifying the devices and/or emulators that the program 108 should be tested upon.
- the various components of the test request 112 described above might be stored in other locations and references to these locations might be included in the test request 1 12.
- the various data described above in the test request 112 might be provided to the service provider network 1 10 in other ways in other implementations.
- the service provider network 110 includes a host computer 1 16B that has several computing devices 1 18A-118N attached thereto.
- the computing devices 118A-118N are various models of smartphones or tablet computing devices executing the ANDROID operating system.
- the computing devices 1 18A-118N might be connected to the host computer 116B by way of a suitable wired connection, such as a USB connection.
- the computing devices 118A- 118N might also be connected to the host computer 1 16B by way of a suitable wireless connection.
- the computing devices 1 18A-118N are smartphone devices that include only hardware that is unique to the device.
- a device 118 might be a development motherboard that includes only a processor and memory that is unique to a particular model of mobile computing device.
- Other hardware devices utilized by the mobile computing device that are common across various devices might be emulated by software executing on the host computer 116. In this way, the cost of each of the devices 1 18A-118N might be reduced.
- Other types of development boards and or platforms might also be connected to a host computer 116 in the service provider network 110 for use in testing in the manner disclosed herein.
- the service provider network 1 10 also includes a host computer 116A that is executing a number of device emulators 122A- 122N.
- the device emulators 122A-122N may be executing on the physical hardware of the host computer 116A, or in other embodiments might be executing within virtual machines executing on the host computer 116A. Other mechanisms for executing the device emulators 122A-122N might also be utilized.
- the program 108 is first installed on the computing devices 1 18A-118N and/or device emulators 122A-122N specified by the developer 102. Once the program 108 has been installed on the appropriate computing devices 118A-1 18N and/or device emulators 122A-122N, the test cases 114 can be utilized to test the operation of the program 108 upon the various computing devices 1 18 and/or device emulators 122. It should be appreciated that these tests might be performed simultaneously, thereby allowing a developer 102 to test the operation of a program 108 on multiple computing devices 118 and device emulators 122 simultaneously.
- the service provider network 110 might provide real-time testing data to the developer 102 while the test of the program 108 is being performed. For instance, text data might be provided to the developer computer 106 describing various aspects of the testing. In other implementations, a display output by the computing devices 118A-1 18N and/or the device emulators 122A-122N might be provided to the developer computer 106 while the testing of the program 108 is being performed. Other types of data might also be provided to the developer computer 106 during performance of the specified tests for use by the developer 102.
- the service provider network 110 is configured to transmit test results 124 to the developer computer 106.
- the test results 124 may include information for each computing device 1 18A-118N and device emulator 122A-122N that the tests were performed upon.
- the test results 124 might summarize the results of the testing and/or provide more detailed information regarding the performance of the testing.
- the test results 124 can describe the success or failure of the tests, may provide logs and/or other information from the computing devices 118 and/or the device emulator 122 collected during the performance of the tests, and might provide other information in other embodiments.
- test results 124 might also include screen displays captured from the computing devices 1 18A-118N and/or the device emulator 122A-122N during the performance of the tests.
- the test results 124 might also include other information in other embodiments.
- test results 124 the developer 102 might utilize the test results 124 to modify the operation of the program 108.
- the developer 102 might then utilize the testing service described above repeatedly to continue testing the operation of the program 108. Additional details regarding the operation of the various components on the developer computer 106 and within the service provider network 1 10 will be provided below with regard to FIGS. 2-5.
- FIG. 2 is a network architecture diagram showing aspects of one illustrative mechanism described herein for submitting a test request 1 12 to a program testing service to test the operation of a program 108, according to one embodiment disclosed herein.
- a developer 102 might utilize various software components on a developer computer 106 to transmit a test request 1 12 to the service provider network 1 10 described above.
- FIG. 2 provides additional aspects regarding the various components that might be utilized in various embodiments to submit a test request 112 to the service provider network 110.
- a plug-in 201 to the program development environment 104 is provided for submission of a test request 112A to the service provider network 1 10.
- the plug-in 201 might execute within the program development environment 104, and provides functionality for presenting a list of available computing devices 1 18A-118N and/or device emulators 122A-122N for use in testing the operation of the program 108. Once a developer 102 has selected the computing devices 1 18A-118N and/or device emulators 122A-122N for use in testing the program 108, the plug-in 201 may transmit a test request 112A to the service provider network 110.
- the test request 112A includes the program 108 to be tested, one or more test cases 114 describing how the testing should occur, and data 202 identifying the computing devices 1 18A-118N and/or the device emulators 122A-122N upon which the testing should be performed.
- a reference to the program 108 and/or the test cases 114 might be provided in a test request 112A rather than the actual program 108 and test cases 114.
- Other mechanisms might also be utilized to supply the program 108 and the test cases 114 to the service provider network 110.
- the service provider network 110 is configured to provide a Web portal 206, or another type of information page, through which a developer 102 can transmit a test request 112.
- the service provider network 1 10 is configured to provide a Web portal 206 through which the developer 102 can transmit a test request 112B.
- a Web browser program 204 or other suitable program, might be utilized to access the Web portal 206 and transmit the test request 1 12B.
- the Web portal 206 might also include functionality for allowing a developer 102 to specify the computing devices 118A-118N and/or device emulators 122A-122N upon which the program 108 should be tested.
- a developer 102 might utilize an e-mail program 208 executing on the developer computer 106 to create and transmit an e- mail message 210 that includes a test request 112C.
- the program 108, test cases 114, and data 202 identifying the computing devices 1 18 and/or the device emulators 122 to utilize for testing, may be attached to the e-mail message 210.
- the e- mail message 210 might include a reference to the network location of the program 108, the test cases 114, and the data 202 identifying the computing devices 118A- 118N and/or device emulators 122A-122N that should be utilized to test the operation of the program 108.
- FIG. 2 It should be appreciated that the mechanisms described with regard to FIG. 2 are merely illustrative. In other implementations, other mechanisms might be utilized in order to allow a developer 102 to transmit a test request 112 to a service provider network 1 10 that provides a service for testing a program 108.
- the mechanisms shown in FIG. 2 are merely illustrative and the claims appended hereto should not be limited to these particular mechanisms.
- FIG. 3 is a network architecture diagram showing aspects of one illustrative mechanism described herein for testing the operation of a program 108, and for returning test results 124 to a requestor following the testing, according to one embodiment disclosed herein.
- the service provider network 110 provides a network-based service for testing the operation of a program 108.
- the program 108 might be submitted to the service provider network 110 in a test request 1 12, or in another manner.
- a workflow coordinator 302 within the service provider network 1 10 receives the test request 112.
- the workflow coordinator 302 is a component that is configured to assign test requests 112 to host computers 1 16A-116C within the service provider network 110.
- the workflow coordinator 302 might also receive test results 124 from the various host computers 1 16A-116C and provide the test results 124 to the developer computer 106 that submitted the test request 112. Details regarding the test results 124 will be provided below.
- the workflow coordinator 302 is configured in one embodiment to determine whether the computing devices 118A- 118N and/or the device emulators 122A0-122N requested in the test request 112 are available for use in testing the program 108. If the requested computing devices 118A-1 18N and/or the device emulators 122A-122N are not available, the workflow coordinator 302 might utilize a queuing component 304 to queue the test request 112 the requested computing devices 1 18A-118N and/or device emulators 122A-122N become available. In some implementations, all of the tests requested by a test request 112 may be queued if any of the computing devices 118A-1 18N or device emulators 122A-122N are unavailable.
- test request 112 destined for unavailable computing devices 118A- 118N and/or unavailable device emulators 122A-122N might be queued.
- Other mechanisms might also be utilized for queuing test requests 112 in other implementations .
- the workflow coordinator 302 transmits the test request 1 12 to workflow clients 306 executing on the host computers 1 16A-116C. For example, if a test request 112 indicates that a test should be performed on a program 108 while executing on a computing device 1 18A, the workflow coordinator 302 may transmit the test request 112 to the workflow client 306 executing on the host computer 1 16B. In a similar fashion, if a test request 112 indicates that a test is to be performed using a device emulator 122A, the workflow coordinator 302 may transmit the test request 1 12 to the workflow client 306 executing on the host computer 116A.
- the workflow client 306 executing on each of the host computers 116A-116C is configured to receive test requests 112 from the workflow coordinator 302. In response to receiving a test request 112, the workflow client 306 causes a development bridge 308 to install the program 108 on the computing device 118 or the device emulator 122 to be tested.
- the development bridge 308 provides a mechanism for interacting with a connected computing device 1 18 or device emulator 122.
- the development bridge 308 is the ANDROID Debug Bridge.
- the ANDROID Debug Bridge is utilized when the computing devices 118A-1 18N and/or the device emulators 122A-122N utilize the ANDROID OPERATING SYSTEM.
- Other types of bridges might also be utilized when computing devices 118A-118N and/or device emulators 122A-122N configured with other operating systems from other manufacturers are utilized to test the operation of a program 108.
- test cases 114 submitted with the test request 112 are utilized to test the operation of the program 108.
- the test cases 1 14 might test various aspects the operation of a program 108 on the target computing devices 118A-1 18N and/or device emulators 122A-122N.
- test cases 1 14 might test the ability of a user to interact with the program 108, send user actions such as key-presses to the program 108, mimic changes in orientation of the computing devices 1 18A-118N and/or device emulators 122A- 122N, programmatically assert on different variables used in the program 108, verify and/or assert the text displayed in different in UI elements by the program 108, and provide other kinds of tests.
- the host computers 116A-116C are configured to transmit real-time testing data 318 to the developer computer 106 while the testing of the program 108 is being performed.
- the real-time testing data 318 includes text data describing the ongoing testing of a program 108 on a particular computing device 1 18A-118N or device emulator 122A-122N.
- the real-time testing data 318 may include a video display output generated by one of the computing devices 118A- 118N and/or device emulators 122A-122N utilized for testing. The real time testing data 318 might then be presented on the developer computer 106 for viewing by the developer 102.
- the developer 102 can view the real time operational testing of the program 108 on a computing device 118A-1 18N or device emulator 122A-122N.
- a mechanism might be utilized at the developer computer 106 that allows the developer 102 to select a computing device 118A-1 18N and/or device emulator 122A-122N for which the real-time testing data 318 is displayed.
- each of the host computers 116A-1 16C provides test results 124 to the workflow coordinator 302.
- the workflow coordinator 302 provides the test results 124 to the developer computer 106.
- the test results 124 might include a results summary 310, which indicates whether the particular tests passed or failed.
- the test results 124 might also include detailed results 312 that include detailed information regarding the performance of the tests on the computing devices 1 18A-118N and/or device emulators 122A-122N.
- the detailed results 312 might include log files and/or other detailed results generated by the computing device 118, emulator 122, and/or development bridge 308 during the testing of the program 108 on the computing devices 1 18A-118N and/or the device emulators 122A-122N.
- the test results 124 also include one or more screen captures 314 taken on the computing devices 118 and/or the device emulators 122 during the testing of the program 108.
- the test results 124 might also include video 316 captured from the computing devices 1 18 and/or the device emulators 122 during all or a portion of the testing of the program 108.
- the content of the test results 124 illustrated in FIG. 3 are merely illustrative and that other types of information might be provided in the test results 124.
- Appropriate functionality might also be provided at the developer computer 106 for presenting the test results 124 to the developer 102. Utilizing the test results 124, the developer 102 can make changes to the program 108 utilizing the program development environment 104. The developer 102 might then resubmit the program 108 to the service provider network 1 10 for continued testing in the manner described above.
- FIG. 4 is a flow diagram showing one illustrative routine 400 that illustrates aspects of the operation of the developer computer 106 for requesting that a network- based program service test a program 108, and for receiving and presenting the results 124 of the testing of the program 108, according to one embodiment disclosed herein. It should be appreciated that the logical operations described herein with respect to FIG. 4, and the other FIGS, may be implemented (1) as a sequence of computer implemented acts or program modules running on a computing system and/or (2) as interconnected machine logic circuits or circuit modules within the computing system.
- the routine 400 begins at operation 402, where a facility is provided on the developer computer 106 for developing the program 108.
- a program development environment 104 might be utilized in various embodiments to develop the program 108.
- a facility might also be provided at the developer computer 106 for defining the test cases 114 that should be utilized for testing the operation of the program 108. This occurs at operation 404 of the routine 400.
- a list of the computing devices 118A-1 18N and/or device emulators 122A-122N that are available through the service provider network 1 10 for use in testing the operation of the program 108 may be presented. As mentioned above, such a list may be presented through a plug-in 201 provided in the program development environment 104 or through a Web portal 206 provided by the service provider network 110. Other mechanisms might also be utilized to provide a list of the available computing devices 118A-1 18N and the device emulators 122A-122N for testing operation of the program 108.
- the routine 400 proceeds to operation 408 where a selection of computing devices 1 18A-118N and/or device emulators 122A-122N for use in testing the operation of the program 108 is received from the developer 102.
- the routine 400 proceeds to operation 410, where a test request 112 is transmitted to the service provider network 1 10.
- the test request 112 might include the program 108, or a reference to the program 108, the test cases 1 14, and data identifying the computing devices 1 18A-118N and/or device emulators 122A-122N upon which testing should occur.
- the routine 400 proceeds to operation 412, where the developer computer 106 may receive real-time testing data 318 from the service provider network 110.
- the real-time testing data 318 might include textual or graphic images generated by a host computer 1 16 during the testing of a program 108.
- An appropriate component on the developer computer 106, such as the plug-in 201, or the Web browser program 204 may be utilized to present the realtime testing data 318 to the developer 102.
- routine 400 proceeds to operation 414, where a determination is made as to whether the test of the program 108 has been completed on the service provider network 1 10. If testing has not been completed, the routine 400 may proceed back to operation 412 where the real-time testing data 318 may be continually presented to the developer 102. If the testing is complete, the routine 400 proceeds from operation 414 to operation 416.
- the developer computer 106 receives and presents the test results 124.
- the test results 124 might include a results summary 310, detailed results 312, screen captures 314, and/or video 316 in various embodiments.
- An appropriate component executing on the developer computer 106, such as the plug-in 201 or the Web browser program 204 may be utilized to present the test results 124 to the developer 102. From operation 416, the routine 400 proceeds to operation 418 where it ends.
- FIG. 5 is a flow diagram showing one illustrative routine 500 that illustrates aspects of the operation of components in a service provider network 1 10 for testing the operation of a program 108, and for providing results 124 of the testing, according to one embodiment disclosed herein.
- the routine 500 begins at operation 502, where the service provider network 110 receives a test request 112.
- the workflow coordinator 302 or another component within the service provider network 1 10 determines whether the requested computing devices 118A-1 18N and/or device emulators 122A-122N are available for use in testing the program 108. If the requested computing devices 1 18 and/or device emulators 122 are not available, the routine 500 may proceed to operation 506, where the test request 112 may be queued.
- a queuing component 304 may be provided in the service provider network 110 for queuing test requests 112 until the requested computing devices 118A-1 18N and/or device emulators 122A-122N become available.
- the routine 500 proceeds from operation 504 to operation 508.
- the workflow coordinator 302 provides the test request 112, including the program 108, to host computers 1 16A-116C hosting the computing devices 118A- 118N and/or device emulators 122A-122N upon which testing should occur.
- the routine 500 then proceeds to operation 510, where the development bridge 308 on the respective host computer 1 16 installs the program 108 on the computing device 118 and/or device emulators 122 upon which testing is to occur.
- the routine 500 proceeds to operation 512 where the test cases 114 provided with the test requests 112 are utilized to test the operation of the program 108 on the computing devices 1 18A-118N and/or device emulators 122A-122N specified with the test request 112.
- real-time testing data 318 might be transmitted to the developer computer 106 during the testing of the program 108. This occurs at operation 514.
- the routine 500 proceeds to operation 516, where a determination is made as to whether the testing of the program 108 has been completed. If testing has not been completed, the routine 500 proceeds back to operation 514, where the service provider network 1 10 may continue to transmit realtime testing data 318 to the developer computer 106 in the manner described above. If, however, testing of the program 108 has been completed, the service provider network 110 generates the test results 124.
- the test results 124 might include the results summary 310, detailed results 312, screen captures 314, and/or video 316 in various embodiments. The test results 124 might also include other data not specifically mentioned herein.
- the routine 500 proceeds to operation 520, where the test results 124 are transmitted to the developer computer 106 for presentation to the developer 102, or use in another manner.
- a component within the service provider network 110 such as the development bridge 308, is utilized to reset the computing devices 118A-1 18N and/or device emulators 122 upon which testing occurred. In this way the computing devices 1 18 and/or device emulators 122 can be placed into a baseline state for future testing.
- the routine 500 proceeds to operation 524 where it ends.
- the results of the testing described above might be stored for future use by the developer 102.
- the test results 124 might be stored at the service provider network 1 10, at the developer computer 106, or in another location.
- a mechanism might also be provided for allowing the developer 102 to review the stored test results 124.
- a Web portal or other type of suitable user interface might be provided for reviewing previously generated and stored test results 124.
- test results 124 may then be provided in the manner described above.
- the developer computer 106 might be configured to establish a direct network connection to one of the computing devices 1 18A-118N and/or device emulators 122A-122N for use in testing the operation of the program 108.
- the developer 102 can interact with the device 118 or emulator 122 to provide user input 604 for testing the operation of the program 108 on the device 1 18 or emulator 122.
- the developer 102 can also view display output 606 generated by the emulator 122 or device 118.
- the program development environment 104 may be configured to transmit a direct connection request 602 to the service provider network 1 10 to establish a direct network connection to one of the computing devices 118A-118N or one of the device emulators 122A-122N.
- the host computer 1 16A or 1 16B hosting the requested emulator 122 or device 118 might determine if the emulator 122 or device 1 18 to which a direct connection has been requested is available.
- the request 602 to establish a direct network connection may be declined.
- the request 602 is to establish a direct network connection between the developer computer 106 and the device 1 18N.
- the request 602 may be declined if the device 118N is in use by another developer or otherwise unavailable.
- the request 602 might be queued in this case or the developer 102 might be instructed to resubmit the request 602 again later.
- a direct network connection may be established between the requested emulator 122 or device 1 18 and the developer computer 106 utilizing a suitable network protocol.
- the developer 102 can interact directly with the emulator 122 or device 118 to test aspects of the operation of the program 108 or perform other types of operations. For instance, in the example shown in FIG. 6, a direct network connection has been established between the developer computer 106 and the device 118N.
- the developer 102 can provide user input 604, such as touch screen input, keyboard input, and other types of input, to the developer computer 106.
- the received user input 604 is then transmitted over the direct network connection to the device 118N.
- the user input 604 is then presented to the device 118N as if the developer 102 made the user input 604 directly to the device 1 18N, rather than to the developer computer 102.
- the developer 102 can utilize the device 1 18N as if the developer 102 was physically co-located with the device 118N.
- the developer 102 can utilize and test the operation of the program 108 on the device 1 18N utilizing this mechanism.
- the emulator 122 or device 1 18 to which a direct network connection has been established might also be configured to transmit the display output 606 of the emulator 122 or device 118 to the developer computer 106. Audio output of the emulator 122 or device 1 18 might also be transmitted in a similar fashion.
- Various protocols might be utilized to transmit the display output 606 and/or the audio output of the emulator 122 or device 1 18, such as the virtual network computing (“VNC”) protocol, the remote desktop protocol (“RDP”), or another suitable protocol.
- VNC virtual network computing
- RDP remote desktop protocol
- the developer computer 106 may then receive and present the display output 606 of the connected emulator 122 or device 1 18.
- the device 118N is transmitting its display output 606 to the developer computer 106 for display to the developer 102.
- the developer 102 can view the output of the device 1 18N in response to the user input 604.
- the developer 102 can, therefore, test the operation of the program 108 on an emulator 122 or device 118 that is operating in a service provider network 1 10 in essentially the same manner as if the emulator 122 or device 1 18 was local to the developer computer 106. Additional details regarding this process are provided below with regard to FIG. 7.
- FIG. 7 is a flow diagram showing aspects of one illustrative routine 700 disclosed herein for utilizing a direct network connection between a computing device, such as the developer computer 106, and an emulator 122, or a device 1 18, in a service provider network 1 10 to test the operation of a program 108, according to one embodiment disclosed herein.
- the routine 700 begins at operation 702, where the developer computer 106 transmits a direct connection request 602 to a component in the service provider network 110 such as the host computer 116B.
- the direct connection request 602 may include data identifying the particular emulator 122 or device 118 to which a direct network connection is requested.
- routine 700 proceeds to operation 704, where the developer computer 106 determines whether the direct connection request 602 has been granted. If the request 602 has not been granted, the routine 700 proceeds to operation 716, where it ends. If, however, the direct connection request 602 is granted, the routine 700 proceeds from operation 706 to operation 708.
- the developer computer 106 establishes a direct network connection the requested emulator 122 or device 118 in the service provider network 110.
- the service provider network 110 might provide a network address of the emulator 122 or device 1 18 to the developer computer 106 in response to the request 602. Utilizing the provided network address, the developer computer 106 might establish a direct network connection to the requested emulator 122 or device 188 utilizing a suitable network communications protocol.
- the routine 700 proceeds from operation 706 to operation 707, where the program 108 to be tested may be loaded on the emulator 122 or device 188 to which the direct network connection has been established. Once the program 108 has been installed, execution of the program 108 is started. The routine 700 then proceeds from operation 707 to operation 708.
- the developer computer 106 receives user input 604 from the developer 102, or other user.
- the developer computer 106 then transmits the user input 604 to the connected emulator 122 or device 118.
- the user input 604 may then be presented to the connected emulator 122, or device 118, as if the user input 604 was made locally to the emulator 122 or device 1 18.
- the routine 700 proceeds to operation 710, where the connected emulator 122 or device 118 generates a display output 606 and transmits the display output 606 to the developer computer 106.
- the display output 606 may be made by the program 108 executing on the particular emulator 122 or device 118.
- the display output 606 might be formatted utilizing a suitable protocol, such as VNC or RDP.
- the developer computer 106 then receives the display output 606 and displays the display output 606 at operation 710.
- the connected emulator 122 or device 118 might also transmit audio to the developer computer 106 for playback by the developer computer 106 in a similar manner.
- routine 700 proceeds to operation 711 , where activity performed on the emulator 122 or device 188 might be logged in the manner described above. Data from the activity log might be provided to the developer 102 in real-time while the direct network connection is being utilized or following the direct connect session (at operation 718, described below).
- the routine 700 proceeds to operation 712, where the developer computer 106 determines whether the developer 102 has requested to end the direct network connection to the emulator 122 or device 1 18. If the developer 102 has not requested to end the direct network connection, the routine 700 proceeds back to operation 708, where user input 604 may be continually provided to the connected emulator 122 or device 118, and to operation 710 where display output 606 generated by the connected emulator 122 or device 118 may be continually received and presented at the developer computer 106.
- the direct network connection might be time-limited for some period of time. For example, a developer 102 might be limited to 15 minutes or some other period of time for utilizing a direct network connection to test a device 118 in the manner described above.
- routine 700 proceeds to operation 714, where the direct network connection is ended.
- the routine 700 then proceeds from operation 714 to operation 716, where the program 108 is removed from the emulator 122 or device 188.
- the routine 700 then proceeds to operation 718, where the activity log described above might be transmitted to the developer computer 106. From operation 718, the routine 700 proceeds to operation 720, where it ends.
- FIG. 8 shows an example computer architecture for a computer 800 capable of executing the program components described above for providing and utilizing a network-based program testing service
- the computer architecture shown in FIG. 8 illustrates a conventional server computer, workstation, desktop computer, laptop, tablet computing device, network appliance, personal digital assistant ("PDA"), e- reader, digital cellular phone, or other computing device, and may be utilized to execute any aspects of the software components presented herein.
- the computer architecture shown in FIG. 8 may be utilized to execute the workflow coordinator 302, the development bridge 308, the program development environment 104, and/or the other components shown in FIGS. 1-3 and described above.
- the computer 800 includes a baseboard 802, or "motherboard,” which is a printed circuit board to which a multitude of components or devices may be connected by way of a system bus or other electrical communication paths.
- a baseboard 802 or "motherboard”
- the CPUs 804 may be standard programmable processors that perform arithmetic and logical operations necessary for the operation of the computer 800.
- the CPUs 804 perform operations by transitioning from one discrete, physical state to the next through the manipulation of switching elements that differentiate between and change these states.
- Switching elements may generally include electronic circuits that maintain one of two binary states, such as flip-flops, and electronic circuits that provide an output state based on the logical combination of the states of one or more other switching elements, such as logic gates. These basic switching elements may be combined to create more complex logic circuits, including registers, adders-subtractors, arithmetic logic units, floating-point units, and the like.
- the chipset 806 provides an interface between the CPUs 804 and the remainder of the components and devices on the baseboard 802.
- the chipset 806 may provide an interface to a random access memory (“RAM”) 808, used as the main memory in the computer 800.
- the chipset 806 may further provide an interface to a computer-readable storage medium such as a read-only memory (“ROM”) 810 or non-volatile RAM (“NVRAM”) for storing basic routines that help to startup the computer 800 and to transfer information between the various components and devices.
- ROM 810 or NVRAM may also store other software components necessary for the operation of the computer 800 in accordance with the embodiments described herein.
- the computer 800 may operate in a networked environment using logical connections to remote computing devices and computer systems through a network, such as the local area network 820.
- the chipset 806 may include functionality for providing network connectivity through a NIC 812, such as a gigabit Ethernet adapter.
- the NIC 812 is capable of connecting the computer 800 to other computing devices over the network 820. It should be appreciated that multiple NICs 812 may be present in the computer 800, connecting the computer to other types of networks and remote computer systems.
- the computer 800 may be connected to a mass storage device 818 that provides non-volatile storage for the computer.
- the mass storage device 818 may store system programs, application programs, other program modules, and data, which have been described in greater detail herein.
- the mass storage device 818 may be connected to the computer 800 through a storage controller 814 connected to the chipset 806.
- the mass storage device 818 may consist of one or more physical storage units.
- the storage controller 814 may interface with the physical storage units through a serial attached SCSI (“SAS") interface, a serial advanced technology attachment (“SATA”) interface, a fiber channel (“FC”) interface, or other type of interface for physically connecting and transferring data between computers and physical storage units.
- SAS serial attached SCSI
- SATA serial advanced technology attachment
- FC fiber channel
- the computer 800 may store data on the mass storage device 818 by transforming the physical state of the physical storage units to reflect the information being stored.
- the specific transformation of physical state may depend on various factors, in different implementations of this description. Examples of such factors may include, but are not limited to, the technology used to implement the physical storage units, whether the mass storage device 818 is characterized as primary or secondary storage, and the like.
- the computer 800 may store information to the mass storage device 818 by issuing instructions through the storage controller 814 to alter the magnetic characteristics of a particular location within a magnetic disk drive unit, the reflective or refractive characteristics of a particular location in an optical storage unit, or the electrical characteristics of a particular capacitor, transistor, or other discrete component in a solid-state storage unit.
- Other transformations of physical media are possible without departing from the scope and spirit of the present description, with the foregoing examples provided only to facilitate this description.
- the computer 800 may further read information from the mass storage device 818 by detecting the physical states or characteristics of one or more particular locations within the physical storage units.
- the computer 800 may have access to other computer-readable storage media to store and retrieve information, such as program modules, data structures, or other data. It should be appreciated by those skilled in the art that computer-readable storage media can be any available media that provides for the storage of non-transitory data and that may be accessed by the computer 800.
- Computer-readable storage media may include volatile and non-volatile, removable and non-removable media implemented in any method or technology.
- Computer-readable storage media includes, but is not limited to, RAM, ROM, erasable programmable ROM (“EPROM”), electrically- erasable programmable ROM (“EEPROM”), flash memory or other solid-state memory technology, compact disc ROM (“CD-ROM”), digital versatile disk (“DVD”), high definition DVD (“HD-DVD”), BLU-RAY, or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information in a non-transitory fashion.
- the mass storage device 818 may store an operating system 830 utilized to control the operation of the computer 800.
- the operating system comprises the LINUX operating system.
- the operating system comprises the WINDOWS® SERVER operating system from MICROSOFT Corporation.
- the operating system may comprise the UNIX or SOLARIS operating systems. It should be appreciated that other operating systems may also be utilized.
- the mass storage device 818 may store other system or application programs and data utilized by the computer 800, such as the workflow coordinator 302, the development bridge 308, the program development environment 104, and/or any of the other software components and data described above.
- the mass storage device 818 might also store other programs and data not specifically identified herein.
- the mass storage device 818 or other computer-readable storage media is encoded with computer-executable instructions which, when loaded into the computer 800, transforms the computer from a general-purpose computing system into a special-purpose computer capable of implementing the embodiments described herein.
- These computer-executable instructions transform the computer 800 by specifying how the CPUs 804 transition between states, as described above.
- the computer 800 has access to computer- readable storage media storing computer-executable instructions which, when executed by the computer 800, perform the various routines described above with regard to FIGS. 4 and 5.
- the computer 800 might also include computer-readable storage media for performing any of the other computer-implemented operations described herein.
- the computer 800 may also include one or more input/output controllers 816 for receiving and processing input from a number of input devices, such as a keyboard, a mouse, a touchpad, a touch screen, an electronic stylus, or other type of input device. Similarly, the input/output controller 816 may provide output to a display, such as a computer monitor, a fiat-panel display, a digital projector, a printer, a plotter, or other type of output device. It will be appreciated that the computer 800 may not include all of the components shown in FIG. 8, may include other components that are not explicitly shown in FIG. 8, or may utilize an architecture completely different than that shown in FIG. 8.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
Claims
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/875,955 US20140331205A1 (en) | 2013-05-02 | 2013-05-02 | Program Testing Service |
US13/875,945 US20140331209A1 (en) | 2013-05-02 | 2013-05-02 | Program Testing Service |
PCT/US2014/036640 WO2014179731A1 (en) | 2013-05-02 | 2014-05-02 | Program testing service |
Publications (2)
Publication Number | Publication Date |
---|---|
EP2992419A1 true EP2992419A1 (en) | 2016-03-09 |
EP2992419A4 EP2992419A4 (en) | 2016-11-23 |
Family
ID=51843991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP14791080.6A Withdrawn EP2992419A4 (en) | 2013-05-02 | 2014-05-02 | Program testing service |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP2992419A4 (en) |
JP (1) | JP6283096B2 (en) |
CN (1) | CN105453033A (en) |
CA (1) | CA2910977A1 (en) |
WO (1) | WO2014179731A1 (en) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10606737B2 (en) * | 2017-03-01 | 2020-03-31 | Wipro Limited | System and method for testing a resource constrained device |
CN107291616A (en) * | 2017-06-05 | 2017-10-24 | 广州诚予国际市场信息研究有限公司 | A kind of online generating platform of project report |
JP6914901B2 (en) * | 2018-09-21 | 2021-08-04 | Kddi株式会社 | Open facility verification equipment, verification methods, and programs |
CN110618944A (en) * | 2019-09-20 | 2019-12-27 | 百度在线网络技术(北京)有限公司 | Device simulation method, device, electronic device and storage medium |
CN111414309B (en) * | 2020-03-27 | 2022-03-01 | 武汉联影医疗科技有限公司 | Automatic test method of application program, computer equipment and storage medium |
CN111506508A (en) * | 2020-04-17 | 2020-08-07 | 北京百度网讯科技有限公司 | Edge calculation test method, device, equipment and readable storage medium |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7334162B1 (en) * | 2003-01-29 | 2008-02-19 | Sun Microsystems, Inc. | Dynamic distribution of test execution |
US20070005281A1 (en) * | 2005-05-31 | 2007-01-04 | David Haggerty | Systems and Methods Providing Reusable Test Logic |
US20080294383A1 (en) * | 2007-05-21 | 2008-11-27 | Ramesh Parmar | Mobile device throughput testing |
US9170847B2 (en) * | 2010-01-08 | 2015-10-27 | Sauce Labs, Inc. | Real time verification of web applications |
WO2012027886A1 (en) * | 2010-08-31 | 2012-03-08 | Google Inc. | Platform specific application test |
US8566648B2 (en) * | 2011-02-02 | 2013-10-22 | Salesforce, Inc. | Automated testing on devices |
CN202795345U (en) * | 2012-10-08 | 2013-03-13 | 北京云测信息技术有限公司 | Application software test system |
-
2014
- 2014-05-02 EP EP14791080.6A patent/EP2992419A4/en not_active Withdrawn
- 2014-05-02 WO PCT/US2014/036640 patent/WO2014179731A1/en active Application Filing
- 2014-05-02 CA CA2910977A patent/CA2910977A1/en not_active Abandoned
- 2014-05-02 JP JP2016512074A patent/JP6283096B2/en not_active Expired - Fee Related
- 2014-05-02 CN CN201480030256.5A patent/CN105453033A/en active Pending
Also Published As
Publication number | Publication date |
---|---|
JP6283096B2 (en) | 2018-02-21 |
EP2992419A4 (en) | 2016-11-23 |
WO2014179731A1 (en) | 2014-11-06 |
CA2910977A1 (en) | 2014-11-06 |
JP2016525731A (en) | 2016-08-25 |
CN105453033A (en) | 2016-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20140331209A1 (en) | Program Testing Service | |
US9679090B1 (en) | Systematically exploring programs during testing | |
US9021443B1 (en) | Test automation API for host devices | |
US10346158B2 (en) | Application management platform | |
US9292423B1 (en) | Monitoring applications for compatibility issues | |
US9747191B1 (en) | Tool to replicate actions across devices in real time for improved efficiency during manual application testing | |
US9519495B2 (en) | Timed API rules for runtime verification | |
KR102158754B1 (en) | Method and apparatus for operating on smart network interface card | |
US11561889B2 (en) | Orchestration for automated performance testing | |
US20140372985A1 (en) | API Rules Verification Platform | |
US20170177765A1 (en) | Test case generation | |
US10642720B2 (en) | Test case generator built into data-integration workflow editor | |
US20130139128A1 (en) | Method for remote debugging using a replicated operating environment | |
US20160357661A1 (en) | Automated dynamic test case generation | |
US20220107882A1 (en) | Rendering engine component abstraction system | |
JP6283096B2 (en) | Program test service | |
US20140331205A1 (en) | Program Testing Service | |
US10042744B2 (en) | Adopting an existing automation script to a new framework | |
US9544399B2 (en) | Visually depicting cloud resource utilization during execution of an application | |
US9122793B2 (en) | Distributed debugging of an application in a distributed computing environment | |
US9170924B2 (en) | Ecosystem certification of a partner product | |
Tuovenen et al. | MAuto: Automatic mobile game testing tool using image-matching based approach | |
CA3141546A1 (en) | Log-based testing method, device, and computer system | |
US10382311B2 (en) | Benchmarking servers based on production data | |
JP2009104490A (en) | Apparatus for testing program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20151027 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
AX | Request for extension of the european patent |
Extension state: BA ME |
|
DAX | Request for extension of the european patent (deleted) | ||
A4 | Supplementary search report drawn up and despatched |
Effective date: 20161020 |
|
RIC1 | Information provided on ipc code assigned before grant |
Ipc: G06F 11/36 20060101AFI20161014BHEP |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 20181201 |