System and method for software immunization based on static and dynamic analysis
AssigneeAvaya Inc.
InventorsJames M Landwehr, Juan Jenny Li, John Palframan
Life of this patent
Estimating the term…
Abstract
Disclosed herein are systems, methods, and non-transitory computer-readable storage media for analyzing source code and identifying potential defects. The methods employ both static analysis and dynamic testing to detect program defects early in the development stage for better quality with less cost. The analysis also ranks identified potential defects and reports only the most likely defects to a human developer. Once defects are detected, they can be removed right away and similar defects can be prevented automatically.
Claims20
A method comprising:
- identifying a potential source code defect;
- assigning a defect potential value to the potential source code defect;
- testing, via a processor, the potential source code defect to yield a testing result and a tested source code defect;
- updating the defect potential value based on the testing result to yield an updated defect potential value by increasing the defect potential value, when the testing result indicates that the tested source code defect is not a potential false positive;
- ranking the tested source code defect, among other tested non-false-positive source code defects, based on the updated defect potential value and respective defect potential values associated with the other tested non-false-positive source code defects;
- and
- presenting to a user an identified potential non-false-positive source code defect selected from among the ranked tested source code defect and the other tested non-false-positive source code defects, the identified potential non-false-positive source code defect having an associated defect potential value above a predetermined threshold value.
A system comprising:
- a processor;
- and
- a computer-readable storage device storing instructions which, when executed by the processor, cause the processor to perform operations comprising:
- identifying a potential source code defect in a source code file;
- assigning a defect potential value to the potential source code defect;
- testing the potential source code defect to yield a test result and a tested source code defect;
- updating the defect potential value based on the test result to yield an updated defect potential value by increasing the defect potential value, when the testing result indicates that the tested source code defect is not a potential false positive;
- ranking the tested source code defect, among other tested non-false-positive source code defects, based on the updated defect potential value and respective defect potential values associated with the other tested non-false-positive source code defects;
- and
- presenting to a user an identified potential non-false-positive source code defect selected from among the ranked tested source code defect and the other tested non-false-positive source code defects, the identified potential non-false-positive source code defect having an associated defect potential value above a predetermined threshold value.
A non-transitory computer-readable storage medium storing instructions which, when executed by a processor, cause the processor to perform operations comprising:
- identifying a potential source code defect;
- assigning a defect potential value to the potential source code defect;
- testing a section of code containing the potential source code defect to yield a test result and a tested source code defect;
- updating the defect potential value based on the test result to yield an updated defect potential value by increasing the defect potential value, when the testing result indicates that the tested source code defect is not a potential false positive;
- ranking the tested source code defect, among other potential tested non-false-positive source code defects, based on the updated defect potential value and respective defect potential values associated with the other tested non-false-positive source code defects;
- and
- presenting, via a user interface, an identified potential non-false-positive source code defect selected from among the ranked tested source code defect and the other tested non-false-positive source code defects, the identified potential non-false-positive source code defect having an associated defect potential value above a predetermined threshold value.
Dependencies are inferred from the claim text.