This application is related to U.S. patent application Ser. No. 14/866,630, filed Sep. 25, 2015, published as U.S. Patent Publication No. 2017/0093682 and entitled, “Universal Device Testing System,” by Samant Kumar et al., and to U.S. patent application Ser. No. 14/866,752, filed Sep. 25, 2015, published as U.S. Patent Publication No. 2017/0093683 and entitled, “Universal Device Testing Interface,” by Samant Kumar et al., and to U.S. patent application Ser. No. 14/866,780, filed Sep. 25, 2015, now U.S. Pat. No. 9,491,454 and entitled, “Set Top Boxes Under Test,” by Samant Kumar et al., and to U.S. patent application Ser. No. 14/948,143, filed Nov. 20, 2015 and entitled, “Cable Modems/eMTAs Under Test,” by Samant Kumar et al., each of which is hereby incorporated by reference in its entirety. This application is also related to U.S. patent application Ser. No. 14/948,925, filed Nov. 23, 2015 and entitled, “Wireless Routers Under Test,” by Samant Kumar et al., and to U.S. patent application Ser. No. 14/929,180, filed Oct. 30, 2015 and entitled, “Hardware Architecture for Universal Testing System: Cable Modem Test,” by Samant Kumar et al., and to U.S. patent application Ser. No. 14/929,220, filed Oct. 30, 2015 and entitled, “Hardware Architecture for Universal Testing System: Wireless Router Test,” by Samant Kumar et al., and to U.S. patent application Ser. No.14/987,538, filed Jan. 4, 2016 and entitled, “Test Sequences Using Universal Testing System.”
The present invention is directed to a system for testing devices.
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.
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.
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.
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.
According to certain embodiments,
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.
Probes test the following interfaces on the DUT (when such interfaces are available on the DUT):
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
Checks for DUT Serial number in Database or Webservice
Get DUT Readiness Information
Checks Webservice for test readiness status of DUT in the test process
Configure container Environment
Clear Environment Temp Files
Analyze DUT for Factory Reset
Checks ability to login to DUT
Asks operator to manually Factory Reset if unable to login
Confirm Factory Reset (if needed)
Waits for operator to confirm that DUT was factory reset and booted up properly
Check Ethernet LAN connections to DUT
Ping connections: Eth LAN 1, 2, 3, 4
Fails if any ping to these connections fail
Detect DUT
Checks connection to DUT through socket connection
Reset Password
Operator scans password which is stored temporarily for use in the remainder of test until finished
Login to GUI
Done through web-scraping
Get DUT Information and compare values
Information retrieved through web-scraping
Enable Telnet
Enables telnet on DUT through web-scraping
Factory Reset
Factory resets DUT through telnet command
Enable Telnet after Factory Reset
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
Through telnet commands
Sets N Mode
Enables Privacy
Sets WPA (Wi-Fi Protected Access)
Removes WEP (Wired Equivalent Privacy)
Assigns WiFi Channel to DUT (channel different by slot)
[Channel 1: slots 1, 4, 7, 10, 13, 16]
[Channel 6: slots 2, 5, 8, 11, 14]
[Channel 11: slots 3, 6, 9, 12, 15]
Verifies changes through GUI
Disables WiFi once done through telnet
Check Firmware Version and Upgrade Firmware (if needed)
Firmware version: 40.21.18
Cage Closed Confirmation Check
Asks Operator to Close Door on Cage
Connect Wireless Card
Waits on shared Resource Server (located on TC) for Resource L2 (Layer 2) Lock
Obtains Lock
Enables WiFi through telnet
Set WiFi Card
Ping WiFi from DUT
L2 ARP Test on WiFi: must receive 10/10 ARP packets
If either Set WiFi Card or L2 ARP Test Fail after its 3 retries, Ask Operator to Check Antennas
Performs one more retry in full (set of 3 retries each for Set WiFi Card and L2 ARP Wifi Test) after Check Antennas
Disables WiFi through telnet
Releases Lock
Wireless to LAN Ethernet Speed Test
Waits on shared Resource Server (located on TC) for Resource L3 Lock
Obtains Lock
Enables WiFi through telnet
Connects WiFi Card
Iperf3 Speed Test, 5 seconds for UDP Speed Test, 7 seconds for TCP Speed Test, Sending 200 Mbps Bandwidth
Bandwidth must be greater than 60 Mbps on TCP (Reverse) or 70 Mbps on UDP (Forward)
Runs sudo iwlist wlan0 scan and returns all Wireless Signals seen
Disables WiFi through telnet
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
Arp Test from Eth LAN 1 to Eth LAN 2, 3, 4
Must receive 10/10 on all LAN connections
LAN Ethernet to LAN Ethernet Speed Test
From Eth LAN 1 to Eth LAN 2, 3, 4
Iperf3 Speed Test, 5 seconds Reverse and Forward, Sending 1200 Mbps Bandwidth
Bandwidth must be greater than 700 Mbps
Total Retries allowed: 2
Check WAN and LAN MoCA Data Rates
Rx and Tx Data rates for both WAN and LAN MoCA retrieved through telnet
All Rates must be greater than 180 Mbps
LAN Ethernet to WAN MoCA FTP Speed Test
From Eth LAN 1 to WAN MoCA
Iperf3 Speed Test, 5 seconds Reverse and Forward, Sending 1200 Mbps Bandwidth
Bandwidth must be greater than 60 Mbps
Total Retries allowed: 2
LAN MoCA to LAN Ethernet FTP Speed Test
From Eth LAN 1 to LAN MoCA
Iperf3 Speed Test, 5 seconds Reverse and Forward, Sending 240 Mbps Bandwidth
Bandwidth must be greater than 60 Mbps
Total Retries allowed: 2
LAN MoCA to WAN MoCA FTP Speed Test
From LAN MoCA to WAN MoCA
Iperf3 Speed Test, 5 seconds Reverse and Forward, Sending 240 Mbps Bandwidth
Bandwidth must be greater than 60 Mbps
Total Retries allowed: 2
Enable WAN Ethernet
Through telnet command
LAN Ethernet to WAN Ethernet FTP Speed Test
From Eth LAN 1 to Eth WAN
Iperf3 Speed Test, 5 seconds Reverse and Forward, Sending 1200 Mbps Bandwidth
Bandwidth must be greater than 700 Mbps
Total Retries allowed: 2
Clear Persistent Logs
Final Factory Restore
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.
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.
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.
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.
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
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.
According to certain embodiments, a respective core testing processor of the plurality of core testing processors communicates with a user interface.
According to certain embodiments, a respective core testing processor of the plurality of core testing processors communicates using asynchronous feedback and interaction.
According to certain embodiments, a respective core testing processor of the plurality of core testing processors communicates using JSON messages.
According to certain embodiments, the respective core testing processor of the plurality of core testing processors communicates using TCP/IP protocol.
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.
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.
Number | Name | Date | Kind |
---|---|---|---|
5917808 | Kosbab | Jun 1999 | A |
6308496 | Lee | Oct 2001 | B1 |
6367032 | Kasahara | Apr 2002 | B1 |
6662135 | Burns | Dec 2003 | B1 |
6671160 | Hayden | Dec 2003 | B2 |
6859043 | Ewing | Feb 2005 | B2 |
7664317 | Sowerby | Feb 2010 | B1 |
8121028 | Schlesener | Feb 2012 | B1 |
8209732 | Le | Jun 2012 | B2 |
8229344 | Petersen | Jul 2012 | B1 |
8324909 | Oakes et al. | Dec 2012 | B2 |
8418000 | Salame | Apr 2013 | B1 |
8418219 | Parsons | Apr 2013 | B1 |
8515015 | Maffre | Aug 2013 | B2 |
8689071 | Valakh | Apr 2014 | B2 |
8806400 | Bhawmik | Aug 2014 | B1 |
9013307 | Hussain | Apr 2015 | B2 |
9316714 | Rada | Apr 2016 | B2 |
9319908 | Nickel | Apr 2016 | B2 |
9372228 | Nickel | Jun 2016 | B2 |
9402601 | Berger | Aug 2016 | B1 |
9490920 | Parte | Nov 2016 | B2 |
9491454 | Kumar | Nov 2016 | B1 |
9571211 | Partee | Feb 2017 | B2 |
20020070725 | Hilliges | Jun 2002 | A1 |
20030005380 | Nguyen | Jan 2003 | A1 |
20030184035 | Yu | Oct 2003 | A1 |
20040010584 | Peterson | Jan 2004 | A1 |
20040016708 | Rafferty | Jan 2004 | A1 |
20040160226 | Ewing | Aug 2004 | A1 |
20050041642 | Robinson | Feb 2005 | A1 |
20050053008 | Griesing | Mar 2005 | A1 |
20050102488 | Bullis | May 2005 | A1 |
20050193294 | Hildebrant | Sep 2005 | A1 |
20050286466 | Tagg | Dec 2005 | A1 |
20060015785 | Chun | Jan 2006 | A1 |
20060271322 | Haggerty | Nov 2006 | A1 |
20070097659 | Behrens | May 2007 | A1 |
20070220380 | Ohanyan | Sep 2007 | A1 |
20080117907 | Hein | May 2008 | A1 |
20080144293 | Aksamit | Jun 2008 | A1 |
20080168520 | Vanderhoff | Jul 2008 | A1 |
20080315898 | Cannon | Dec 2008 | A1 |
20090089854 | Le | Apr 2009 | A1 |
20090282446 | Breed | Nov 2009 | A1 |
20090282455 | Bell et al. | Nov 2009 | A1 |
20090289020 | Wurmhoringer | Nov 2009 | A1 |
20100132000 | Straub | May 2010 | A1 |
20100138823 | Thornley | Jun 2010 | A1 |
20100246416 | Sinha | Sep 2010 | A1 |
20110001833 | Grinkemeyer | Jan 2011 | A1 |
20110006794 | Sellathamby | Jan 2011 | A1 |
20110012632 | Merrow | Jan 2011 | A1 |
20110035676 | Tischer | Feb 2011 | A1 |
20110072306 | Racey | Mar 2011 | A1 |
20110099424 | Rivera Trevino | Apr 2011 | A1 |
20110116419 | Cholas | May 2011 | A1 |
20110222549 | Connelly | Sep 2011 | A1 |
20110306306 | Reed | Dec 2011 | A1 |
20120140081 | Clements | Jan 2012 | A1 |
20120163227 | Kannan | Jun 2012 | A1 |
20120198084 | Keskitalo | Aug 2012 | A1 |
20120198442 | Kashyap | Aug 2012 | A1 |
20120220240 | Rothschild | Aug 2012 | A1 |
20120275784 | Soto | Nov 2012 | A1 |
20120278826 | Jones | Nov 2012 | A1 |
20130033279 | Sozanski | Feb 2013 | A1 |
20130076217 | Thompson | Mar 2013 | A1 |
20130093447 | Nickel | Apr 2013 | A1 |
20130104158 | Partee | Apr 2013 | A1 |
20130160064 | van Rozen | Jun 2013 | A1 |
20130167123 | Dura | Jun 2013 | A1 |
20140115580 | Kellerman | Apr 2014 | A1 |
20140123200 | Park | May 2014 | A1 |
20140156819 | Cavgalar | Jun 2014 | A1 |
20140187172 | Partee | Jul 2014 | A1 |
20140187173 | Partee | Jul 2014 | A1 |
20140207404 | Fritzsche | Jul 2014 | A1 |
20140256373 | Hernandez | Sep 2014 | A1 |
20140266930 | Huynh | Sep 2014 | A1 |
20140282783 | Totten | Sep 2014 | A1 |
20140370821 | Guterman | Dec 2014 | A1 |
20150024720 | Efrati | Jan 2015 | A1 |
20150093987 | Duyang Yuehui | Apr 2015 | A1 |
20150109941 | Zhang | Apr 2015 | A1 |
20150151669 | Meisner | Jun 2015 | A1 |
20150226716 | Nelson | Aug 2015 | A1 |
20150237010 | Roskind | Aug 2015 | A1 |
20150253357 | Olgaard | Sep 2015 | A1 |
20150369851 | Even | Dec 2015 | A1 |
20160080241 | Rocha De Maria | Mar 2016 | A1 |
20160102951 | Cole | Apr 2016 | A1 |
20160191364 | Ajitomi | Jun 2016 | A1 |
20160381818 | Mills | Dec 2016 | A1 |
20170048519 | Friel | Feb 2017 | A1 |
20170093682 | Kumar | Mar 2017 | A1 |
20170093683 | Kumar | Mar 2017 | A1 |
20170126536 | Kumar | May 2017 | A1 |
20170126537 | Kumar | May 2017 | A1 |
20170126539 | Tiwari | May 2017 | A1 |
20170149635 | Kumar | May 2017 | A1 |
20170149645 | Kumar | May 2017 | A1 |
20170195071 | Kumar | Jul 2017 | A1 |
Number | Date | Country |
---|---|---|
202261360 | May 2012 | CN |
0113604 | Feb 2001 | WO |
2013169728 | Nov 2013 | WO |
2017053961 | Mar 2017 | WO |
2017074872 | May 2017 | WO |
Entry |
---|
Kumar, Samant; Issue Notification for U.S. Appl. No. 14/866,780, filed Sep. 25, 2015, dated Oct. 19, 2016, 1 pg. |
Kumar, Samant; Notice of Allowance for U.S. Appl. No. 14/866,780, filed Sep. 25, 2015, dated Jul. 19, 2016, 8 pgs. |
Kumar, Samant; Notice of Allowance for U.S. Appl. No. 14/987,538, filed Jan. 4, 2016, dated Mar. 23, 2017, 12 pgs. |
Kumar, Samant; Non-Final Office Action for U.S. Appl. No. 15/057,085, filed Feb. 29, 2016, dated Apr. 7, 2017, 15 pgs. |
Kumar, Samant; International Search Report and Written Opinion for PCT/US16/53768, filed Sep. 26, 2016, dated Feb. 3, 2017, 17 pgs. |
Nordman, Bruce, “Testing Products with Network Connectivity,” Jun. 21, 2011 [retrieved online at http://citeseerx.is1. psu.edu/viewdoc/download?doi=10.1.1.695.772&rep=rep1&type=pdf on Feb. 6, 2017], 20 pgs. |
Kumar, Samant; International Search Report and Written Opinion for PCT/US2016/058507, filed Oct. 24, 2016, dated Jan. 3, 2017, 12 pgs. |
Kumar, Samant; Non-Final Office Action for U.S. Appl. No. 14/866,630, filed Sep. 25, 2015, dated Mar. 9, 2017, 24 pgs. |
Kumar, Samant; Ex-Parte Quayle Office Action for U.S. Appl. No. 14/948,925, filed Nov. 23, 2015, dated Jun. 20, 2017, 29 pgs. |
Kumar, Samant; Non-Final Office Action for U.S. Appl. No. 14/987,538, filed 114/2016, dated Jul. 21, 2017, 18 pgs. |
Kumar, Samant; Non-Final Office Action for U.S. Appl. No. 15/624,961, filed Jun. 16, 2017, dated Jul. 19, 2017, 7 pgs. |
Businesswire; Article entitled: “Genband and CTDI Settle Legal Dispute”, located at <http://www.businesswire.com/news/home/20140321005528/en/Genband-CTDI-Settle-Legal-Dispute>, Mar. 21, 2014, 1 pg. |
CED Magazine; Article entitled: “Cable Connects in Atlanta”, located at <https://www.cedmagazine.com/article/2006/04/Gable-connects-atlanta>, Apr. 30, 2006, 21 pgs. |
Digital Producer; Article entitled: “S3 Group Unveils Exclusive Partnership in North America With First US StormTest(TM) Decision Line Customer”, located at <http://www.digitalproducecom/article/S3-Group-Unveils-Exclusive-Partnership-in-North-America-With-First-US-StormTest(TM)-Decision-Line-Customer—1668213>, Sep. 8, 2011, 3 pgs. |
Electronic Design; Article entitled: “Testing of MPEG-2 Set-Top Boxes Must be Fast, Thorough”, located at <http://www.electronicdesign.com/print/839>, published Nov. 18, 2001, 9 pgs. |
Euromedia; Article entitled: “Automated TV Client testing: Swisscom partners with 83 Group to deliver the ultimate IPTV experience”, located at <http://advanced-television.com/wp-content/uploads/2012/10/s3.pdf>, earliest known publication date—May 30, 2013, 2 pgs. |
Promptlink; Article entitled: “Set-Top Box Test Platform”, located at <http://promptlink.com/products/stbtp.html>, earliest known publication date Aug. 11, 2016, 7 pgs. |
Promptlink Communications; Article entitled: “Promptlink Communications Officially Launches Sep-Top Box Testing Platform”, located at <https://www.promptlink.com/companyfassets/media/2014-05-20.pdf>, published on May 20, 2014, 2 pgs. |
S3 Group; Document entitled: “White Paper: The Importance of Automated Testing in Set-Top Box Integration”, earliest known publication date Jun. 17, 2014, 11 pgs. |
Teleplan; Article entitled: “Screening & Testing”, located at <https://www.teleplan.com/innovative-services/screening-testing/>, earliest known publication date Mar. 21, 2015, 7 pgs. |
TVTechnology; Article entitled: “S3 Group's StormTest”, located at <http://www.tvtechnology.com/expertise/0003/s3-groups-stormtest/256690>, published May 1, 2012, 2 pgs. |
Kumar, Samant; Non-Final Office Action for U.S. Appl. No. 14/929,180, filed Oct. 30, 2015, dated Sep. 22, 2017, 32 pgs. |
Kumar, Samant; Non-Final Office Action for U.S. Appl. No. 14/929,220, filed Oct. 30, 2015, dated Aug. 24, 2017, 31 pgs. |
Number | Date | Country | |
---|---|---|---|
20170089981 A1 | Mar 2017 | US |