Technical Field
[0001] This disclosure relates generally to performing testing, and more particularly to
a method and device for performing testing across a plurality of smart devices.
Background
[0002] In a server test automation environment, server or application testing is a major
milestone for commercial success of any product. For a large-scale server/application
deployment, the testing phase is a huge challenge and requires a large number of test
devices to be connected to the system for various tests. Currently, while virtual
clients or synthetic clients are serving the purpose to some extent, they fail to
address basic requirements in the Digital Rights Management (DRM) world. If the system
under test has DRM involved and the subject under test involves proprietary solutions,
it is impossible to simulate DRM licensing using trivial simulation tools.
[0003] Usage of a large number of actual dedicated devices for testing is expensive, and
there is a limit on how many devices can be connected to the system. Additionally,
availability/arranging of dedicated specific model devices for certain tests in large
numbers is also difficult. Further, in order to scale up the number of testing devices
and to keep testing of applications specific to a particular device (based on version
and model), multiple devices need to be procured. This is time-consuming, difficult
and expensive.
SUMMARY
[0004] In one embodiment, a method of performing testing across a plurality of smart devices
is disclosed. The method includes registering the plurality of smart devices to be
accessed for performing testing, wherein the plurality of smart devices are associated
with a plurality of users. The method further includes determining, by the testing
device, at least one time-window for each of the plurality of smart devices, wherein
a smart device is in an idle mode during the at least one time-window. The method
includes gathering, by the testing device, testing criteria and time duration for
performing a testing operation. The method further includes dynamically creating,
by the testing device, a test group that includes one or more smart devices from the
plurality of smart devices, wherein each of the one or more smart devices in the test
group satisfy the testing criteria, and wherein the at least one time-window of each
smart device in the test group is within the time duration.
[0005] In another embodiment, a testing device for performing testing across a plurality
of smart devices is disclosed. The testing device includes a processor; and a memory
communicatively coupled to the processor, wherein the memory stores processor instructions,
which, on execution, causes the processor to register the plurality of smart devices
to be accessed for performing testing, wherein the plurality of smart devices are
associated with a plurality of users. The processor is further caused to determine
at least one time-window for each of the plurality of smart devices, wherein a smart
device is in an idle mode during the at least one time-window. The processor is caused
to gather testing criteria and time duration for performing a testing operation. The
processor is further caused to dynamically create a test group that includes one or
more smart devices from the plurality of smart devices, wherein each of the one or
more smart devices in the test group satisfy the testing criteria, and wherein the
at least one time-window of each smart device in the test group is within the time
duration.
[0006] In yet another embodiment, a non-transitory computer-readable storage medium is disclosed.
The non-transitory computer-readable storage medium has instructions stored thereon,
a set of computer-executable instructions causing a computer including one or more
processors to perform steps that include registering a plurality of smart devices
to be accessed for performing testing, wherein the plurality of smart devices are
associated with a plurality of users. The steps further include determining at least
one time-window for each of the plurality of smart devices, wherein a smart device
is in an idle mode during the at least one time-window. The steps include gathering
testing criteria and time duration for performing a testing operation. The steps further
include dynamically creating a test group that includes one or more smart devices
from the plurality of smart devices, wherein each of the one or more smart devices
in the test group satisfy the testing criteria, and wherein the at least one time-window
of each smart device in the test group is within the time duration.
[0007] It is to be understood that both the foregoing general description and the following
detailed description are exemplary and explanatory only and are not restrictive of
the invention, as claimed.
BRIEF DESCRIPTION OF THE DRAWINGS
[0008] The accompanying drawings, which are incorporated in and constitute a part of this
disclosure, illustrate exemplary embodiments and, together with the description, serve
to explain the disclosed principles.
FIG. 1 is a block diagram illustrating a system for performing testing across a plurality
of smart devices, in accordance with an embodiment.
FIG. 2 is a block diagram illustrating various modules within a memory of a testing device
configured to perform testing across a plurality of smart devices, in accordance with
an embodiment.
FIG. 3 illustrates a flowchart of a method of performing testing by creating a test group
of smart devices, in accordance with an embodiment.
FIG. 4 illustrates a flowchart of a method of performing testing across a plurality of smart
devices, in accordance with another embodiment.
FIG. 5 illustrates a flowchart of a method of performing analysis on test results collected
from each smart device in a test group, in accordance with an embodiment.
FIG. 6 illustrates a block diagram of an exemplary computer system for implementing various
embodiments.
DETAILED DESCRIPTION
[0009] Exemplary embodiments are described with reference to the accompanying drawings.
Wherever convenient, the same reference numbers are used throughout the drawings to
refer to the same or like parts. While examples and features of disclosed principles
are described herein, modifications, adaptations, and other implementations are possible
without departing from the scope of the disclosed embodiments. It is intended that
the following detailed description be considered as exemplary only, with the true
scope being indicated by the following claims.
[0010] Additional illustrative embodiments are listed below. In one embodiment, a system
100 for performing testing across a plurality of smart devices 102 is illustrated
in FIG. 1. The testing may either be application testing, in order to test performance
of an application; a smart device testing, in order to test performance of the smart
device, or server testing, in order to test the load that a server can manage, when
accessed by multiple smart devices at a given time. The smart devices 102 may include
any computing device or communication device that is capable of participating in testing.
For example, the plurality of smart devices 102 may include, but are not limited to,
a laptop 102a, a TV streaming device 102b, a smart phone 102c, and a smart TV 102d.
Other examples of smart devices 102 may include, but are not limited to a set-top
box, a phablet, or a tablet. Each of plurality of smart devices 102 is associated
with a user. At certain point of time (for example, late night or early mornings),
one or more of plurality of smart devices 102 may be idle.
[0011] System 100 further includes a testing device 104 that communicates with one or more
of plurality of smart devices 102 via a network 106 and performs testing across the
plurality of smart devices 102. One or more of the plurality of smart devices 102
that participate in testing, thus act as test clients or test nodes. The testing device
104 may be a server controlled by an administrator, or a smart device associated with
a user. Network 106 may be a wired or a wireless network and the examples may include,
but are not limited to the Internet, Wireless Local Area Network (WLAN), Wi-Fi, Long
Term Evolution (LTE), Worldwide Interoperability for Microwave Access (WiMAX), and
General Packet Radio Service (GPRS).
[0012] Users of one or more of the plurality of smart devices 102 may register with the
testing device 104 in order to participate in testing. To this end, the testing device
104 includes a processor 108 that is communicatively coupled to a memory 110, which
may be a non-volatile memory or a volatile memory. Examples of non-volatile memory,
may include, but are not limited to a flash memory, a Read Only Memory (ROM), a Programmable
ROM (PROM), Erasable PROM (EPROM), and Electrically EPROM (EEPROM) memory. Examples
of volatile memory may include, but are not limited Dynamic Random Access Memory (DRAM),
and Static Random-Access memory (SRAM).
[0013] Memory 110 further includes various modules that enable testing device 104 to perform
testing across plurality of smart devices 102. These modules are explained in detail
in conjunction with FIG. 2. Testing device 104 may further include a display 112 having
a User Interface (Ul) 114 that may be used by an administrator to provide inputs and
to interact with testing device 104. Display 112 may further be used to display a
result of the analysis performed on test results received from one or more of the
plurality of smart devices 102.
[0014] Referring now to FIG. 2, a block diagram of various modules within the memory 110
of a testing device 104 configured to perform testing across a plurality of smart
devices 102 is illustrated, in accordance with an embodiment. Testing device 104 may
be a server. Alternatively, the testing device 104 may be a smart device, for example,
a laptop, a desktop, or a smart phone. Memory 110 in testing device 104 includes a
cloud interface module 202, a device manager module 204, a computation server module
206, a test server module 208, and an analysis module 210.
[0015] Cloud interface module 202 interfaces with network 106 (the cloud) and enables interaction
of the testing device 104 with the plurality of smart devices 102 via network 106.
Cloud interface module 202 thus enables a client-server model in system 100, where
testing device 104 acts as a server, while plurality of smart devices 102 act as test
clients. Status data and control data for each of plurality of smart devices 102 are
carried out by cloud interface module 202 and it abstracts other modules in memory
110.
[0016] Plurality of smart devices 102 to be accessed for performing testing are registered
with the device manager module 204. Thereafter, device manager module 204 periodically
retrieves a plurality of parameters associated with each of the plurality of smart
devices 102. The plurality of parameters associated with a smart device may include,
but are not limited to, a type of the smart device, a model of the smart device, an
access permission granted by a user of the smart device, a registration detail associated
with the smart device, a manufacturer of the smart device, an operating system (OS)
installed on the smart device, a geography associated with the smart device, a current
location of the smart device, various health parameters associated with the smart
device, or a storage space within the smart device. Device manager module 204 additionally
determines one or more time-windows for each of plurality of smart devices 102, such
that a smart device is in an idle mode during associated one or more time-windows.
This is further explained in detail in conjunction with FIG. 3 and FIG. 4. Data collected
from the plurality of smart devices 102 is stored and periodically updated by device
manager module 204 in a device database 212.
[0017] Device database 212 may be used by the computation server module 206 to dynamically
create a test group that includes one or more smart devices from the plurality of
smart devices 102. Each smart device within the test group satisfies one or more testing
criteria associated with a testing operation. Additionally, the one or more time-windows
for each smart device in the test group is within a time duration required for performing
the testing operation. Computation server module 206 gathers the testing criteria
and the time duration for performing the testing operation from test server module
208. Computation server module 206 additionally manages test scripts 214, received
from test server module 208, for various requirements. This is further explained in
detail in conjunction with FIG. 3 and FIG. 4.
[0018] Test server module 208 generates test scripts 214 (or test cases) and also determines
an execution sequence for test scripts 214. Test scripts 214 may be generated based
on issues faced during product operation and requirement of the stake holder, i.e.,
the test requestor. Test server module 208 enables defining test criteria and a time
duration required for executing each of test scripts 214. The test criteria may include
specific requirements for the plurality of parameters. Once computation server module
206 creates the test group, test server module 208 automatically triggers execution
of associated test scripts. Once one or more of test scripts 214 have been executed,
a logger 216 collects result logs associated with test execution from one or more
of plurality of smart devices 102 over network 106 and aggregates them for further
analysis. Analysis module 210 then gathers test results from one or more of plurality
of smart devices 102 via computation server module 206 or logger 216 to perform predefined
analysis for issue resolution. Result of the analysis thus performed may be displayed
on dashboard via display 112. This has been explained in detail in conjunction with
FIG. 5.
[0019] Referring to FIG. 3, a flowchart of a method of performing testing by creating a
test group of smart devices is illustrated, in accordance with an embodiment. At step
302, users of the plurality of smart devices 102 register their associated smart devices
with the testing device 104, which enables the testing device 104 to access one or
more of the plurality of smart devices 102 to perform testing. It will apparent to
a person skilled in the art that multiple smart devices associated with a single user
may be registered with testing device 104. While registering, the users may also provide
details regarding a plurality of parameters associated with plurality of smart devices
102. The plurality of parameters associated with a smart device may include, but are
not limited to a type of the smart device, a model of the smart device, an access
permission granted by a user of the smart device, a registration detail associated
with the smart device, a manufacturer of the smart device, an OS installed on the
smart device, a geography associated with the smart device, or a storage space within
the smart device.
[0020] The user of the smart device may also specify one or more timings (day and/or time)
during which the smart device 102 may be available to participate in testing performed
by the testing device 104. By way of an example, the user may specify certain times
within a day, when the user may not be using the smart device. Alternatively or in
addition, the user may specify certain times when the smart device would be in use,
for example, in the case of a smart TV or a media streaming device. The users may
be provided with an online form to provide the plurality of parameters to testing
device 104. The form may also include consent of the users through self-nominations
and reward programs.
[0021] Alternatively, in response to registering the plurality of smart devices 102 with
testing device 104, testing device 104 may install a thin client on each of the plurality
of smart devices 102. In this case, the thin client may periodically monitor each
of plurality of smart devices 102 to retrieve the plurality of parameters. The plurality
of parameters in this case may also include the current location of each of plurality
of smart devices 102. In an embodiment, at first instance of registering a smart device,
a user of the smart device may be required to provide the plurality of parameters
associated with the smart device at the time of registration. Subsequently, after
registration, the thin client may periodically retrieve the plurality of parameters
and update one or more of the plurality of parameters that may have changed. The thin
client would also be able to capture usage pattern of a smart device in order to determine
idle times for the smart device. These idle times determined for the smart device
may then be used to perform testing by testing device 104. In addition to retrieving
the plurality of parameters, the thin client enables communication of a smart device
with testing device 104.
[0022] Once the plurality of parameters for each of plurality of smart devices 102 have
been retrieved, they are stored in a table, such that the table includes information
associated with the plurality of parameters for each of the plurality of smart devices
102. In an exemplary embodiment, information associated with the plurality of parameters
for a smart device may be stored as illustrated in table 1 given below:
TABLE 1
Device Model |
XYZ |
Device OS |
v1.0 |
Geography |
GMT + 5:30 |
Free Window |
12:00 - 3:00 AM |
Idle Since |
9mins |
Test Details |
Not Executed |
[0023] At step 304, the testing device 104 determines one or more time-windows for each
of plurality of smart devices 102, such that during one or more time-windows determined
for a smart device, the smart device is in an idle mode. In other words, free time-windows
are determined for each of plurality of smart devices 102. In an embodiment, the thin
client, installed in a smart device post registration, may automatically capture usage
pattern of the smart device to determine one or more time windows during which the
smart device is an idle mode. Alternatively, details regarding the idle mode of the
smart device may have been provided by a user of the smart device at the time of registration.
[0024] At step 306, the testing device 104 gathers testing criteria for a testing operation
and a time duration required for performing the testing operation. The testing operation
may be a test script or a test case and may include a list of tests that are required
to be executed. The testing operation may be for application testing, smart device
testing, or server testing. The testing criteria may include specific requirements
for one or more of the plurality of parameters retrieved for each of the plurality
of smart devices 102. The specific requirements may include, but are not limited to
version, model, or OS (for example, Android®, Windows®, or IoS®) of a smart device
that acts as a test client, geography (e.g., a time zone) to which a smart device
belongs (in order to avoid latencies), or other common health parameters of a smart
device. Specifying a requirement for certain health parameters ensures that the user
of the smart device is not affected as a result of performing a test operation using
the smart device. By way of an example, testing criteria may include the following
specific requirements: smart phones, located within California, having latest version
of Android® OS, a minimum Random Access Memory (RAM) of 2GB, and being idle between
11 PM to 4 AM in the Pacific time zone.
[0025] Based on the testing criteria and the time duration for the testing operation, the
testing device 104, at step 308, dynamically creates a test group that includes one
or more smart devices from plurality of smart devices 102. The test group is created,
such that, each of the one or more smart devices in the test group satisfy the testing
criteria. Additionally, one or more time-windows determined for each smart device
in the test group is also within the time duration. By way of an example, a testing
operation, for complete execution, may require a minimum duration of two hours to
be executed. Thus, while forming the test group, testing device 104 selects only those
smart devices that are continuously idle at least for a duration of two hours.
[0026] Dynamic selection of smart devices (that act as test clients) to form the test group
works on the principle of work sharing over a large number of qualifying smart devices
and remote execution of the test operation. In this framework, remote servers under
test are validated by applications running on smart devices that may be located across
the geography (thus, different time zones) and connected over network 106 (or the
cloud). As these test clients which are used to perform testing operations (whether
for application or for a server) are physical devices which are selectively "loaned"
from end users, the problem associated with arranging dedicated devices of specific
model for certain tests, is resolved.
[0027] Referring now to FIG. 4, a flowchart of a method of performing testing by creating
a test group of smart devices is illustrated, in accordance with another embodiment.
At step 402, plurality of smart devices 102 are registered with testing device 104
in order to be accessed for performing testing. In response to registration, a thin
client is installed on each of plurality of smart devices 102 at step 404. The thin
client enables communication of testing device 104 with each of plurality of smart
devices 102. Additionally, the thin client periodically monitors each of the plurality
of smart devices 102 to retrieve a plurality of parameters associated with each of
the plurality of smart devices 102. Once the plurality of parameters have been retrieved,
they are stored in a table within testing device 104 at step 406. The table includes
information associated with the plurality of parameters for each of the plurality
of smart devices 102. This has already been explained in detail in conjunction with
FIG. 3.
[0028] At step 408, one or more time-windows for each of the plurality of smart devices
102 are determined, such that, a smart device is in an idle mode during associated
one or more time-windows. In an embodiment, the thin client may automatically capture
a usage pattern of each of the plurality of smart devices 102 to determine one or
more time windows during which each of the plurality of smart devices 102 would be
in an idle mode.
[0029] At step 410, testing criteria and a time duration for performing a testing operation
are gathered. Based on the testing criteria and time duration, a test group that includes
one or more smart devices from the plurality of smart devices is dynamically created.
Each of the one or more smart devices in the test group satisfy the testing criteria.
Additionally, one or more time-windows determined for each smart device in the test
group is within the time duration required for the test operation to be executed.
This has already been explained in detail in conjunction with FIG. 3. In case the
testing criteria for performing the test operation changes, the test group may be
modified at step 412. In order to modify the test group, the number or type of smart
devices within the test group may be changed.
[0030] Referring now to FIG. 5, a flowchart of a method of performing analysis on test results
collected from each smart device in a test group is illustrated, in accordance with
an embodiment. At step 502, a test group that includes one or more smart devices from
the plurality of smart devices 102 is dynamically created. The test group includes
smart devices that qualify the test criteria. This has been explained in detail in
conjunction with FIG. 3 and FIG. 4. Once the test group has been created, one or more
applications are installed on each smart device within the test group at step 504.
The one or more applications facilitate a testing framework on each smart device within
the test group, such that, regular functionality of no smart device is affected as
a result of participating in execution of the testing operation. The one or more applications
may include generic client applications and test applications.
[0031] After the one or more applications have been installed in each smart device within
the test group, one or more test scripts are executed on each smart device within
the test group at step 506. Certain operations may be performed by execution of the
one or more test scripts (for example, download of some content or posting a message
on a server etc.). The one or more test scripts enable targeted server testing, smart
device testing, or application testing via smart devices in the test group. The one
or more applications control execution of test scripts in the smart devices in order
to carry out the necessary test scenarios. In an embodiment, the one or more test
scripts may be executed simultaneously on each smart device within the test group
and that too immediately after creation of the test group. This ensure that there
is huge concurrency on a server that is under test. In another embodiment, smart devices
within the test group are configured with a series of test scripts to be executed
on a remote server. However, these test cases are executed at a later point in time,
when a smart device meets the testing criteria. In yet another embodiment, execution
of test scripts happens in background on the smart device.
[0032] At step 508, results of executing the test script on each smart device in the test
group are collected and aggregated. The result may be received in multiple formats,
which may include, but are not limited to log files or feedback forms. Thereafter,
at step 510, a predefined analysis is performed on the results collected from each
smart device in the test group. The predefined analysis may be performed based on
requirement specified by a stake holder who requested the test operation.
[0033] FIG. 6 is a block diagram of an exemplary computer system for implementing various
embodiments. Computer system 602 may include a central processing unit ("CPU" or "processor")
604. Processor 604 may include at least one data processor for executing program components
for executing user-generated or system-generated requests. A user may include a person,
a person using a device such as such as those included in this disclosure, or such
a device itself. Processor 604 may include specialized processing units such as integrated
system (bus) controllers, memory management control units, floating point units, graphics
processing units, digital signal processing units, etc. Processor 604 may include
a microprocessor, such as AMD® ATHLON® microprocessor, DURON® microprocessor OR OPTERON®
microprocessor, ARM's application, embedded or secure processors, IBM® POWERPC®, INTEL'S
CORE® processor, ITANIUM® processor, XEON® processor, CELERON® processor or other
line of processors, etc. Processor 604 may be implemented using mainframe, distributed
processor, multi-core, parallel, grid, or other architectures. Some embodiments may
utilize embedded technologies like application-specific integrated circuits (ASICs),
digital signal processors (DSPs), Field Programmable Gate Arrays (FPGAs), etc.
[0034] Processor 604 may be disposed in communication with one or more input/output (I/O)
devices via an I/O interface 606. I/O interface 606 may employ communication protocols/methods
such as, without limitation, audio, analog, digital, monoaural, RCA, stereo, IEEE-1394,
serial bus, universal serial bus (USB), infrared, PS/2, BNC, coaxial, component, composite,
digital visual interface (DVI), high-definition multimedia interface (HDMI), RF antennas,
S-Video, VGA, IEEE 802.n /b/g/n/x, Bluetooth, cellular (e.g., code-division multiple
access (CDMA), high-speed packet access (HSPA+), global system for mobile communications
(GSM), long-term evolution (LTE), WiMax, or the like), etc.
[0035] Using I/O interface 606, computer system 602 may communicate with one or more I/O
devices. For example, an input device 608 may be an antenna, keyboard, mouse, joystick,
(infrared) remote control, camera, card reader, fax machine, dongle, biometric reader,
microphone, touch screen, touchpad, trackball, sensor (e.g., accelerometer, light
sensor, GPS, gyroscope, proximity sensor, or the like), stylus, scanner, storage device,
transceiver, video device/source, visors, etc. An output device 610 may be a printer,
fax machine, video display (e.g., cathode ray tube (CRT), liquid crystal display (LCD),
light-emitting diode (LED), plasma, or the like), audio speaker, etc. In some embodiments,
a transceiver 612 may be disposed in connection with processor 604. Transceiver 612
may facilitate various types of wireless transmission or reception. For example, transceiver
612 may include an antenna operatively connected to a transceiver chip (e.g., TEXAS®
INSTRUMENTS WILINK WL1283® transceiver, BROADCOM® BCM4550IUB8® transceiver, INFINEON
TECHNOLOGIES® X-GOLD 618-PMB9800® transceiver, or the like), providing IEEE 802.11a/b/g/n,
Bluetooth, FM, global positioning system (GPS), 2G/3G HSDPA/HSUPA communications,
etc.
[0036] In some embodiments, processor 604 may be disposed in communication with a communication
network 614 via a network interface 616. Network interface 616 may communicate with
communication network 614. Network interface 616 may employ connection protocols including,
without limitation, direct connect, Ethernet (e.g., twisted pair 50/500/5000 Base
T), transmission control protocol/internet protocol (TCP/IP), token ring, IEEE 802.11a/b/g/n/x,
etc. Communication network 614 may include, without limitation, a direct interconnection,
local area network (LAN), wide area network (WAN), wireless network (e.g., using Wireless
Application Protocol), the Internet, etc. Using network interface 616 and communication
network 614, computer system 602 may communicate with devices 618, 620, and 622. These
devices may include, without limitation, personal computer(s), server(s), fax machines,
printers, scanners, various mobile devices such as cellular telephones, smartphones
(e.g., APPLE® IPHONE® smartphone, BLACKBERRY® smartphone, ANDROID® based phones, etc.),
tablet computers, eBook readers (AMAZON® KINDLE® ereader, NOOK® tablet computer, etc.),
laptop computers, notebooks, gaming consoles (MICROSOFT® XBOX® gaming console, NINTENDO®
DS® gaming console, SONY® PLAYSTATION® gaming console, etc.), or the like. In some
embodiments, computer system 602 may itself embody one or more of these devices.
[0037] In some embodiments, processor 604 may be disposed in communication with one or more
memory devices (e.g., RAM 626, ROM 628, etc.) via a storage interface 624. Storage
interface 624 may connect to memory 630 including, without limitation, memory drives,
removable disc drives, etc., employing connection protocols such as serial advanced
technology attachment (SATA), integrated drive electronics (IDE), IEEE-1394, universal
serial bus (USB), fiber channel, small computer systems interface (SCSI), etc. The
memory drives may further include a drum, magnetic disc drive, magneto-optical drive,
optical drive, redundant array of independent discs (RAID), solid-state memory devices,
solid-state drives, etc.
[0038] Memory 630 may store a collection of program or database components, including, without
limitation, an operating system 632, user interface application 634, web browser 636,
mail server 638, mail client 640, user/application data 642 (e.g., any data variables
or data records discussed in this disclosure), etc. Operating system 632 may facilitate
resource management and operation of computer system 602. Examples of operating systems
632 include, without limitation, APPLE® MACINTOSH® OS X platform, UNIX platform, Unix-like
system distributions (e.g., Berkeley Software Distribution (BSD), FreeBSD, NetBSD,
OpenBSD, etc.), LINUX distributions (e.g., RED HAT®, UBUNTU®, KUBUNTU®, etc.), IBM®
OS/2 platform, MICROSOFT® WINDOWS® platform (XP, Vista/7/8, etc.), APPLE® IOS® platform,
GOOGLE® ANDROID® platform, BLACKBERRY® OS platform, or the like. User interface 634
may facilitate display, execution, interaction, manipulation, or operation of program
components through textual or graphical facilities. For example, user interfaces may
provide computer interaction interface elements on a display system operatively connected
to computer system 602, such as cursors, icons, check boxes, menus, scrollers, windows,
widgets, etc. Graphical user interfaces (GUIs) may be employed, including, without
limitation, APPLE® Macintosh® operating systems' AQUA® platform, IBM® OS/2® platform,
MICROSOFT® WINDOWS® platform (e.g., AERO® platform, METRO® platform, etc.), UNIX X-WINDOWS,
web interface libraries (e.g., ACTIVEX® platform, JAVA® programming language, JAVASCRIPT®
programming language, AJAX® programming language, HTML, ADOBE® FLASH® platform, etc.),
or the like.
[0039] In some embodiments, computer system 602 may implement a web browser 636 stored program
component. Web browser 636 may be a hypertext viewing application, such as MICROSOFT®
INTERNET EXPLORER® web browser, GOOGLE® CHROME® web browser, MOZILLA® FIREFOX® web
browser, APPLE® SAFARI® web browser, etc. Secure web browsing may be provided using
HTTPS (secure hypertext transport protocol), secure sockets layer (SSL), Transport
Layer Security (TLS), etc. Web browsers may utilize facilities such as AJAX, DHTML,
ADOBE® FLASH® platform, JAVASCRIPT® programming language, JAVA® programming language,
application programming interfaces (APis), etc. In some embodiments, computer system
602 may implement a mail server 638 stored program component. Mail server 638 may
be an Internet mail server such as MICROSOFT® EXCHANGE® mail server, or the like.
Mail server 638 may utilize facilities such as ASP, ActiveX, ANSI C++/C#, MICROSOFT
.NET® programming language, CGI scripts, JAVA® programming language, JAVASCRIPT® programming
language, PERL® programming language, PHP® programming language, PYTHON® programming
language, WebObjects, etc. Mail server 638 may utilize communication protocols such
as internet message access protocol (IMAP), messaging application programming interface
(MAPI), Microsoft Exchange, post office protocol (POP), simple mail transfer protocol
(SMTP), or the like. In some embodiments, computer system 602 may implement a mail
client 640 stored program component. Mail client 640 may be a mail viewing application,
such as APPLE MAIL® mail client, MICROSOFT ENTOURAGE® mail client, MICROSOFT OUTLOOK®
mail client, MOZILLA THUNDERBIRD® mail client, etc.
[0040] In some embodiments, computer system 602 may store user/application data 642, such
as the data, variables, records, etc. as described in this disclosure. Such databases
may be implemented as fault-tolerant, relational, scalable, secure databases such
as ORACLE® database OR SYBASE® database. Alternatively, such databases may be implemented
using standardized data structures, such as an array, hash, linked list, struct, structured
text file (e.g., XML), table, or as object-oriented databases (e.g., using OBJECTSTORE®
object database, POET® object database, ZOPE® object database, etc.). Such databases
may be consolidated or distributed, sometimes among the various computer systems discussed
above in this disclosure. It is to be understood that the structure and operation
of the any computer or database component may be combined, consolidated, or distributed
in any working combination.
[0041] It will be appreciated that, for clarity purposes, the above description has described
embodiments of the invention with reference to different functional units and processors.
However, it will be apparent that any suitable distribution of functionality between
different functional units, processors or domains may be used without detracting from
the invention. For example, functionality illustrated to be performed by separate
processors or controllers may be performed by the same processor or controller. Hence,
references to specific functional units are only to be seen as references to suitable
means for providing the described functionality, rather than indicative of a strict
logical or physical structure or organization.
[0042] Various embodiments of the invention provide method and device for performing testing
across a plurality of smart devices. The proposed solution enables generating a dynamic
smart device farm, which is used for performing testing, based on idle states associated
with these smart devices. As a result, the problem of having dedicated testing devices
for performing testing is solved, thereby reducing the overall operational cost. Also,
the proposed solution removes the system overhead, as physical devices are managed
by respective owners (volunteering individuals). Moreover, as smart devices can be
registered for participating in testing from across the geography, tests can be performed
throughout the day due to time zone differences. Additionally, as physical smart devices
are not acquired, the system can be scaled to any number of smart devices based on
the number of volunteering users. This enables performing load testing scenarios on
real time smart devices, which otherwise is not feasible in conventional solutions.
[0043] The specification has described method and device for performing testing across a
plurality of smart devices. The illustrated steps are set out to explain the exemplary
embodiments shown, and it should be anticipated that ongoing technological development
will change the manner in which particular functions are performed. These examples
are presented herein for purposes of illustration, and not limitation. Further, the
boundaries of the functional building blocks have been arbitrarily defined herein
for the convenience of the description. Alternative boundaries can be defined so long
as the specified functions and relationships thereof are appropriately performed.
Alternatives (including equivalents, extensions, variations, deviations, etc., of
those described herein) will be apparent to persons skilled in the relevant art(s)
based on the teachings contained herein. Such alternatives fall within the scope of
the disclosed embodiments.
[0044] Furthermore, one or more computer-readable storage media may be utilized in implementing
embodiments consistent with the present disclosure. A computer-readable storage medium
refers to any type of physical memory on which information or data readable by a processor
may be stored. Thus, a computer-readable storage medium may store instructions for
execution by one or more processors, including instructions for causing the processor(s)
to perform steps or stages consistent with the embodiments described herein. The term
"computer-readable medium" should be understood to include tangible items and exclude
carrier waves and transient signals, i.e., be non-transitory. Examples include random
access memory (RAM), read-only memory (ROM), volatile memory, nonvolatile memory,
hard drives, CD ROMs, DVDs, flash drives, disks, and any other known physical storage
media.
[0045] It is intended that the disclosure and examples be considered as exemplary only,
with a true scope of disclosed embodiments being indicated by the following claims.
1. A method of performing testing across a plurality of smart devices, the method comprising:
registering, by a testing device, the plurality of smart devices to be accessed for
performing testing, wherein the plurality of smart devices are associated with a plurality
of users;
determining, by the testing device, at least one time-window for each of the plurality
of smart devices, wherein a smart device is in an idle mode during the at least one
time-window;
gathering, by the testing device, testing criteria and a time duration for performing
a testing operation; and
dynamically creating, by the testing device, a test group comprising one or more smart
devices from the plurality of smart devices, wherein each of the one or more smart
devices in the test group satisfy the testing criteria, and wherein the at least one
time-window of each smart device in the test group is within the time duration.
2. The method of claim 1, further comprising installing a thin client on each of the
plurality of smart devices in response to the registering, wherein the thin client
enables communication of a smart device of the plurality of smart devices with the
testing device, and wherein the thin client periodically monitors the smart device
to retrieve a plurality of parameters associated with the smart device.
3. The method of claim 2, wherein the plurality of parameters associated with the smart
device comprise at least one of a location of the smart device, a type of the smart
device, a model of the smart device, an access permission granted by a user of the
smart device, a registration detail associated with the smart device, a manufacturer
of the smart device, an operating system installed on the smart device, or a storage
space within the smart device.
4. The method of claim 2 or claim 3, wherein the testing device stores a table comprising
information associated with the plurality of parameters for each of the plurality
of smart devices.
5. The method of any of claims 2 to 4, wherein the thin client determines at least one
time-window for each of the plurality of smart devices.
6. The method of any of claims 2 to 5, wherein the testing criteria includes specific
requirements for at least one of the plurality of parameters.
7. The method of any of the preceding claims, further comprising modifying the test group
in response to change in the testing criteria for performing the test operation, wherein
modifying the test group comprises changing the number or type of smart devices within
the test group.
8. The method of any of the preceding claims, wherein the testing operation is at least
one of an application testing, a smart device testing, or a server testing.
9. The method of any of the preceding claims, further comprising:
installing at least one application on each smart device within test group; and
executing a test script on each smart device within the test group in response to
installing the at least one application file.
10. The method of claim 9, further comprising:
collecting results of executing the test script on each smart device in the test group;
and
performing a predefined analysis on the results collected from each smart device in
the test group.
11. A testing device for performing testing across a plurality of smart devices, the testing
device comprises:
a processor; and
a memory communicatively coupled to the processor, wherein the memory stores processor-executable
instructions, which, on execution, causes the testing device to perform the method
of any of the preceding claims.
12. A computer-readable storage medium having stored thereon a set of computer-executable
instructions for causing a computer comprising one or more processors to perform the
method of any of claims 1 to 10.
13. A computer program product comprising instructions that, when executed by a computer,
cause the computer to perform the method of any of claims 1 to 10.