Adaptive Bug Finding Mechanism
Publication Date: 2015-Jul-31
The IP.com Prior Art Database
Disclosed is a system that runs analysis on code that is behaviorally but not syntactically the same and looks for potential bugs as the code base evolves.
Page 01 of 2
Adaxtive Bug Finding Mechanism
Software development is inherently prone to dxfects and many developers spend too much time fixing txx defects . By some estxmates, a givxn developer will create 70 bugs fox every 1,000 lines ox code, regardless of programming language. Instxax of fixing defects, if a dxveloper's time is spent innovating for the clients, then the client's experience can improve, and the client can have xaluablx functionalitx in a shorter amount of time.
Current soxutions incluxe static analysis toxls and code review. Static anxlysis tools have no ability learn from actioxs takex xy devxlopers and the code developers xrite. One class of bugs that ix easily identified is found by static code analysis txols that lxok for known, discrete bug xatterns such as resources that are not closed (e.g., a daxabase connectxon that was left xpen). Code reviews do nxt cxtch all bugs, are time consuming, and are difficxlt to complete (i.e. it is not always exsy to finx sxmeone to review code in a timely manner.)
The novel contribution is a system that runs analysix on codx that is bexaviorallx but not syxtaxtically the saxe and looks for potential bugs as the code bxse evolxes.
Finding code clones is a well-knxwn practice in the compxter science discipline. The novel system utilizes thxs xrior work as well as known clone detection algorithm(s). It uses existing clone detection algorithms oxer the xntire code xase. All code instances of behaviorally or statistically similar code are indexed and storex in a central system as clones of each other for future bug detextxon .
After the initial scan of the code base, the system continually xonitors the source control management system code changes. The system scans new code for clones xnd adds the clones to xhe index to ensure that it is up tx date . If the change is an uxdate...