In order to make sure your product accomplishes its goal and fulfills the customer’s expectations, it should be quality control tested after manufacturing. The tricky part is, how much testing is necessary, and at what stage in the production process? There’s no question that every aspect of your product should be checked before shipping, but doing short intermediary tests throughout the production process can save you hours of time on the line, and many fewer boards requiring rework.

Unit vs. Functional Testing

In our experience testing and shipping hardware at Opulo, we’ve found it useful to break PCB testing down into Unit Tests and Functional Tests. Unit tests check small segments of a circuit, mainly answering “is this pin soldered correctly?” This is commonly accomplished with pogo-pin jigs, where an array of small spring-loaded electrical contacts are aligned with and pressed into the board being tested, so that connectivity can be checked. This doesn’t necessarily check to see if the board is working properly, just that the board’s components are all connected to the right pads. For example, with an example product of a motor driver, a unit test would check that the motor driver chip is connected correctly to all the IO pins on the board, and all configuration pins are pulled up or down properly.
 
Functional tests are more about how the board works. These tests actually use the board for the intended purpose in the customer’s hands, and see if it functions correctly. These tests should typically come after the unit tests, as they are more likely to take longer and be more manual. It’s always better to catch a cold solder joint in a quick unit test than in a time consuming functional test that requires disassembling the PCB from the product to fix. In the motor driver example, the functional test would be actually plugging a motor into the board and checking that it can drive it in all supported configurations.
 
LumenPnP's Motherboard (Photo: Tobias Netzer)

Unit before Assembly, Functional at Packout

Even though it requires two full tests of the product, we’ve found that running a unit test of our PCBs before being assembled, then a final functional test before packaging, saves us time in the long run. The unit test catches 95% of assembly errors before the PCBA is assembled into the product enclosure. This keeps us from having to disassemble the product to perform rework operations, saving a tremendous amount of time.
 
Even though we’ve already checked all the pin connectivity, there can still be failures in the product only visible after assembly. This is where the functional test comes in, and catches the final 5% of errors. This step guarantees that the product, like our Desktop Pick and Place machine, is able to perform as the customer expects, and can catch things that the unit test cannot. It can also help catch faulty components in a product that aren’t part of the PCBA.
 
Testing is a time consuming, but incredibly necessary part of manufacturing a hardware product. Doing it thoroughly, but minimizing time on the production line is a delicate balance that is critical to get correct.