HOME More Articles |
For your company, what is the testing process? I work in the manufacturing industry – a major food processing and packaging plant. Most of our software tests are farmed out to contractors who either developed and/or installed the software originally or those who specialize in software used in industrial control processes. Innovative Controls (ICON), a local contractor, has been addressing most of our needs in this area. In the manufacturing industry, we use a lot of programmable logic controllers (PLC) to control machines and processes. This is a combination of special processors and software programmed in a variety of PLC languages (see below). In manufacturing, software testing is done in two environments: offline and online. Offline testing is done by simply looking at the program, such as the ladder logic in PLC code (see below), and determining whether the logic makes sense. Changes can be made without affecting the operation of a particular machine or parameter. Online testing affects the operation of a particular machine or process synchronously – basically, whatever changes are made to a program are noticed immediately. This can be tricky. For example, accidentally entering a timer value of 1.0 seconds instead of 0.1 seconds can cause a machine to shutdown, or worse yet, crash. Since this is an FDA-regulated food manufacturing facility, food safety parameters have to be taken into account. A tester or troubleshooter may make a change that does not shutdown or crash a process – so the change is not immediately noticeable. However, a critical sterility value may have been compromised as a result of the change causing the food product to be unsafe for human consumption. Machine downtime is also frowned upon. The main concern of a manufacturing facility is the amount of “product out the door.” So, testers are often under pressure of ascertaining the uptime of the running line. For this reason, testing is often conducted when a production line is down for a scheduled maintenance period (what we call a “turn” – or scheduled downtime). During this time, testers can manipulate the program logic or values without having to worry about downtime or food-sterility issues. The downside to this is that since the line is turning, there is no product going through the machines (such as conveyors). Often, line operators will place test product on the line to simulate a run, giving the testers something to work with. However, an actual running line produces far greater number of units (and for a much greater duration). So, the testers are in a bit of a dilemma. When new equipment is installed, it often takes months of operation before all the bugs are worked out. In conclusion, software testing in an industrial environment is a very labor-intensive effort. There are really no automated tools. Rather, it involves a lot of “tweaking” and a great deal of common sense. top of page Testing Steps (diagram at bottom of page) If you need to hire a team of testers, what would you look for? First, the testers should have experience in the field. Preferably, in the same type of application(s) as I am developing for my company. Experience is very important as it gives the testers the ability to confront real-world challenges. Second, I would look for problem-solving, problem-generating and problem-imagining ability. This could be in the form of giving potential testers a mock test and see how well they perform. Third, and perhaps most important, is having testers with the right attitude and a strong work ethic. If testers are to work on a team, then looking for those with previous team experience is paramount. Also essential is the concept of egoless programming and testing. The tester must be of the mentality that they are working on components of a larger system, not as a property of those who wrote or tested them. When a fault is discovered by the tester or testing team, correcting the fault and not placing the blame on the development team is the only sensible approach. top of page |