Cross-fertilization between hardware verification and software testing
Abstract
For many, hardware design verification and software testing may seem like separate disciplines. Yet, significant similarities exist between software development and hardware design, and the successful adaptation of techniques originally developed for one field for use in the other, suggests that these disciplines are related. One prominent example is code coverage, first developed for software testing and now commonly used in hardware verification. Another example is the FSM based test generator, developed for the verification of hardware modules and now successfully employed for software testing. Moreover, some techniques, such as reliability estimation, were developed for hardware, changed and adopted for software, and now again show their usefulness with hardware. This paper analyzes the similarities and differences between hardware verification and software testing. It provides a short survey of methodologies and techniques that were developed for one field and later adapted for the other. We then speculate, based on experience in both fields, which hardware verification technologies can potentially impact software testing.