Method and apparatus for prioritizing software tests
Abstract
A computer system and method is provided for prioritizing software tests. Software tests are prioritized based on coverage indicators for the software tests and an indication of impacted areas of the software. Each of the coverage indicators indicates which portions of the software are executed for a respective one of the software tests. The portions of the software include at least one of a plurality of blocks. The indication of impacted areas of the software indicates ones of the plurality of blocks that are modified or new with respect to a previous version of the software. A prioritized list of software tests is output. The prioritized list includes at least one test sequence.
Claims
exact text as granted — not AI-modified1 . A computer-implemented method of prioritizing software tests, the method comprising the steps of:
(A) prioritizing software tests for software to be tested based on coverage indicators for the software tests and an indication of impacted areas of the software, each of the coverage indicators indicating which portions of the software are executed for a respective one of the software tests; and (B) generating a prioritized list of the software tests, the prioritized list including at least one test sequence, wherein: the portions of the software include at least one of a plurality of blocks, and the indication of impacted areas of the software indicates ones of the plurality of blocks that are modified or new with respect to a previous version of the software.
2 . The computer-implemented method of claim 1 , wherein the blocks include blocks of binary code and each of the blocks has a single entry point and a single exit point.
3 . The computer-implemented method of claim 1 , wherein a coverage indicator of a new block indicates that the respective one of the software tests executes the new block when a predecessor block and a successor block of the new block have been indicated as being executed by the respective one of the software tests.
4 . The computer-implemented method of claim 1 , wherein a coverage indicator of a new block indicates that the respective one of the software tests executes the new block when a successor block of the new block has been indicated as being executed by the respective one of the software tests.
5 . The computer-implemented method of claim 1 , wherein:
the step (A) comprises determining whether ones of the modified and the new blocks exist that are not indicated as being executed by any of the software tests, and the computer-implemented method further comprises the step (C) of generating a list of the ones of the modified and the new blocks that are not indicated as being executed by any of the software tests.
6 . The computer-implemented method of claim 1 , wherein the step (A) comprises the steps of:
(A1) computing a weight for each of the software tests, the weight being based on a number of the new and the modified blocks that are indicated as being executed by each respective one of the software tests; (A2) selecting a first test having a maximum weight among the software tests; and (A3) adding the selected first test to a current test sequence.
7 . The computer-implemented method of claim 6 , wherein the step (A) further comprises the steps of:
(A4) removing from consideration the selected first software test and any of the new and the modified blocks that are indicated as being executed by the selected first test; (A5) computing a weight for each of the software tests under consideration, the weight being based on a number of the new and the modified blocks under consideration that are indicated as executed by each of the respective ones of the software tests; (A6) selecting a second test having a maximum weight among the software tests under consideration; and (A7) adding the selected second test to the current test sequence.
8 . The computer-implemented method of claim 1 , wherein the step (A1) includes adding to the weight of the respective one of the software tests when any of the new and the modified blocks that are indicated as being executed by the respective one of the software tests is in a performance critical part of the software to be tested.
9 . The computer-implemented method of claim 1 , wherein the step (A1) includes utilizing a rate of fault detection of each of the respective ones of the software tests when computing a respective weight.
10 . The computer-implemented method of claim 1 , wherein the coverage indicators indicate one or more arcs that are covered by each respective one of the software tests and the indication of impacted areas of the software further indicates ones of the arcs that are new or modified with respect to a previous version of the software.
11 . The computer-implemented method of claim 10 , wherein:
the step (A) comprises determining whether ones of the arcs are not indicated as being taken by any of the software tests, and the computer-implemented method further comprising the step (C) of generating a list of the ones of the arcs that are not indicated as taken by any of the software tests.
12 . The computer-implemented method of claim 10 , wherein the step (A) comprises the steps of:
(A1) computing a weight for each of the software tests, the weight being based on a number of the ones of the arcs that are indicated as taken by each respective one of the software tests; (A2) selecting a first test having a maximum weight among the software tests; and (A3) adding the selected first test to a current test sequence.
13 . The computer-implemented method of claim 12 , further comprising:
(A4) removing from consideration the selected first software test and any of the ones of the arcs that are indicated as taken by the selected first test; (A5) computing a weight for each of the software tests under consideration, the weight being based on a number of the ones of the arcs under consideration that are indicated as taken by each of the respective ones of the software tests; (A6) selecting a second test having a maximum weight among the software tests under consideration; and (A7) adding the selected second test to the current test sequence.
14 . A computer-readable medium having instructions stored thereon, such that when the instructions are loaded and executed by a processor, the processor is caused to perform the steps of:
(A) prioritizing software tests based on coverage indicators for the software tests and an indication of impacted areas of software to be tested, each of the coverage indicators indicating which portions of the software to be tested are executed for a respective one of the software tests; and (B) generating a prioritized list of the software tests, the prioritized list including at least one test sequence, wherein: the software to be tested includes a plurality of blocks, each of the coverage indicators indicates at least one block of the plurality of blocks that is executed by a respective one of the software tests, and the indication of impacted areas indicates ones of the plurality of blocks that are modified or new with respect to a previous version of the software to be tested.
15 . The computer-readable medium of claim 14 , wherein the step (A) comprises the steps of:
(A1) computing a weight for each of the software tests, the weight being based on a number of the new and the modified blocks that are indicated as being executed by each respective one of the software tests; (A2) selecting a first test having a maximum weight among the software tests; and (A3) adding the selected first test to a current test sequence.
16 . The computer-readable medium of claim 14 , wherein the step (A) further comprises the steps of:
(A4) deleting from consideration the selected first software test and any of the new and the modified blocks that are indicated as being executed by the selected first test; (A5) computing a weight for each of the software tests under consideration, the weight being based on a number of the new and the modified blocks under consideration that are indicated as being executed by each of the respective ones of the software test; (A6) selecting a second test having a maximum weight among the software tests under consideration; and (A7) adding the selected second test to the current test sequence.
18 . A computer-implemented method of prioritizing software tests, the method comprising the steps of:
(A) prioritizing software tests for software to be tested based on differences between a binary code representation of a previous version of the software to be tested and a binary code representation of the software to be tested; and (B) generating a prioritized list of the software tests.
19 . The computer-implemented method of claim 18 , wherein the differences include differences regarding blocks.
20 . The computer-implemented method of claim 18 , wherein the differences include differences regarding arcs.Join the waitlist — get patent alerts
Track US2006129994A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.