Main Content

Workflow Using Both Polyspace Bug Finder and Polyspace Code Prover

Polyspace® Bug Finder™ and Polyspace Code Prover™ perform different kinds of static analyses that have different objectives. Code Prover tries to mathematically prove the absence of a set of run-time errors. Bug Finder detects many types of coding rule violations and coding defects.

If you have both Bug Finder and Code Prover, integrate the products in different steps of your software development workflow. For instance:

  • All developers in your organization can run Bug Finder on newly developed code. For maintaining standards across your organization, you can deploy a common configuration that looks only for specific defect types.

    Code Prover can be deployed as part of your unit testing suite.

  • You can run Code Prover only on critical components of your project, while running Bug Finder on the entire project.

  • You can run Code Prover on modules of code at the unit testing level, and run Bug Finder when integrating the modules.

    You can run Code Prover before unit testing. Code Prover exhaustively checks your code and tries to prove the presence or absence of errors. Instead of writing unit tests for your entire code, you can then write tests only for unproven code. Using Code Prover before unit testing reduces your testing efforts drastically.

Depending on the nature of your software development workflow and available resources, there are many other ways you can incorporate the two kinds of analysis. You can run both products on your desktop during development or as part of automated testing on a remote server. Note that it is easier to interpret and fix bugs closer to development. You benefit from using both products if you deploy them early and often in your development process.

There are two important considerations if you are running both Bug Finder and Code Prover on the same code.

You might have to change more of the default options when you run the Code Prover verification because Code Prover is stricter about compilation and linking errors.