System and method for test impact analysis of computer programs
AssigneeParasoft Corporation
InventorsJacek Marzec, Nathan Michael Jakubiak
Life of this patent
Estimating the term…
Abstract
System and method for testing changes to binary code of a computer program include: collecting test coverage data from an executed set of tests of an original computer program; calculating a baseline report containing correlations between the executed set of tests and blocks of binary code of the original computer program; determining binary code changes between the original computer program and a modified version of the computer program; identifying one or more tests to be executed for verifying the binary code changes.
Claims20
A method for testing changes to binary code of a computer program, the method comprising:
- collecting test coverage data from an executed set of tests of an original computer program;
- creating baseline report containing correlations between the executed set of tests and blocks of binary code of the original computer program;
- determining binary code changes between the original computer program and a modified version of the computer program;
- and
- identifying one or more tests to be executed for verifying the binary code changes, wherein determining binary code changes comprises:
- iterating over each block of binary code of the modified version of the computer program and checking whether said each block of binary code exists in same location in the binary codes of the original computer program and the modified version of the computer program,
- for each block of binary code that exists in the same locations, comparing a fingerprint for the block of binary code in the baseline report with a fingerprint for the block of binary code in the modified version of the computer program, and
- marking the code block as modified when the fingerprints are different,
- for all blocks of binary code that do not exist in same locations in the binary codes of the original computer program and the modified version of the computer program, matching blocks of binary codes that have a same pseudo unique identifier,
- for each pair of matched blocks of binary code, comparing the fingerprint for the block of binary code in the baseline report with the fingerprint for the block of binary code in the modified version,
- marking the block of binary code as modified when the fingerprints are different, and
- marking remaining binary codes of the original computer program that were not matched as modified.
A system for testing changes to binary code of a computer program comprising:
- a coverage collector for collecting test coverage data from an executed set of tests of an original computer program;
- and
- a test impact analysis engine for creating baseline report containing correlations between the executed set of tests and blocks of binary code of the original computer program, determining binary code changes between the original computer program and a modified version of the computer program, and identifying one or more tests to be executed for verifying the binary code changes, wherein determining binary code changes comprises:
- iterating over each block of binary code of the modified version of the computer program and checking whether said each block of binary code exists in same location in the binary codes of the original computer program and the modified version of the computer program,
- for each block of binary code that exists in the same locations, comparing a fingerprint for the block of binary code in the baseline report with a fingerprint for the block of binary code in the modified version of the computer program, and
- marking the code block as modified when the fingerprints are different,
- for all blocks of binary code that do not exist in same locations in the binary codes of the original computer program and the modified version of the computer program, matching blocks of binary codes that have a same pseudo unique identifier,
- for each pair of matched blocks of binary code, comparing the fingerprint for the block of binary code in the baseline report with the fingerprint for the block of binary code in the modified version,
- marking the block of binary code as modified when the fingerprints are different, and marking remaining binary codes of the original computer program that were not matched as modified.
A non-transitory tangible computer readable memory storing a plurality of computer instructions, the instructions when executed by one or more processor perform a method for testing changes to binary code of a computer program, the method comprising:
- collecting test coverage data from an executed set of tests of an original computer program;
- creating a baseline report containing correlations between the executed set of tests and blocks of binary code of the original computer program;
- determining binary code changes between the original computer program and a modified version of the computer program;
- and
- identifying one or more tests to be executed for verifying the binary code changes, wherein determining binary code changes comprises:
- iterating over each block of binary code of the modified version of the computer program and checking whether said each block of binary code exists in same location in the binary codes of the original computer program and the modified version of the computer program,
- for each block of binary code that exists in the same locations, comparing a fingerprint for the block of binary code in the baseline report with a fingerprint for the block of binary code in the modified version of the computer program, and
- marking the code block as modified when the fingerprints are different,
- for all blocks of binary code that do not exist in same locations in the binary codes of the original computer program and the modified version of the computer program, matching blocks of binary codes that have a same pseudo unique identifier, for each pair of matched blocks of binary code, comparing the fingerprint for the block of binary code in the baseline report with the fingerprint for the block of binary code in the modified version,
- marking the block of binary code as modified when the fingerprints are different, and
- marking remaining binary codes of the original computer program that were not matched as modified.
Dependencies are inferred from the claim text.