An electronics manufacturing background has to marry a veritable cornucopia of physics and engineering disciplines. You have electromagnetism at heart, but device construction has to account for topics like shock, vibration, form, heat, material properties, and reactivity. On top of all this rests software engineering, which can range from relatively simple algorithms to complex, compact code that performs myriad tasks. As someone without a natural affinity for computer science, there are few things more frustrating than a piece of code that compiles and runs without issue but produces incorrect output. Coders at this junction have to dive into their code (hopefully their own – woe to those working on the uncommented code of others!) and attempt to rectify the runtime error in the excruciating process known as debugging.
The board’s building is only half the battle for electronic system design. Testing needs to check the quality of manufacturing and ascertain performance across the range of acceptable inputs. PCB functional testing uses specialized hardware and software test environments to confirm design intent follows throughout usage.
Functional Test Design Considerations
PCB functional testing requires foresight in design because every PCB operates differently. Therefore, every functional test must match the unique conditions. Fixture design, an element of bed-of-nails in-circuit test (ICT), also plays a role in functional testing. Due to its association with a bed of nails, fixture functional testing is best suited for high-volume production where the cost and time investment is amortized over the total run of the lot. Smaller quantities can potentially be handled with more manual methods of testing. At the board level, the layout will need to accommodate the placement of any necessary test points and mounting holes to provide support and attachment points for the test fixture to the PCB assembly.
The test software represents another design fork. Arguably the industry standard is LabView, similar to other visual IDE software like Xilinx that cater to coding at an extremely high level of abstraction. This software offers a tremendous benefit to testers who may be less capable with other high-level but less intuitive languages such as C, C++, or Python. One drawback of LabView is its software-hardware ecosystem of compatible test equipment. This equipment can still be utilized without LabView but with more difficulty using the languages mentioned above, which are otherwise system agnostic. Cost differences aside, the decision likely comes down to company processes and the coding preferences of the individual.
Since functional testing checks for the presence or absence of certain characteristics instead of a straight diagnostic measurement, tests need a roadmap for reporting their results. There are multiple viable avenues for testing model heuristics:
- Schematic/Layout: The user supplies defect data for select functional blocks under evaluation. It can be assigned at either the component level or individual pins. An advantage of this model is the test declarations are available for reference, which can determine if test protocols are being carried out. It can also reduce analysis time by eliminating unlikely sources of defects depending on sections of the circuit that have already passed the test.
- Association-Based: Detection in this method relies on the circuit applying corresponding tests based on flags applied to the design’s qualifying pins, components, and sub-circuits. As the test qualifications are declared explicitly, there is no doubt that any portion of the circuit belonging to that testing family is included. However, this method can become time–consuming in larger or more complex designs.
- Functional Block: Test properties are applied at the part level and associated within the schematic. Look-ups for test subjects can then check circuits algorithmically to see which, if any tests, may apply, reducing the amount of set-up time for both the user and system. Test flags can be assigned at multiple levels, such as reference designator, pin, and net, to allow for minor circuit topology variations that perform similarly or identically.
A Methodical Approach to PCB Functional Testing
Unlike ICT, which probes a board to examine the electrical performance of the fabrication and assembly, function testing aims to answer a question far smaller in scope, “does the board do what it purports to?” Functional testing gauges with a big-picture outlook, ensuring that the inputs and outputs of various sub-circuits are operating as expected. Although it is more limited in the defects it can detect, functional testing can be customized better to serve the device under test (DUT). For example, functional testing can determine whether there are timing issues during operation, something the blanket test coverage of ICT cannot capture.
Fundamentally, a functional test is more involved than ICT and other verification tests, relying on the testers (or at least the test makers) to devise a method to validate the schematic. A test of electrical parameters – e.g., impedance, shorts, opens, etc. – does not require the specific knowledge of a component or the various function calls, returns, and flags for software-enabled devices. In theory, a functional test might use the following format as a general flowchart:
- Test for shorts and values on voltage lines. While an ICT already checks for shorts, this may be performed on individual ICs instead of the power network itself. At worst, this constitutes a slight redundancy in testing that takes a minor set-up and provides immense benefits in pinpointing defects.
- Program the microcontroller(s). Microcontrollers are already ubiquitous throughout electronics as the brain for various systems, and their adoption will only increase with a tendency towards IoT-enabled devices. A rudimentary OS will be devised and loaded, providing for all device operations and exception handling.
- Additional feature testing. This testing may involve verifying that various components related to I/O, like LEDs or mechanical switches, produce expected values based on truth table circuit blocks.
Have Confidence in Your Manufacturing Partner’s Testing Capabilities
PCB functional testing aims to capture the device’s intent, resulting in a less clear-cut testing methodology. Test design has many possible interpretations that may be more or less appropriate depending on how the test conductors want to analyze the circuit to maximize defect detection relating to the intended operation.
Testing, in general, is a huge area of importance to development in minimizing costs, and functional testing serves as the final checkpoint before a product leaves manufacturing. To avoid damage to brand reputation and expensive recalls, you’ll want a PCB manufacturer with experience and expertise to maximize defect detection expeditiously. At VSE, we’re a team of engineers dedicated to building electronics for our customers. Together with our valued manufacturing partners, we strive to deliver quality boards that are second to none.