Rodney Dangerfield was known to say ďI don't get no respect.Ē Sometimes, thatís how it feels to be a test engineer. Iím always amazed how little appreciation the test organization garners in most companies. From forgetting to invite us to design reviews, to the inevitable schedule crunch near the end of the project, the test group goes greatly unappreciated in the engineering world.
I therefore thought it might be interesting to bring you a perspective into the wonderful world of test. Over time, I hope to touch on subjects that explain the role of testing at each stage of the product lifespan, and to spark discussions on the theories, processes, practices, concerns, and benefits that are (or at least should be) an integral part of every solid test effort.
To kick things off, letís look at the objectives of testing. All testing is geared toward gathering information, but what we hope to learn can greatly influence how we test. The four primary strains of testing are: testing for verification, for validation, for investigation, and for experimentation. All four are similar in intent -- they may overlap in execution -- but each serves a somewhat different end, and the methodologies employed in each can vary significantly. Iíll clarify each below.
Verification testing serves to provide evidence of acceptable functionality, and is normally associated with quality control efforts. Verification test efforts can be as simple as a single pass/fail case, or they may involve executing numerous test cases and gathering copious amounts of data, in order to prove or confirm that a test subject exhibits prescribed traits or behaviors in an expected manner. Verification testing can occur at all stages of the product life cycle and is integral to the three other objectives of test.
A function of Quality Assurance, validation testing serves to provide evidence of durability, stability, and longevity. Validation testing quite often involves selecting specific verification test cases that are indicative of continued functionality, and then executing them in the presence of added environmental components. Testing for validation generally occurs near the end of the design phase, and includes methods to gauge reliability, such as ESD, EMI, thermal cycling, and vibration, and even extends beyond the lab into field trials. Validation testing is often prescribed by industry standards and can involve proving a productís capabilities to a regulating organization.
Investigative testing serves two main purposes. The first involves executing targeted experiments with the intention of uncovering the cause of unexpected or undesirable behavior. Troubleshooting a failure would be a simple example. Root cause analysis is another.
However, investigative testing can also serve to seek limitations or capabilities beyond the constraints of the original design parameters. Such testing might include corner or shock testing a product at increasingly rigorous environmental conditions until it completely fails, just to find where that boundary is. Commonly referred to as accelerated life testing (HALT or HASS), this type of investigative testing helps us measure how far a product performs beyond the expected scope of normal use. I like to call this "headroom."
Testing for experimentation is very similar to investigation, but is perhaps a more crude or rudimentary form. This is where we put on our mad scientist hats. Experimentation is most commonly preceded by the question, ďWhat would happen if we...?Ē We donít necessarily have some theory to prove, nor is there a predetermined result to observe. Experimentation is testing for the purpose of learning or gathering information about a situation, where the outcome is a complete unknown.
Thatís about it for reasons to test. I realize these are broad explanations, but perhaps they will help to keep us on the same page in future discussions, and spark some discussion. Please donít hesitate to let me know if I left anything out. Got any fun examples of experimentation testing?