User:Dklemer/sandbox

Klemtest
Klemtest(sometimes called Autotest) is the testing part of a proprietary MES(Manufacturing Execution Systems) system used by Cisco Systems. It is used throughout manufacturing within Cisco as well as by Cisco's subcontractors. It is controlled by a language called Klemspeak. It has a built in non SQL distributed database called Klembase. The system also uses a language called Agen(Cisco) which is very similar to Klemspeak.

At it's core, Klemtest is a computerized operator. It can run diagnostics, load software, run test equipment, and do everything a technician would do to manually test a DUT. It requires that the DUT has a processor and testing software. In some cases, the DUT is a PCB placed into a known good system chassis.

Klemtest is used to automate testing for most stages of production. It is used for Functional testing, System testing, and burn-in of PCBs and systems. It is also used for Reliability testing, as well as a few other things like CD duplication.

Technical Overview
Some of the features of Klemtest are:
 * A universal easy to use GUI. All testing uses the same interface. This means operators only need to be trained once to run any Cisco product on Klemtest. Pull down menus, entries can be added for some customization.
 * Test on up to 230 cells per test system. Each individual DUT connection is called a cell. Some DUTs may need more than one cell. A cell can have a variety of different connections:
 * A serial connection. It uses Cisco's terminal servers.
 * A variety of Ethernet connections
 * TCP
 * Telnet
 * Rlogin
 * SSH
 * HTTP
 * SMTP


 * Excellent debugging capabilities. Many failures are not reproducible. That makes it necessary to understand what happened and why without doing having to rerun the test.
 * Remote monitoring and control. An engineer in San Jose can monitor any system(s) that is running in China. An engineer in San Jose can start, stop, and debug a DUT that is in China, or any other place that is needed.
 * Power cycling. Klemtest can even drop individual half cycles of AC to the DUT, if desired.
 * Power outage recovery. If the building looses power, Klemtest can restart each DUT from the last power cycle. This avoids loosing test time that has occurred before the power outage.
 * Oven management. Some tests are done in a burn in oven. Klemtest can control the temperature, as well as power supply voltages of many burn in ovens.
 * Parallel/serial cell control. Sometimes when an expensive piece of test equipment is used, Klemtest can make sure only one DUT is using the test equipment at one time. Sometimes a DUT may be using several cells. One cell can control other cells to run in a parallel or serial fashion.
 * Software can be changed without shutting down. Klemspeak can be changed at while Klemtest is running. Any DUT that was started, will continue to run the version that it was started with. It is possible to have many different versions of the same code running at the same time.
 * DUT firmware version control. Cisco has had as many as 50,000 different firmware versions. Many of them change every month.
 * Build to order capability. Many of system's that Cisco builds are custom configurations.
 * MAC address control. All Ethernet interfaces need to have a unique MAC address. Klemtest often assigns MAC address as well a record of the MAC address to serial number relationship.
 * Built in database which provides:
 * Recording of each DUTs start, pass and/or failure.
 * Sales order configuration. This is used to verify that the DUT physically matches what the customer ordered.
 * DUT history. This can be used to verify that any previously needed test steps have passed.
 * Configuration control. This is used to verify the Printed circuit board physically matches the work order.
 * Any custom data.


 * Automatic database replication. A program within Klemtest is designed to analyse what data is needed by each test station. It self learns what data is needed based on what has previously been tested on that station. The first time a new DUT has been detected, it will pull in the data that the DUT needs. After that the data needed will automatically be pre-loaded on the machine.

History
Klemtest was started in 1990, when Cisco was seeking a way to automate system burn-in. They hired the author of this article(David T Klemer) to develop the system.

It grew from there. It was expanded to doing PCB tests as well as burn in.

In 1992, Klembase was developed. This allowed Klemtest to be a part of a MES system used today.

It has been used to reliably test almost every product Cisco makes, over 500,000 tests a day. Many of them are custom configuration orders. Some low end products are even being tested while the system is being assembled.

Philosophy
Klemtest uses a custom language (Klemspeak), which is easy to use and has specialized testing instructions. It both maximizes what the Test engineer can do with the system, as well as minimizes undesired actions. As time goes by, new needs arise. It is easy to add new instructions to Klemspeak and/or Agen(Cisco) to add new capabilities.

Klemtest puts as little restriction on the software running on the DUT as possible. The only real requirement is that the software has a clear message that the test has passed.

Klemtest's job is not only to test the DUT, but to assure that the product built correctly. This may require checking with the Sales order data to make sure the unit has the right amount of memory, the right software, ...etc.

Klemtest prevents non functional units from shipping because the Klemtest system communicates with Cisco's ERP system. This assures that any DUT, whether it is built by Cisco or a subcontractor, has passed all the proper tests, and is correctly configured.

If units aren't being tested, Cisco isn't shipping, which means Cisco isn't making any money. Klemtest is expected to run 24 hours a day, seven days a week. In order to provide high reliability, Klemtest uses the philosophy of keeping each machine as independent as possible, thus keeping any single system failure from bringing the whole system down. Each machine is kept as independent as possible. Any data needed is preloaded, so that the machine can keep running for a period of time if an external failure occurs. This also allows introduction of new software to be introduced and fully tested on a few less critical systems before using it system wide. Klemtest has shown six nines reliability(99.99995%) in the past.