Core testing machine
11353507 · 2022-06-07
Assignee
Inventors
- Samant Kumar (San Jose, CA, US)
- Dinesh Kumar (Patna Bihar, IN)
- Shivashankar Diddimani (Karnataka, IN)
- Gunjan Samaiya (Madhya Pradesh, IN)
Cpc classification
G01R31/31715
PHYSICS
International classification
Abstract
A testing system includes a slot configured to receive a device-under-test (DUT), and a core testing processor configured to communicate with a user interface and with the slot, wherein the core testing processor is associated with communication that is independent of any other communications transmitted within the system, and wherein the core testing processor executes a set of tests associated with the DUT.
Claims
1. A testing system, comprising: a test slot configured to receive a device-under-test (DUT); a testing system user interface for providing test results to a testing system user and for receiving from the testing system user input associated with a test; a core testing processor configured to communicate with the testing system user interface and with the test slot, wherein the core testing processor communicates with the testing system user interface using a web socket for communication that is independent of other communications transmitted within the testing system; and a lightweight virtualization container in communication with the test slot, configured to ensure isolation of testing processes and testing resources associated with the test slot across servers, and constrained to use a defined amount of system resources, wherein the core testing processor loads at run time a test configuration associated with the DUT and including a set of testing steps for testing the DUT, executes each testing step of the set of testing steps and, upon completion of each testing step of the set of testing steps, provides, via the web socket, a message regarding the results of the testing step to the testing system user via the testing system user interface.
2. The testing system of claim 1, wherein the lightweight virtualization container comprises a testing probe for testing an interface of the DUT.
3. The testing system of claim 1, wherein the lightweight virtualization container is configured to test one or more DUT interfaces at the DUT, each of the DUT interfaces comprising one of: an Ethernet Local Area Network (LAN) interface; an Ethernet Wide Area Network (WAN) interface; a Multimedia over Coax Alliance (MoCA) LAN interface; a Multimedia over Coax Alliance (MoCA) WAN interface; a Wireless 2.4 GHz interface; a Wireless 5.0 GHz interface; a Foreign eXchange Subscriber ports (FXS) interface; a Universal Serial Bus (USB) interface; a video interface; and an audio interface.
4. The testing system of claim 1, wherein the core testing processor communicates using Java script object notation (JSON) messages.
5. The testing system of claim 1, wherein the core testing processor communicates using TCP/IP protocol.
6. A testing system, comprising: a plurality of test slots each configured to receive a device-under-test (DUT) of a plurality of DUTs; a testing system user interface for providing test results to a testing system user and receiving user input associated with a test performed on each DUT of the plurality of DUTs; a core testing processor configured to communicate with the testing system user interface and with the plurality of test slots, wherein the core testing processor communicates with the testing system user interface using a web socket for communication that is independent of other communications transmitted within the testing system; and a plurality of lightweight virtualization containers in communication with the plurality of test slots, each virtualization container configured to ensure isolation of testing processes and testing resources associated with its respective test slot across servers, and constrained to use a defined amount of system resources, wherein the core testing processor loads at run time a test configuration associated with the DUT in each of the plurality of test slots and including a set of testing steps for testing each DUT, executes each testing step of the set of testing steps and, upon completion of each testing step of the set of testing steps, provides, via the web socket, a message regarding the results of the testing system to the testing system user interface.
7. The testing system of claim 6, wherein the lightweight virtualization container comprises a testing probe for testing an interface of the DUT received in the associated test slot.
8. The testing system of claim 6, wherein the lightweight virtualization containers are configured to test one or more DUT interfaces at the DUT, each of the DUT interfaces comprising one of: an Ethernet Local Area Network (LAN) interface; an Ethernet Wide Area Network (WAN) interface; a Multimedia over Coax Alliance (MoCA) LAN interface; a Multimedia over Coax Alliance (MoCA) WAN interface; a Wireless 2.4 GHz interface; a Wireless 5.0 GHz interface; a Foreign eXchange Subscriber ports (FXS) interface; a Universal Serial Bus (USB) interface; a video interface; and an audio interface.
9. The testing system of claim 6, wherein the core testing processor communicates using Java script object notation (JSON) messages.
10. The testing system of claim 6, wherein the core testing processor communicates using TCP/IP protocol.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
DETAILED DESCRIPTION
(3) Methods, systems, user interfaces, and other aspects of the invention are described. Reference will be made to certain embodiments of the invention, examples of which are illustrated in the accompanying drawings. While the invention will be described in conjunction with the embodiments, it will be understood that it is not intended to limit the invention to these particular embodiments alone. On the contrary, the invention is intended to cover alternatives, modifications and equivalents that are within the spirit and scope of the invention. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
(4) Moreover, in the following description, numerous specific details are set forth to provide a thorough understanding of the present invention. However, it will be apparent to one of ordinary skill in the art that the invention may be practiced without these particular details. In other instances, methods, procedures, components, and networks that are well known to those of ordinary skill in the art are not described in detail to avoid obscuring aspects of the present invention.
(5) According to certain embodiments, a core testing machine comprises multiple slots for installing a DUT in each slot. As a non-limiting example, each DUT in a respective slot is associated with its respective lightweight virtualization containers (probes abstraction) and core testing executor/processor. For example, the core testing machine may comprise N core testing servers and each of the N core testing servers may be associated with M core testing executors/processors. According to certain embodiments, the core testing machine need not have every slot installed with a DUT in order to begin running the tests. The slots are used as needed. Further, the testing of a given DUT can start and finish independently of the other DUTs installed in the test bench of the core testing machine.
(6) Non-limiting examples of devices under test (DUTs) include set top boxes, cable modems, embedded multimedia terminal adapters, and wireless routers including broadband wireless routers for the home or for commercial networks.
(7) According to certain embodiments,
(8) According to certain embodiments, the core testing machine can test a set of similar types of devices or disparate types of devices simultaneously using a separate set of interfaces for each device that is under test testing. As a non-limiting example, there may be N core testing servers. Each N core testing server may comprise M number of core testing executors/processors. Thus, a total of N multiplied by M number of DUTS can be tested simultaneously (one DUT is each of the N×M slots, for example). According to certain embodiments, the use of DUT testing interfaces (probes) through virtualization containers can avoid network conflicts while testing multiple DUTs simultaneously by the core testing machine. According to certain embodiments, the core testing servers and core testing executors/processors (and other components) in the testing system may be distributed over a plurality of computers.
(9)
(10) Probes test the following interfaces on the DUT (when such interfaces are available on the DUT): Ethernet Local Area Network (LAN): assigned probe runs Ethernet-based connection and speed tests Ethernet Wide Area Network (WAN): assigned probe runs Ethernet-based connection and speed tests Multimedia over Coax Alliance (MoCA) LAN: assigned probe sets up MoCA connection, establishes connection, and runs MoCA-related connection and speed tests MoCA WAN: assigned probe sets up MoCA connection, establishes connection, and runs MoCA-related connection and speed tests Wireless 2.4 GHz: assigned probe sets up wireless connection, establishes connection, and runs WiFi-related connection tests on 2.4 GHz frequency Wireless 5.0 GHz: assigned probe sets up wireless connection, establishes connection, and runs WiFi-related connection tests on 5.0 GHz frequency Phone ports (FXS): assigned probe sets up phone service simulation, establishes connection, and runs phone-based connection tests USB: assigned probe runs USB-functionality tests Video: assigned probe runs video-related tests Audio: assigned probe runs audio-related tests
(11) According to certain embodiments, when executing a specific test for a given DUT, the core testing executor/processor loads and reads test configuration information (for example from an XML structure) and identifies the relevant test script that needs to be executed. Inputs that are needed for executing the relevant test script are retrieved and supplied as inputs to the relevant test script. The following is a non-limiting sample scripts. Create DUT object & Environment Object Verify Serial Number Verify Warranty Check Report Server Check DUT Staging
(12) Checks for DUT Serial number in Database or Webservice Get DUT Readiness Information
(13) Checks Webservice for test readiness status of DUT in the test process Configure container Environment Clear Environment Temp Files Analyze DUT for Factory Reset
(14) Checks ability to login to DUT
(15) Asks operator to manually Factory Reset if unable to login Confirm Factory Reset (if needed)
(16) Waits for operator to confirm that DUT was factory reset and booted up properly Check Ethernet LAN connections to DUT
(17) Ping connections: Eth LAN 1, 2, 3, 4
(18) Fails if any ping to these connections fail Detect DUT
(19) Checks connection to DUT through socket connection Reset Password
(20) Operator scans password which is stored temporarily for use in the remainder of test until finished Login to GUI
(21) Done through web-scraping Get DUT Information and compare values
(22) Information retrieved through web-scraping Enable Telnet
(23) Enables telnet on DUT through web-scraping Factory Reset
(24) Factory resets DUT through telnet command Enable Telnet after Factory Reset
(25) Enables telnet on DUT through web-scraping Confirm Power, WAN Ethernet, and Internet LEDs Confirm all LAN Ethernet LEDs Confirm WiFi LED Configure Wireless Network
(26) Through telnet commands
(27) Sets N Mode
(28) Enables Privacy
(29) Sets WPA (Wi-Fi Protected Access)
(30) Removes WEP (Wired Equivalent Privacy)
(31) Assigns WiFi Channel to DUT (channel different by slot)
(32) [Channel 1: slots 1, 4, 7, 10, 13, 16]
(33) [Channel 6: slots 2, 5, 8, 11, 14]
(34) [Channel 11: slots 3, 6, 9, 12, 15]
(35) Verifies changes through GUI
(36) Disables WiFi once done through telnet Check Firmware Version and Upgrade Firmware (if needed)
(37) Firmware version: 40.21.18 Cage Closed Confirmation Check
(38) Asks Operator to Close Door on Cage Connect Wireless Card
(39) Waits on shared Resource Server (located on TC) for Resource L2 (Layer 2) Lock Lock waiting timeout: 600 sec All L2 Locks are able to run in parallel but not when any L3 (Layer 3) Lock is running
(40) Obtains Lock
(41) Enables WiFi through telnet
(42) Set WiFi Card Total Retries allowed: 6 (2 sets of 3 retries)
(43) Ping WiFi from DUT
(44) L2 ARP Test on WiFi: must receive 10/10 ARP packets Total Retries allowed: 6 (2 sets of 3 retries)
(45) If either Set WiFi Card or L2 ARP Test Fail after its 3 retries, Ask Operator to Check Antennas
(46) Performs one more retry in full (set of 3 retries each for Set WiFi Card and L2 ARP Wifi Test) after Check Antennas
(47) Disables WiFi through telnet
(48) Releases Lock Wireless to LAN Ethernet Speed Test
(49) Waits on shared Resource Server (located on TC) for Resource L3 Lock Lock waiting timeout: 1800 sec L3 Locks must be run one at a time and when no L2 Lock is running
(50) Obtains Lock
(51) Enables WiFi through telnet
(52) Connects WiFi Card
(53) Iperf3 Speed Test, 5 seconds for UDP Speed Test, 7 seconds for TCP Speed Test, Sending 200 Mbps Bandwidth
(54) Bandwidth must be greater than 60 Mbps on TCP (Reverse) or 70 Mbps on UDP (Forward) If Fail after 2 retries, ask operator to Check Antennas Retries up to 2 times more if still Fail Therefore, Total Retries allowed: 4 (2 sets of 2 retries)
(55) Runs sudo iwlist wlan0 scan and returns all Wireless Signals seen Results parsed to print all visible SSIDs and its matching Signal level
(56) Disables WiFi through telnet
(57) Releases Lock Confirm WPS LED Confirm LAN Coax LED Confirm USB 1+2 LEDs Configure WAN MoCA Confirm WAN Coax LED Ping WAN MoCA L2 Test on LAN Ethernet
(58) Arp Test from Eth LAN 1 to Eth LAN 2, 3, 4
(59) Must receive 10/10 on all LAN connections LAN Ethernet to LAN Ethernet Speed Test
(60) From Eth LAN 1 to Eth LAN 2, 3, 4
(61) Iperf3 Speed Test, 5 seconds Reverse and Forward, Sending 1200 Mbps Bandwidth
(62) Bandwidth must be greater than 700 Mbps
(63) Total Retries allowed: 2 Check WAN and LAN MoCA Data Rates
(64) Rx and Tx Data rates for both WAN and LAN MoCA retrieved through telnet
(65) All Rates must be greater than 180 Mbps LAN Ethernet to WAN MoCA FTP Speed Test
(66) From Eth LAN 1 to WAN MoCA
(67) Iperf3 Speed Test, 5 seconds Reverse and Forward, Sending 1200 Mbps Bandwidth
(68) Bandwidth must be greater than 60 Mbps
(69) Total Retries allowed: 2 LAN MoCA to LAN Ethernet FTP Speed Test
(70) From Eth LAN 1 to LAN MoCA
(71) Iperf3 Speed Test, 5 seconds Reverse and Forward, Sending 240 Mbps Bandwidth
(72) Bandwidth must be greater than 60 Mbps
(73) Total Retries allowed: 2 LAN MoCA to WAN MoCA FTP Speed Test
(74) From LAN MoCA to WAN MoCA
(75) Iperf3 Speed Test, 5 seconds Reverse and Forward, Sending 240 Mbps Bandwidth
(76) Bandwidth must be greater than 60 Mbps
(77) Total Retries allowed: 2 Enable WAN Ethernet
(78) Through telnet command LAN Ethernet to WAN Ethernet FTP Speed Test
(79) From Eth LAN 1 to Eth WAN
(80) Iperf3 Speed Test, 5 seconds Reverse and Forward, Sending 1200 Mbps Bandwidth
(81) Bandwidth must be greater than 700 Mbps
(82) Total Retries allowed: 2 Clear Persistent Logs Final Factory Restore
(83) According to certain embodiments, the core testing executor/processor uses a reflection and command design pattern to invoke the relevant configured script(s) corresponding to each DUT being tested. For example, in the command design pattern one or more of the following are encapsulated in an object: an object, method name, arguments. According to certain embodiments, the core testing executor/processor uses the Python “reflection capability to execute the relevant test scripts for a given DUT. The core testing executor/processor is agnostic of the inner workings of the relevant test scripts for a given DUT.
(84) According to certain embodiments, lightweight software containers are used to abstract the connection of probes to the different DUT interfaces in order to avoid conflicts. Non-limiting examples of virtualization containers are Linux containers. As a non-limiting example, Linux container is an operating-system-level virtualization environment for running multiple isolated Linux systems (containers) on a single Linux control host. In other words, lightweight software containers are used to ensure isolation across servers. By using containers, resources can be isolated, services restricted, and processes provisioned to have an almost completely private view of the operating system with their own process ID space, file system structure, and network interfaces. Multiple containers share the same kernel, but each container can be constrained to only use a defined amount of resources such as CPU, memory, network resources and I/O. The relevant test script might need to connect to the DUT interfaces directly or through the virtualization containers to execute the tests. The core testing executor/processor receives the test results from running the relevant test scripts. The core testing executor/processor can further process and interpret such results and can also send the results to the user's browser via web sockets. According to certain embodiments, the respective core testing executors/processors are in communication (e.g., Telnet/SSH) with the virtualization containers (there may be multiple virtualization containers). The containers/probes are in communication with corresponding DUT interfaces using Telnet/SSH/TCP/UDP/HTTP/HTTPS etc, as non-limiting examples.
(85) According to certain embodiments, a system for testing device comprises: a testing machine with a plurality of slots, wherein each slot of the plurality of slots is for installing a device-under-test (DUT) of a plurality of DUTs; a plurality of core testing processors, wherein each core testing processor of the plurality of core testing processors is associated with a respective slot of the plurality of slots; a plurality of lightweight virtualization containers, where a respective lightweight virtualization container of the plurality of lightweight virtualization containers is associated with one of the slots that might have DUT installed, wherein the plurality of lightweight virtualization containers enable isolation of respective testing processes and testing resources associated with each respective device-under-test.
(86) According to certain embodiments, the plurality of lightweight virtualization containers comprise testing probes for testing a respective DUT of the plurality of DUTs. Virtualization containers can also be referred to as probes herein.
(87) According to certain embodiments, the plurality of lightweight virtualization containers are used for testing one or more DUT interfaces at the DUT comprising: Ethernet Local Area Network (LAN) interface; Ethernet Wide Area Network (WAN) interface; Multimedia over Coax Alliance (MoCA) LAN interface; Multimedia over Coax Alliance (MoCA) WAN interface; Wireless 2.4 GHz interface; Wireless 5.0 GHz interface; Phone ports (FXS) interface; USB interface; video interface; and audio interface
(88) According to certain embodiments, each core testing processor of at least a subset of the plurality of core testing processors is associated with a respective web socket for communication that is isolated and independent of communication associated with other core testing processors of the plurality of core testing processors.
(89) According to certain embodiments, a respective core testing processor of the plurality of core testing processors communicates with a user interface.
(90) According to certain embodiments, a respective core testing processor of the plurality of core testing processors communicates using asynchronous feedback and interaction.
(91) According to certain embodiments, a respective core testing processor of the plurality of core testing processors communicates using JSON messages.
(92) According to certain embodiments, the respective core testing processor of the plurality of core testing processors communicates using TCP/IP protocol.
(93) According to certain embodiments, the respective core testing processor of the plurality of core testing processors: retrieves at run time a respective test configuration corresponding to the DUT installed in the respective slot associated with respective core testing processor; loads the set of tests associated with the DUT installed in the respective slot associated with respective core testing processor; and executes the loaded set of tests.
(94) In the foregoing specification, embodiments of the invention have been described with reference to numerous specific details that may vary from implementation to implementation. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.