Code Assurance
Stop Releasing Previously Fixed Bugs

Code Assurance analyzes and searches your code to eliminate defects from releases. It takes as input a bug fix and automatically finds all the other instances that have been propagated throughout the codebase in variants, branches and pieces of replicated code.

The release of previously fixed bugs is a significant and rapidly growing problem for software development organizations. These "known" bugs tend to escape rigorous quality assurance processes; are missed by traditional static analysis tools; and most importantly, are especially difficult for customers to accept when discovered.

Pattern Insight analyzes billions of lines of code in seconds. It doesn’t suffer from the false positive problem that plagues many defect detection tools. It’s easily integrated with all major SCM systems and it fits neatly into your current development and release management processes, reinforcing quality protocols by blocking offending pieces of code or negligent coders.

Designed Specifically to Analyze Source Code

Pattern Insight Code Assurance relies on true innovation in advanced pattern search and discovery. Developed at the University of Illinois, Pattern Insight's advanced pattern search and discovery technology was tailored specifically to analyze source code, as opposed to more common unstructured web data.

Pattern Insight's technology makes it possible for the first time to launch fully-automated queries across entire code bases to find every instance of a known bug. A pattern is extracted from a SCM change set; a patch consisting of code changes to multiple snippets in different files; or a simple snippet. It can be stored within the system and then run at regular intervals to ensure that previously fixed bugs never reappear as defects in production software.

Our "dashboard" interface provides a simple, fast visualization that makes it easy to check that critical patches have been applied across all your different code branches. Our Patch Report uses a color-coded table indicating if a patch has been applied or missed on a given branch. Plus it is easily integrated into unified reporting systems.

Features

  • Ultra-fast performance, with search returns on BLOC in near-real time
  • Extremely high accuracy - within 99% confidence levels
  • Automatic bug pattern extraction, analysis, and search
  • Fuzzy pattern matching capability that tolerates changes in variable names, function names, and statement insertions and deletions
  • Code snippet search without complicated regex expressions
  • Advanced proximity searches as well as all of the standard keyword-based routines

Learn why up to 45% of software bugs shipped are previously fixed defects and what you can do about it.


Data Sheet


SCM Systems and Traditional Static Analysis Don’t Work This Way

SCM systems have built-in mechanisms to integrate one change set from one branch to the other. If an integration action is taken, it leaves an entry in the SCM log. Based on the history in the SCM log, companies build in-house tools to track where a bug fix goes. Although they help to some extent, they fall short in solving the problem and create a false sense of security that worsens the problem.

Learn more ››

Pattern Insight Code Assurance vs. Traditional Static Analysis

By combining pattern search and mining with source code analysis, Pattern Insight:

  • Focuses on a previously fixed bug (a "known" bug), finds every instance of it and ensures that it is never released again.
  • Can take any bug and search all of its instances. These bugs can be discovered by any traditional method, but most of them are found by testing, reported by customers, or discovered by developers manually.
  • Gives users the ability to selectively check only high impact bugs or security vulnerabilities if they don't want to waste time with minor issues.
  • Is easy to use and implement. It purely relies on source code itself – no compiler and build options are required. The ROI is gained in hours rather than days.
  • Is extremely fast. By using proprietary indexing technology, Code Assurance usually reports results in seconds in any scale of code bases.
  • Has high accuracy, usually more than 95%. It completely eliminates the possibility of releasing known bugs.

Complementary to Traditional Static Analysis Tools in Many Applications:

For Time Savings

  • Users can run traditional static analysis tools such as Coverity or Kloc Work once, then use Pattern Insight to harness the results to quickly analyze other releases, branches and product variants – eliminating the need to run static analysis tools multiple times and paying the price of their high attendant time demands.

To Increase Quality in Specific Development Stages

  • Pattern Insight is used together with static analysis tools in the different development stages – when a developer checks in code changes, a build engineer produces a nightly build, or a release engineer makes a final release.

Pattern Insight works with traditional static analysis tools.

Learn why up to 45% of software bugs shipped are previously fixed defects and what you can do about it.


Data Sheet


Adapts to Multiple Workflow Scenarios

1. To Ensure Releases are Clean of Previously Fixed Bugs

For Build/Release Owners, Pattern Insight easily integrates into the release process, or continuous integration, to identify previously fixed bugs in nightly builds or releases going out the door.
For example, customers have built catalogs containing hundreds of security vulnerabilities and other important defects and run nightly reports indicating if any of these bugs have leaked into their daily builds. If a match is found, the build is blocked and the developer is automatically notified.

2. To Eliminate All Instances of a Bug in Development

Developers use Pattern Insight Code Assurance to ensure bugs have been fixed across all locations, branches and components in the development process. Simply running a Pattern Insight report identifies every instance of a bug, allowing them to be fixed immediately. And Pattern Insight can support custom workflows, by enabling alerts at code review or code check-in.

3. To Ensure All Changes are Ported into the Final Release

Release engineers use Pattern Insight Code Assurance to automatically ensure that changes made in separate branches make it into the final release. The number of changes checked can be hundreds to thousands in one single run. What takes months to manually verify takes only minutes with Pattern Insight.

Learn why up to 45% of software bugs shipped are previously fixed defects and what you can do about it.


Data Sheet


See It for Yourself

Pattern Insight analyzes billions of lines of code in seconds. It doesn't suffer from the false positive problem that plagues many defect detection tools. It is easily integrated with all major SCM systems. And it fits neatly into your current development and release management processes, reinforcing quality protocols by blocking offending pieces of code or negligent coders.

Code Assurance Demo Video

Learn why up to 45% of software bugs shipped are previously fixed defects and what you can do about it.


Data Sheet