Papers

Presented at the Microprocessor Test and Verification Conference (MTVCon13)

The purpose of regression testing is to quickly catch any deterioration in quality of a product under development. The more frequently tests are run, the earlier new issues can be detected resulting in a larger burden for the engineers who need to manually debug all test failures, many of which are failing due to the same underlying bug. However, there are software tools that automatically debug the test failures back to the faulty change and notifies the engineer who made this change. By analyzing data from a real commercial ASIC project we measured whether bugs are fixed faster when using automatic debug tools compared to manual debugging. We saw that bugs that had been automatically debugged was fixed 4 times faster.

Download PDF

Planning for Bugs

Bugs appear seemingly randomly during the development of an ASIC, which makes planning a challenge. Here we show that some metrics regarding bugs are predictable and useful for planning. In this paper we explore 4 different ASIC projects and found that on average every 37th commit introduces a regression bug. We also found that the median bug is small.

 

Download PDF

 

Presented at MTVCon Dec 2014, Austin, TX

Lint tools analyze RTL statically and report code segments that do not comply with the selected coding guidelines. It is quick to run and as the error messages are very precise it is easy to fix the issues. It requires much less resources to fix a linting issue than to find and fix the same issue during simulation of a test. However, the large amounts of errors and warning messages that the linting tools produce is a problem.

Download PDF

Regression Testing with Random Tests Cannot Identify Regressions. - What to do about it.

Most ASIC companies use random tests not only to verify new designs but also for regression testing. Using random tests for regression testing is a great idea for coverage as the randomness over time will ensure that the total coverage will improve. Instead of running the same tests every night, each night’s regression test suite is slightly different with different seeds. However improving coverage is not what the specific topic of regression testing is about. The purpose of regression testing is to quickly identify dips in quality, i.e. regressions, in order to address them and keep the quality high. And here random tests have one downside – they cannot identify regressions. But there are ways to address this issue.

Download PDF