IP Library › Granted Patent US 8,423,967
Granted Patent B2
US 8,423,967 · App. 12/496,480 · Granted Apr 16, 2013

Automated level-based targeted test configuration

Inventors: Ian G. Holden (Salisbury, GB); Mark R. Hufnagel (Corning, NY); Michael T. Peters (Morrisville, NC); Jonathan S. Tilt (Romsey, GB); Michael J. Triantafelow (Morrisville, NC)
Assignee: International Business Machines Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,423,967
App. No.
12/496,480
Granted
Apr 16, 2013
Kind
B2
Abstract

An indication of a change to at least one source file associated with a software build is received via a processor. A set of test levels of a level-based testing suite are sequentially processed, where each test level subsequently processed includes tests with decreasing qualitative testing information relative to tests associated with previously-processed test levels. For each processed test level, at least one test is selected that tests the change to the at least one source file associated with the software build, test coverage relative to a target risk level for the software build is determined for each selected test, and test selection is terminated upon determining that the test coverage for the selected tests at least meets the target risk level for the software build.

Claims (81)

1. A system, comprising:

a memory that stores a level-based testing suite for testing a software build; and

a processor programmed to:

receive an indication of a change to at least one source file associated with the software build;

sequentially process a plurality of test levels of the level-based testing suite, where each test level subsequently processed comprises tests with decreasing qualitative testing information relative to tests associated with previously-processed test levels; and

where the processor is further programmed, for each processed test level, to:

select at least one test that tests the change to the at least one source file associated with the software build;

determine test coverage relative to a target risk level for the software build for each selected test;

determine a test coverage risk reduction measure associated with automated test coverage data for each test selected from a first of the plurality of test levels of the level-based testing suite sequentially processed; and

terminate test selection upon determining that the test coverage for the selected tests at least meets the target risk level for the software build.

2. The system of claim 1 , where:

the first of the plurality of test levels of the level-based testing suite sequentially processed by the processor comprises tests, each with the associated automated test coverage data; and

a second of the plurality of test levels of the level-based testing suite sequentially processed by the processor comprises tests, each with associated developer-created test information that identifies conditional selection criteria for the tests based upon identified source files that are changed within the software build; and

where, in being programmed to determine test coverage relative to a target risk level for the software build for each selected test, the processor is programmed to:

sum the test coverage risk reduction measure associated with the automated test coverage data for each test selected from the first of the plurality of test levels;

compare the summed test coverage risk reduction measure to the target risk level for the software build;

determine that the summed test coverage risk reduction measure does not at least meet the target risk level for the software build; and

initiate selection of tests from the second of the plurality of test levels.

3. The system of claim 1 , where:

the first of the plurality of test levels of the level-based testing suite sequentially processed by the processor comprises tests, each with the associated automated test coverage data; and

a second of the plurality of test levels of the level-based testing suite sequentially processed by the processor comprises tests, each with associated developer-created test information that identifies conditional selection criteria for the tests based upon identified source files that are changed within the software build; and

the processor is further programmed to:

determine that the test coverage relative to the target risk level for the software build for each selected test from the first of the plurality of test levels of the level-based testing suite sequentially processed does not at least meet the target risk level for the software build; and

where, in being programmed to select tests that test the change to the at least one source file associated with the software build, the processor is programmed to select the tests from the second of the plurality of test levels based upon the associated developer-created test information; and

where, in being programmed to determine test coverage relative to a target risk level for the software build for each selected test, the processor is programmed to determine whether the tests selected from the second of the plurality of test levels fully test the change to the at least one source file associated with the software build.

4. A system, comprising:

a memory that stores a level-based testing suite for testing a software build; and

a processor programmed to:

receive an indication of a change to at least one source file associated with the software build;

sequentially process a plurality of test levels of the level-based testing suite, where each test level subsequently processed comprises tests with decreasing qualitative testing information relative to tests associated with previously-processed test levels;

for each processed test level, to:

select at least one test that tests the change to the at least one source file associated with the software build;

determine test coverage relative to a target risk level for the software build for each selected test;

determine a test coverage risk reduction measure associated with the automated test coverage data for each test selected from the first of the plurality of test levels of the level-based testing suite sequentially processed; and

terminate test selection upon determining that the test coverage for the selected tests at least meets the target risk level for the software build; and

upon termination of test selection, to:

configure a test for the software build to test the change to the at least one source file associated with the software build based upon the tests selected from a plurality of tests for each processed test level; and

initiate testing of the software build via an automated testing framework.

5. A computer program product comprising a computer readable storage medium including a computer readable program, where the computer readable program when executed on a computer causes the computer to:

receive an indication of a change to at least one source file associated with the software build;

sequentially process a plurality of test levels of the level-based testing suite, where each test level subsequently processed comprises tests with decreasing qualitative testing information relative to tests associated with previously-processed test levels; and

where the computer readable program when executed on the computer further causes the computer, for each processed test level, to:

select at least one test that tests the change to the at least one source file associated with the software build;

determine test coverage relative to a target risk level for the software build for each selected test;

determine a test coverage risk reduction measure associated with the automated test coverage data for each test selected from the first of the plurality of test levels of the level-based testing suite sequentially processed; and

terminate test selection upon determining that the test coverage for the selected tests at least meets the target risk level for the software build.

6. The computer program product of claim 5 , where:

the first of the plurality of test levels of the level-based testing suite sequentially processed by the computer comprises tests, each with the associated automated test coverage data;

a second of the plurality of test levels of the level-based testing suite sequentially processed by the computer comprises tests, each with associated developer-created test information that identifies conditional selection criteria for the tests based upon identified source files that are changed within the software build;

a third of the plurality of test levels of the level-based testing suite sequentially processed by the computer comprises tests, each with associated persistent source file test mapping information that identifies conditional selection criteria for the tests based upon identified components that comprise a plurality of source files that are changed within the software build; and

a fourth of the plurality of test levels of the level-based testing suite sequentially processed by the computer comprises tests without qualitative testing information.

7. The computer program product of claim 6 :

where, in causing the computer to determine test coverage relative to a target risk level for the software build for each selected test, the computer readable program when executed on the computer causes the computer to:

sum the test coverage risk reduction measure associated with the automated test coverage data for each test selected from the first of the plurality of test levels;

compare the summed test coverage risk reduction measure to the target risk level for the software build;

determine that the summed test coverage risk reduction measure does not at least meet the target risk level for the software build; and

initiate selection of tests from the second of the plurality of test levels.

8. The computer program product of claim 6 , where the computer readable program when executed on the computer further causes the computer to:

determine that the test coverage relative to the target risk level for the software build for each selected test from the first of the plurality of test levels of the level-based testing suite sequentially processed does not at least meet the target risk level for the software build; and

where, in causing the computer to select tests that test the change to the at least one source file associated with the software build, the computer readable program when executed on the computer causes the computer to select the tests from the second of the plurality of test levels based upon the associated developer-created test information; and

where, in causing the computer to determine test coverage relative to a target risk level for the software build for each selected test, the computer readable program when executed on the computer causes the computer to determine whether the tests selected from the second of the plurality of test levels fully test the change to the at least one source file associated with the software build.

9. The computer program product of claim 6 , where the computer readable program when executed on the computer further causes the computer to:

determine that the test coverage relative to the target risk level for the software build for each selected test from the first and second of the plurality of test levels of the level-based testing suite sequentially processed do not at least meet the target risk level for the software build; and

where, in causing the computer to select tests that test the change to the at least one source file associated with the software build, the computer readable program when executed on the computer causes the computer to select the tests from the third of the plurality of test levels based upon the associated persistent source file test mapping information; and

where, in causing the computer to determine test coverage relative to a target risk level for the software build for each selected test, the computer readable program when executed on the computer causes the computer to determine whether the tests selected from the third of the plurality of test levels fully test the change to the at least one source file associated with the software build.

10. The computer program product of claim 6 , where the computer readable program when executed on the computer further causes the computer to:

determine that the test coverage relative to the target risk level for the software build for each selected test from the first, second, and third of the plurality of test levels of the level-based testing suite sequentially processed do not at least meet the target risk level for the software build; and

where, in causing the computer to select tests that test the change to the at least one source file associated with the software build, the computer readable program when executed on the computer causes the computer to select all tests from the fourth of the plurality of test levels of the level-based testing suite sequentially processed; and

where, in causing the computer to determine test coverage relative to a target risk level for the software build for each selected test, the computer readable program when executed on the computer causes the computer to determine whether the tests selected from the fourth of the plurality of test levels fully test the change to the at least one source file associated with the software build.

11. The computer program product of claim 5 , where the computer readable program when executed on the computer further causes the computer to:

receive automated test coverage information for a test associated with a second of the plurality of test levels of the level-based testing suite sequentially processed; and

promote the test to the first of the plurality of test levels of the level-based testing suite sequentially processed.

12. The computer program product of claim 5 , where the computer readable program when executed on the computer further causes the computer to:

receive a test for assignment to one of the plurality of test levels of the level-based testing suite;

determine whether the received test comprises available source file test configuration information; and

assign the received test to one of the plurality of test levels based upon the determination of whether the received test comprises the available source file test configuration information.

13. The computer program product of claim 12 , where, in causing the computer to assign the received test to one of the plurality of test levels based upon the determination of whether the received test comprises the available source file test configuration information, the computer readable program when executed on the computer causes the computer to:

assign the received test to a first test level upon determining that the received test comprises automated test coverage information;

assign the received test to a second test level upon determining that the received test comprises developer-created test information;

assign the received test to a third test level upon determining that the received test comprises associated persistent source file test mapping information; and

assign the received test to a fourth test level upon determining that the received test does not comprise the available source file test configuration information.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 1, 2009
From: HOLDEN, IAN G.; HUFNAGEL, MARK R.; PETERS, MICHAEL T.; TILT, JONATHAN S.; TRIANTAFELOW, MICHAEL J.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 022905/0387 →
Continuity (1)
Related Publication 20110004867A1 · Jan 6, 2011