Abstract: Embodiments of the present invention relate to method [200] and system [100] to execute at least one test case. The present invention comprises of a test suit [110], at least one test case executer [120] and a communication module [130]. The test suit [110] is configured to identify at least one first test device [140A] and at least one second test device [140B] based on the at least one test case wherein the at least one first test device [140A] and the at least one second test device [140B] operates on different platforms. The at least one test case executer [120] execute the at least one test case whereas the communication module [130] is configured to enable inter-communication between the at least one first test device [140A] and the at least one second test device [140B]. Fig. 2
FIELD OF THE INVENTION
The present invention relates to the field of automated testing and more particularly, relates to a method and a framework for testing devices working on different operating systems.
BACKGROUND OF THE INVENTION 5
With increase in number of mobile devices and users, there has been a huge development in the field of mobile technology. Mobile devices with different operating systems have come up in the market. In order to test the mobile devices or to test one or more applications stored thereon, various automated testing frameworks have been developed. However, the presently available 10 testing frameworks have certain drawbacks.
The presently available testing frameworks are capable of effectively testing devices having same operating systems. But, they are not capable of effectively testing the devices having different operating systems. Further, in processes where testing involves operations to be performed by multiple devices, i.e. a test 15 case where one set of steps are required to be performed by one device while other steps are required to be performed by other device/s, the tester has to write different test cases for each of the devices involved in the process. The existing frameworks are not capable of executing the same test case, in part, on one device and in part on another device. Presently, the testing frameworks 20 allow testing to be done in parts only wherein test steps or test cases performed on each of the devices are tested separately. This however, is a big loophole considering that there are numerous applications and processes wherein different steps of the same test case are required to be executed on different devices. Further, the inability of the existing testing frameworks to facilitate 25 communication between devices fails the entire objective of testing in some cases.
3
Accordingly, there is a need to provide an efficient system and method for overcoming the drawbacks inherent in the prior art by providing end to end testing of devices operating on different operating systems.
The information disclosed in this section is only for enhancement of understanding of the general background of the invention. The approaches 5 described herein are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section nor should they be taken as an acknowledgement or any form of 10 suggestion that this information is already known to a person skilled in the art.
SUMMARY OF THE INVENTION
In view of the above shortcomings, the present invention relates to a method and system for testing devices working on different platforms.
The present disclosure relates to a method for executing at least one test case, 15 comprising identifying at least one first test device and at least one second test device based on the at least one test case. The at least one first test device operates on a first platform and the at least one second test device operates on a second platform, wherein the first platform and the second platform are different from each other. Then, the at least one test case is executed on the at 20 least one first test device and the at least one second test device, wherein said at least one test case comprises at least one first test set and at least one second test set. Further, executing the at least one test case comprises of implementing the at least one first test set on the at least one first test device and the at least one second test set on the at least one second test device. Furthermore, 25 executing the at least one test case also comprises of enabling inter-
4
communication between the at least one first test device and the at least one second test device.
The present disclosure further relates to a system for executing at least one test case, comprising: a test suit configured to identify at least one first test device and at least one second test device based on the at least one test case. The at 5 least one first test device operates on a first platform and the at least one second test device operates on a second platform, wherein the first platform and the second platform are different from each other. At least one test case executer is configured to execute the at least one test case on the at least one first test device and the at least second test device. Further, the at least one test case 10 comprises at least a first test set and at least a second test set, and executing the at least one test case includes implementing the at least first test set on the first test device and the at least second test set on the at least second test device. Furthermore, a communication module is configured to enable inter-communication between the at least first one test device and the at least one 15 second test device.
BRIEF DESCRIPTION OF THE DRAWING
The accompanying drawings, which are incorporated herein, and constitute a part of this invention, illustrate exemplary embodiments of the disclosed methods and systems in which like reference numerals refer to the same parts 20 throughout the different drawings.
The preferred embodiments of the present invention can be best understood when read in conjunction with the following drawing:
FIG.1 illustrates an exemplary system architecture of the present invention.
FIG.2 illustrates an exemplary process flow diagram of the present invention. 25
5
It may be evident to skilled artisans that elements in the figure are only illustrative,
DETAILED DESCRIPTION OF THE INVENTION
In the following description, for the purposes of explanation, various specific details are set forth in order to provide a thorough understanding of the 5 disclosed embodiments. It will be apparent, however, that the disclosed embodiments may be practiced without these specific details. Several features described hereafter can each be used independently of one another or with any combination of other features.
The present invention discloses a system and method to execute at least one test 10 case. As used herein, a “test case” refers to a set of test steps/inputs, execution conditions, and expected results developed for a specific objective, such as to exercise a particular program path or to verify compliance with a specific requirement. Each test case has a set of test steps and herein referred to as a test set. Also, in the disclosure herein below, “platform” refers to an operating 15 system such AppleTM iOS, AndroidTM, SymbianTM, WindowsTM, Blackberry OSTM, BADATM, etc. Furthermore, the term “device” used herein refers to any electronic device, but is not limited to, a mobile phone, a computer, and any other personal digital assistant.
Referring to Fig. 1, the present invention relates to a system [100] for executing 20 at least one test case, wherein the system comprises a test suit [110], at least one test case executer [120], at least one first test device [140A], at least one second test device [140B], and a communication module [130].The at least one first test device [140A] is configured to operate on a first platform whereas the at least one second test device [140B] is configured to operate on a second 25 platform such that the first platform and the second platforms are different from each other. Although the invention has been explained herein below with
6
reference to only two test devices [140A] and [140B], it shall be appreciated that the invention may be implemented on/using multiple test devices, wherein said multiple devices may operate on a plurality of different platforms. The at least one first test device [140A] and the at least one second test device [140B] are collectively referred herein as test devices [140]. 5
The system [100] comprises of the test suit [110] further comprising a collection of test cases that may be received by the system [100] from a user or by another system/computing device. The test suit [110] is configured to identify the at least one first test device [140A] and the at least one second test device [140B] based on the at least one test case. Further, the test suit [110] identifies the at least 10 one first test device [140A] and the at least one second test device [140B] based on an availability status of the at least one first test device [140A] and the at least one second test device [140B] wherein the availability status defines whether the device is idle and available for testing or whether the device is occupied by some other test case for testing. The system [100] is configured to 15 store a list of test devices [140] connected to the system [100] along with their availability status, such as idle, on-hold, busy, etc. Said list may be stored in the form of a lookup table or any form of structured or unstructured database.
The at least one first test device [140A] and the at least one second test device [140B] is connected to the test suit [110] by the communication module [130]. 20 The communication module [130] is configured to enable inter-communication between the at least first test device [140A] and the at least second test device [140B]. The communication module [130] also acts as a bridge between the at least first test device [140A], the at least second test device [140B] and the test suit [110]. In an embodiment, the communication module [130] is a framework, 25 for example a Dexter open source framework.
The system [100] also comprises of at least one test case executer [120] configured to execute the at least one test case on the at least one first test
7
device [140A] and the at least one second test device [140B]. Further, the test case executer [120] is configured to release the at least one first test device [140A] and/or the at least one second test device [140B] on completion of the execution of the at least one test case on said at least one first test device [140A] and/or the at least one second test device [140B]. On successful execution of the 5 at least one test case, the availability status of the at least one first test device [140A] and/or the at least one second test device [140B] are changed to idle and these test devices [140] becomes available for testing.
The at least one test case comprises at least one first test set and at least one second test set. The at least one test case executer [120] is configured to execute 10 the at least one test case by implementing the at least first test set on the at least one first test device [140A] and the at least second test set on the at least one second test device [140B]. In an exemplary embodiment, the at least one first test device [140A] operates the first platform, for example an AndroidTM platform and the at least first test set is implemented on the at least one first 15 test device [140A]. In another exemplary embodiment, the at least one first test device [140A] operates on the first platform, for example an AppleTM iOS platform, and the at least first test set is implemented on the at least one first test device [140A]. Further, in another exemplary embodiment, the at least one second test device [140B] operates on the second platform, for example an 20 AndroidTM platform, and the at least one second test set is implemented on the at least one second test device [140B]. Furthermore, in another exemplary embodiment, the at least one second test device [140B] operates on the second platform, for example an AppleTM iOS platform and the at least one second test set is implemented on the at least one second test device [140B]. 25
The test suit {110], the test case executor [120], the communication module [130] and the test devices [140] may each comprise of one or more storage media and one or more processors.
8
Fig. 2 shows the method [200] for executing at least one test case, in accordance with exemplary embodiments of the present disclosure. The method begins at step 210 and proceeds to step 220.
Step 220 includes identifying at least one first test device [140A] and at least one second test device [140B] based on the at least one test case wherein the at 5 least one first test device [140A] operates on a first platform and the at least one second test device [140B] operates on a second platform. Further, the first platform and the second platform are different from each other. Identifying the test devices [140], includes identifying the requirement of the at least one test case to be executed, wherein requirement of the test case may specify the 10 number of test devices required, the type of test devices required, the platform of the test devices required, etc. Once the requirement of the test devices [104] is identified, the status of the test devices [140] connected to the system [100] are determined, i.e. which test devices [140] are in idle state and are available for use by the system [100]. The status of the test devices [140] may be 15 determined by either checking if the test devices [140] are being currently used by the system [100] for testing another test case, or by determining the availability status of the test devices [140] in the look-up table or database maintained by the system [100].
In case the requirement of the at least one test case to be executed is not able to 20 be met by the test devices [140] currently available with the system [100], the execution of such a test case is put on hold and the method pauses. Whereas, if the requirement is met, the process proceeds further.
After identifying [220] the at least one first test device [140A] and the at least one second test device [140B], the at least one test case is executed on the at 25 least one first test device [140A] and the at least one second test device [140B] wherein the at least one test case comprises of at least one first test set and at least one second test set.
9
The execution of the at least one test case comprises implementing, at step 230, the at least one first test set on the at least one first test device [140A] and the at least one second test set on the at least one second test device [140B]. The execution also comprises enabling, at step 240, inter-communication between the at least one first test device [140A] and the at least one second test device 5 [140B]. Therefore, a part of the test case (first test set) is executed on the first test device [140A] while another part of the test case (second test set) is executed on the second test device [140B].
In an embodiment, the first test set and the second test set are performed simultaneously, while in another embodiment, the first test set and the second 10 test set are performed consecutively. The invention encompasses executing the first test set and the second test set in the order as required by the test case. If no order of execution of test sets is required by the test case, then the test sets may be executed in any order, wherein in an embodiment the execution may be based on the availability of the test devices [140] required for execution of the 15 test sets.
For instance, a test case for testing a messaging application or system may include test steps such as testing when the message packet is sent by the sending device, when the packet has been received at the server, when the packet is sent by the server to the receiving device, and when the receiving 20 device actually receives said packet. In this example, the test case comprises of two test sets, i.e. first test set comprising testing when the message packet is sent by the sending device, when the packet has been received at the server; and a second test set comprising when the packet is sent by the server to the receiving device, and when the receiving device actually receives said packet. 25 This example involves two testing devices, i.e. the sending device (first test device) and the receiving device (second test device), wherein the sending and the receiving devices may operate on different operating systems. In this
10
example, the first test set may be executed at the first device i.e. the sending device; while the second test set may be executed by the second test device, i.e. the receiving device. The system [100] enables the execution of such a test case thereby allowing performance of end-to-end testing using a single testing framework and without the need of writing separate test cases for one process 5 where multiple testing devices are involved.
After successful execution of the at least one test case, one of the at least first test device [140A], the at least second test device [140B] and a combination thereof, is released and marked as available/idle for further testing.
The invention encompasses maintaining a list of test cases to be executed by the 10 system [100], wherein said list includes details such as requirements of the test case (i.e. the number, type, platform of test devices required for execution of the test case, etc.), priority of the test case (i.e. whether the test case is of a higher or lower priority in comparison with other test cases), timestamp when the test cases were submitted for execution, the time by which the test cases must be 15 executed, status of the test case (i.e. pending, on-hold, complete, etc.), etc. The invention also includes scheduling of the one or more test cases that are pending in the list by one or more methods such as first come first serve, fixed priority preemptive scheduling, earliest deadline first, etc.
Although the invention has been described with reference to only two test sets 20 executed by two testing devices, it shall be appreciated by those skilled in the art that such explanation is only exemplary and the invention also encompasses execution of test cases comprising more than two test sets performed by more than two devices.
The test suit [110], the at least one test case executer [120] and the 25 communication module [130] discussed may be present in the form of a hardware or a software or a hardware-software combination for performing
11
functions and/or operations as described herein. The connections and/or links between test suit [110], the at least one test case executer [120] and the communication module [130] shown in the figures are exemplary and may be connected in other possible ways. The connections and/or links between test suit [110], the at least one test case executer [120] and the communication 5 module [130] may be physical connections (such as wired or wireless connections/links) or logical connections (such as implementing in semiconductor device).
The present invention provides immense improvement over the existing testing frameworks and has numerous advantages. Some of these advantages may 10 include, but are not limited to, testing of devices with different platforms and executing different set of steps on different devices.
According to one embodiment of the present disclosure, the method described herein is implemented by one or more special-purpose computing devices. The special-purpose computing devices may be hard-wired to perform the 15 techniques, or may include digital electronic devices such as one or more application-specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs) that are persistently programmed to perform the techniques, or may include one or more general purpose hardware processors programmed to perform the techniques pursuant to program instructions in firmware, memory, 20 other storage, or a combination. Such special-purpose computing devices may also combine custom hard-wired logic, ASICs, or FPGAs with custom programming to accomplish the techniques. The special-purpose computing devices may be desktop computer systems, portable computer systems, handheld devices, networking devices or any other device that incorporates 25 hard-wired and/or program logic to implement the techniques.
The system [100] may include a bus or other communication mechanism for communicating information, and a processor coupled with the bus for processing
12
information. The hardware processor may be, for example, a general purpose microprocessor.
The system [100] may also include a main memory, such as a random access memory (RAM) or other dynamic storage device, coupled to the bus for storing information and instructions to be executed by the processor. The main memory 5 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by the processor. Such instructions, when stored in non-transitory storage media accessible to the processor, render the computer system into a special-purpose machine that is customized to perform the operations specified in the instructions. 10
The system [100] further includes a read only memory (ROM) or other static storage device coupled to the bus for storing static information and instructions for the processor. A storage device, such as a magnetic disk, optical disk, or solid-state drive is provided and coupled to the bus for storing information and instructions. 15
The system [100] may be coupled via the bus to a display, such as a cathode ray tube (CRT), for displaying information to a computer user. An input device, including alphanumeric and other keys, is coupled to the bus for communicating information and command selections to the processor. A cursor control, such as a mouse, a trackball, or cursor direction keys, may also be coupled to the bus for 20 communicating direction information and command selections to the processor and for controlling cursor movement on the display. The cursor control typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the cursor control to specify positions in a plane.
The system [100] may implement the techniques described herein using 25 customized hard-wired logic, one or more ASICs or FPGAs, firmware and/or program logic which causes the computer system to be a special-purpose
13
machine. According to one embodiment, the techniques herein are performed by the system [100] in response to the processor executing one or more sequences of one or more instructions contained in the main memory. Such instructions may be read into the main memory from another storage medium, such as the storage device. Execution of the sequences of instructions contained 5 in the main memory cause the processor to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.
The term “storage media” as used herein refers to any non-transitory media that store data and/or instructions that cause a machine to operate in a specific 10 fashion. Such storage media may comprise non-volatile media and/or volatile media. Non-volatile media includes, for example, optical disks, magnetic disks, or solid-state drives, such as the storage device. Volatile media may include dynamic memory, such as the main memory. Common forms of storage media include, for example, a floppy disk, a flexible disk, hard disk, solid-state drive, 15 magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, or any other memory chip or cartridge.
Although the present invention has been described in considerable detail with 20 reference to certain preferred embodiments and examples thereof, other embodiments and equivalents are possible. Even though numerous characteristics and advantages of the present invention have been set forth in the foregoing description, together with functional and procedural details, the disclosure is illustrative only, and changes may be made in detail, especially in 25 terms of the procedural steps within the principles of the invention to the full extent indicated by the broad general meaning of the terms. Thus, various modifications are possible of the presently disclosed system and process without
14
deviating from the intended scope and spirit of the present invention. Accordingly, in one embodiment, such modifications of the presently disclosed system and method are included in the scope of the present invention.
We claim:
1. A method [200] for executing at least one test case, comprising:
- identifying at least one first test device [140A] and at least one second test device [140B] based on the at least one test case, wherein
the at least one first test device [140A] operates on a first 5 platform and the at least one second test device [140B] operates on a second platform, wherein the first platform and the second platform are different from each other;
- executing the at least one test case on the at least one first test device [140A] and the at least one second test device [140B], wherein 10 said at least one test case comprises at least one first test set and at least one second test set, and wherein executing the at least one test case includes
implementing the at least one first test set on the at least one first test device [140A] and the at least one second test set on 15 the at least one second test device [140B], and
enabling inter-communication between the at least one first test device [140A]and the at least one second test device [140B].
2. A method [200] as claimed in claim 1, wherein identifying the at least one 20 first test device [140A] and the at least one second test device [140B] comprises checking an availability status of the at least one first test device [140A] and the at least one second test device [140B].
16
3. A method [200] as claimed in claim 1, further comprising releasing one of the at least one first test device [140A], the at least one second test device [140B] and a combination thereof, based on execution of the at least one test case.
4. A system [100] for executing at least one test case, comprising: 5
- a test suit [110] configured to identify at least one first test device [140A] and at least one second test device [140B] based on the at least one test case, wherein
the at least one first test device [140A] operates on a first platform and the at least one second test device [140B] 10 operates on a second platform, wherein the first platform and the second platform are different from each other;
- at least one test case executer [120] configured to execute the at least one test case on the at least one first test device [140A] and the at least one second test device [140B], wherein 15
the at least one test case comprises at least one first test set and at least one second test set, and
executing the at least one test case includes implementing the at least one first test set on the at least one first test device [140A] and the at least second test set on the at least one second test 20 device [140B]; and
- a communication module [130] configured to enable inter-communication between the at least one first test device [140A] and the at least one second test device [140B].
25
17
5. A system as claimed in claim 4, the test suit [110] is further configured to check an availability status of the at least one first test device [140A] and the at least one second test device [140B].
6. A system as claimed in claim 4, the at least one test case executer [120] is further configured to release the at least one first test device [140A]. 5
7. A system as claimed in claim 4, the at least one test case executer [120] is further configured to release the at least one second test device [140B].
| # | Name | Date |
|---|---|---|
| 1 | 201611024076-IntimationOfGrant20-03-2024.pdf | 2024-03-20 |
| 1 | Form 3 [14-07-2016(online)].pdf | 2016-07-14 |
| 2 | 201611024076-PatentCertificate20-03-2024.pdf | 2024-03-20 |
| 2 | Drawing [14-07-2016(online)].pdf | 2016-07-14 |
| 3 | Description(Provisional) [14-07-2016(online)].pdf | 2016-07-14 |
| 3 | 201611024076-Written submissions and relevant documents [04-03-2024(online)].pdf | 2024-03-04 |
| 4 | abstract.jpg | 2016-08-10 |
| 4 | 201611024076-Correspondence to notify the Controller [12-02-2024(online)].pdf | 2024-02-12 |
| 5 | Other Patent Document [20-08-2016(online)].pdf | 2016-08-20 |
| 5 | 201611024076-FORM-26 [12-02-2024(online)].pdf | 2024-02-12 |
| 6 | Form 26 [13-10-2016(online)].pdf | 2016-10-13 |
| 6 | 201611024076-US(14)-HearingNotice-(HearingDate-20-02-2024).pdf | 2024-01-30 |
| 7 | 201611024076-Power of Attorney-131016.pdf | 2016-10-15 |
| 7 | 201611024076-FER.pdf | 2021-10-17 |
| 8 | 201611024076-FER_SER_REPLY [19-03-2021(online)].pdf | 2021-03-19 |
| 8 | 201611024076-Correspondence-131016.pdf | 2016-10-15 |
| 9 | 201611024076-FORM 4(ii) [27-02-2021(online)].pdf | 2021-02-27 |
| 9 | Other Patent Document [18-10-2016(online)].pdf | 2016-10-18 |
| 10 | 201611024076-Changing Name-Nationality-Address For Service [22-02-2018(online)].pdf | 2018-02-22 |
| 10 | 201611024076-OTHERS-201016.pdf | 2016-10-21 |
| 11 | 201611024076-FORM 18 [22-02-2018(online)].pdf | 2018-02-22 |
| 11 | 201611024076-OTHERS-201016-.pdf | 2016-10-21 |
| 12 | 201611024076-COMPLETE SPECIFICATION [13-07-2017(online)].pdf | 2017-07-13 |
| 12 | 201611024076-Correspondence-201016.pdf | 2016-10-21 |
| 13 | 201611024076-CORRESPONDENCE-OTHERS [13-07-2017(online)].pdf | 2017-07-13 |
| 13 | 201611024076-ENDORSEMENT BY INVENTORS [13-07-2017(online)].pdf | 2017-07-13 |
| 14 | 201611024076-DRAWING [13-07-2017(online)].pdf | 2017-07-13 |
| 15 | 201611024076-CORRESPONDENCE-OTHERS [13-07-2017(online)].pdf | 2017-07-13 |
| 15 | 201611024076-ENDORSEMENT BY INVENTORS [13-07-2017(online)].pdf | 2017-07-13 |
| 16 | 201611024076-COMPLETE SPECIFICATION [13-07-2017(online)].pdf | 2017-07-13 |
| 16 | 201611024076-Correspondence-201016.pdf | 2016-10-21 |
| 17 | 201611024076-OTHERS-201016-.pdf | 2016-10-21 |
| 17 | 201611024076-FORM 18 [22-02-2018(online)].pdf | 2018-02-22 |
| 18 | 201611024076-OTHERS-201016.pdf | 2016-10-21 |
| 18 | 201611024076-Changing Name-Nationality-Address For Service [22-02-2018(online)].pdf | 2018-02-22 |
| 19 | 201611024076-FORM 4(ii) [27-02-2021(online)].pdf | 2021-02-27 |
| 19 | Other Patent Document [18-10-2016(online)].pdf | 2016-10-18 |
| 20 | 201611024076-Correspondence-131016.pdf | 2016-10-15 |
| 20 | 201611024076-FER_SER_REPLY [19-03-2021(online)].pdf | 2021-03-19 |
| 21 | 201611024076-FER.pdf | 2021-10-17 |
| 21 | 201611024076-Power of Attorney-131016.pdf | 2016-10-15 |
| 22 | 201611024076-US(14)-HearingNotice-(HearingDate-20-02-2024).pdf | 2024-01-30 |
| 22 | Form 26 [13-10-2016(online)].pdf | 2016-10-13 |
| 23 | 201611024076-FORM-26 [12-02-2024(online)].pdf | 2024-02-12 |
| 23 | Other Patent Document [20-08-2016(online)].pdf | 2016-08-20 |
| 24 | 201611024076-Correspondence to notify the Controller [12-02-2024(online)].pdf | 2024-02-12 |
| 24 | abstract.jpg | 2016-08-10 |
| 25 | Description(Provisional) [14-07-2016(online)].pdf | 2016-07-14 |
| 25 | 201611024076-Written submissions and relevant documents [04-03-2024(online)].pdf | 2024-03-04 |
| 26 | Drawing [14-07-2016(online)].pdf | 2016-07-14 |
| 26 | 201611024076-PatentCertificate20-03-2024.pdf | 2024-03-20 |
| 27 | Form 3 [14-07-2016(online)].pdf | 2016-07-14 |
| 27 | 201611024076-IntimationOfGrant20-03-2024.pdf | 2024-03-20 |
| 1 | TPO201611024076E_23-08-2020.pdf |