IP Library › Granted Patent US 12,124,358
Granted Patent B2
US 12,124,358 · App. 18/476,558 · Granted Oct 22, 2024

System and method for continuous testing and delivery of software

Inventors: Alon Eizenman (Netanya, IL); Eran Sher (Kfar Saba, IL)
Assignee: SEALIGHTS TECHNOLOGIES LTD
G06F11/3676G06F8/60G06F8/71G06F8/75G06F11/36G06F11/3604G06F11/3664G06F11/3688
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 12,124,358
App. No.
18/476,558
Granted
Oct 22, 2024
Kind
B2
Abstract

A system and method for CI/CT/CD, which is continuous integration/continuous testing/continuous delivery, in which testing is fully integrated to the needs of rapid code development and delivery. The system is determining test coverage of a plurality of tests, comprising a code builder for providing code, a code tester for testing the code with said plurality of tests, and a code test analyzer for analyzing results of said plurality of tests to determine coverage of said code by said plurality of tests.

Claims (36)

1. A system, comprising:

one or more computing devices configured to implement a test selection system, wherein the test selection system is configured to:

execute a plurality of tests on a first set of program code, wherein execution of a respective test from the plurality of tests generates data indicative of code coverage of the respective test with respect to the first set of program code;

store a mapping of the tests to the first set of program code, wherein the mapping is determined based at least in part on the data indicative of code coverage, and wherein the mapping comprises data indicative of one or more portions of the first set of program code executed through respective tests from the plurality of tests, and also a test coverage hole if any;

receive a second set of program code, wherein the second set of program code is associated with data indicative of one or more modified or new portions of the second set of program code;

select a subset of the tests to execute the second set of program code based at least in part on:

the mapping,

the data indicative of the one or more modified or new portions of the second set of program code, and

a determination of similarity of the one or more modified or the new portions to one or more portions of the first set of program code; and

cause the subset of the tests to be executed on the second set of program code.

2. The system of claim 1 , wherein the test selection system is further configured to: determine a priority sequence for the subset of the tests, wherein the priority sequence is determined based at least in part on an estimated of said test coverage hole to be closed by said tests.

3. The system of claim 1 , wherein the test selection system is further configured to: determine a priority sequence for the subset of the tests, wherein the priority sequence is determined based at least in part on an estimated execution time for the tests.

4. The system of claim 1 , wherein the test selection system is further configured to: determine whether a test has failed a plurality of times; and if so, score said test as a suspect test.

5. The system of claim 1 , wherein said at least one test coverage hole is determined according to one or more of:

a. changes in the code;

b. a new or changed run-time environment; and

c. previous failed tests or test coverage holes.

6. The system of claim 5 , wherein said determining test coverage comprises first determining said test coverage according to a specific run-time environment, and then across all relevant run-time environments, such that said test coverage is determined according to a plurality of run-time environments in aggregate.

7. The system of claim 6 , further comprising determining test coverage first per run-time environment and then according to a specific code build.

8. The system of claim 7 , further comprising analyzing build quality of said code build according to a build score; if said build score falls below a threshold, determining whether one or more additional tests are needed according to test coverage holes, test dependencies or a combination thereof; and selecting said tests according to said one or more additional tests.

9. The system of claim 7 , wherein said code build comprises one or more binary files.

10. The system of claim 7 , wherein said at least one computational device further comprises a quality management platform comprising: a build listener, a test listener and an analysis engine; wherein said quality management platform is operated across one or more computational devices; wherein said quality management platform receives said code build from a code development system;

wherein said build listener analyzes said code build to determine code changes made from an immediately preceding code build;

wherein said test listener receives said test results from a code testing system;

wherein said analysis engine determines the quality of said code build to form determined quality; and

wherein if said determined quality is over a threshold, permitting said code build to be deployed.

11. The system of claim 10 , further comprising determining said determined quality by performing:

a. detecting at least one change in code from a previous code build to a current code build and analysis of at least one test in a plurality of test environments to determine whether such change has been tested for determining test coverage;

b. assessing previous test coverage; and

c. assessing at least one test coverage hole;

d. wherein said assessment of at least one test coverage hole comprises determining at least a portion of the code that has been modified, but has not adequately been tested by test(s) that have been run across said plurality of test environments.

12. The system of claim 11 , wherein said determining test coverage comprises determining said test coverage across a plurality of builds in aggregate by analyzing build quality of each build according to said build score.

13. The system of claim 12 , further comprising determining test coverage holes across said plurality of environments and across said plurality of builds in aggregate.

14. The system of claim 12 , wherein said build score is determined according to one or more quality analytics, comprising one or more of detection of problematic code areas, detection of duplicate and similar tests; and comparing footprints of production or QA execution to highlight relevant and irrelevant tests.

15. The system of claim 14 , wherein said build score is determined according to one or more quality analytics, comprising one or more of detection of problematic code areas, detection of duplicate and similar tests; or comparing footprints of production and QA execution to highlight relevant and irrelevant tests.

16. The system of claim 15 , wherein said tests are also selected according to a change in said code across said plurality of builds.

Assignments (1)
MERGER AND CHANGE OF NAME Recorded Mar 5, 2025
From: SEALIGHTS TECHNOLOGIES LTD; TRICENTIS ISRAEL LTD
To: TRICENTIS ISRAEL LTD
Reel/Frame 070407/0200 →
Continuity (4)
Continuation 17371144 · Jul 9, 2021
Continuation 16323263
Related Publication 20240134778A1 · Apr 25, 2024
Related Publication 20240232055A9 · Jul 11, 2024