Environment for continuous testing and integration of software

US10733087B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10733087-B2
Application numberUS-201816163142-A
CountryUS
Kind codeB2
Filing dateOct 17, 2018
Priority dateOct 17, 2018
Publication dateAug 4, 2020
Grant dateAug 4, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A computing system may include a software application configured to receive instructions to merge a source code update with a branch of a software product, provide instructions to merge the source code update into the branch, and select software tests to execute on the branch as updated based on a portion of the branch modified by the source code update and a predetermined checkpoint within a development cycle of the software product. The software application may also be configured to provide instructions to execute the software tests on the branch as updated and receive feedback data indicating results of the software tests. The software application may be additionally configured to determine that the feedback data indicates that the branch as updated passed at least a threshold number of the software tests, and, in response, provide instructions to merge the branch as updated with a production branch of the software product.

First claim

Opening claim text (preview).

What is claimed is: 1. A computing system comprising a memory and a processor, wherein the processor is configured to execute a software application disposed on a computational instance of a remote network management platform, wherein the software application is communicatively connected to (i) a testing server and (ii) a content management system, and wherein the memory stores instructions that when executed by the processor, cause the computing system to: receive instructions to merge a source code update with a first branch of a software product, wherein the first branch corresponds to a predetermined checkpoint within a development cycle of the software product; provide, to the content management system, instructions to update the first branch by merging the source code update into the first branch; select a plurality of software tests to execute on the first branch as updated based on (i) a portion of the first branch modified by the source code update and (ii) the predetermined checkpoint within the development cycle; provide instructions to the testing server to execute the plurality of software tests on the first branch as updated; receive feedback data from the testing server indicating results of the plurality of software tests; determine that the feedback data indicates that the first branch as updated passed at least a threshold number of the plurality of software tests; and in response to determining that the feedback data indicates that the first branch as updated passed at least the threshold number of the plurality of software tests, provide, to the content management system, instructions to merge the first branch as updated with a production branch of the software product such that subsequent branches created from the production branch include the source code update. 2. The computing system of claim 1 , wherein the first branch is a development branch corresponding to a push checkpoint at which the source code update is transmitted from a software development environment provided by the remote network management platform to the content management system, and wherein the selected plurality of software tests comprises unit tests configured to evaluate performance of a code unit of the software product, wherein the code unit includes therein the source code update. 3. The computing system of claim 1 , wherein the first branch is a staging branch corresponding to a staging checkpoint at which a development branch containing the source code update is requested to be merged with the production branch, and wherein the selected plurality of software tests comprises integration tests configured to evaluate performance of (i) code units of the software product that include therein the source code update and (ii) further code units of the software product that invoke the code units. 4. The computing system of claim 1 , wherein the plurality of software tests is a first plurality of software tests, and wherein the software application is further configured to: in response to merging the first branch as updated with the production branch, select a second plurality of software tests to execute on the production branch as merged with the first branch, wherein the second plurality of software tests contains more software tests than the first plurality of software tests; and provide instructions to the testing server to execute the second plurality of software tests on the production branch as merged with the first branch. 5. The computing system of claim 4 , wherein the instructions, when executed by the processor, cause the computing system to: receive additional feedback data from the testing server indicating results of the second plurality of software tests; determine that the additional feedback data indicates that the production branch as merged with the first branch passed at least a second threshold number of the second plurality of software tests; and in response to determining that the additional feedback data indicates that the production branch as merged with the first branch passed at least the second threshold number of the second plurality of software tests, provide instructions to release the production branch as merged with the first branch for manual testing. 6. The computing system of claim 1 , wherein the instructions, when executed by the processor, cause the computing system to: receive, from the testing server, additional feedback data indicating results of a plurality of additional software tests executed on a plurality of additional branches containing additional source code updates generated by a particular developer; and based on the additional feedback data, generate performance metrics indicating a performance of the particular developer in generating the additional source code updates. 7. The computing system of claim 1 , wherein the instructions, when executed by the processor, cause the computing system to: receive an indication of a minimum number of code reviewers by which the source code update is to be reviewed; and provide the instructions to update the first branch by merging the source code update into the first branch in response to at least the minimum number of code reviewers approving the source code update. 8. The computing system of claim 1 , wherein the instructions, when executed by the processor, cause the computing system to select the plurality of software tests to execute on the first branch as updated further based on target performance parameters, wherein the target performance parameters comprise one or more of (i) a maximum execution time of the plurality of software tests, (ii) a target code coverage of the first branch by the plurality of software tests, (iii) an extent of parallelizability of the plurality of software tests, or (iv) an extent of usage of computational resources of the testing server, wherein each checkpoint within the development cycle is associated with different values for the target performance parameters. 9. The computing system of claim 1 , wherein the instructions, when executed by the processor, cause the computing system to provide instructions to the testing server to execute the plurality of software tests on the first branch as updated by: providing, to the content management system, instructions configured to cause the content management system to, in response to merging the source code update into the first branch, transmit, to the testing server, instructions configured to cause the testing server to execute the plurality of software tests on the first branch as updated. 10. The computing system of claim 1 , wherein the testing server is configured to provide a plurality of different computational environments, and wherein the software application is configured to provide instructions to the testing server to execute the plurality of software tests on the first branch as updated by: selecting, based on the predetermined checkpoint within the development cycle, a particular computational environment of the plurality of different computational environments within which to execute the plurality of software tests; and providing instructions to the testing server to execute the plurality of software tests on the first branch within the particular computational environment. 11. The computing system of claim 1 , wherein the instructions, when executed by the processor, cause the computing system to provide the instructions to the testing server to execute the plurality of software tests on the first branch as updated by: determining, based on the portion of the first branch modified by the source code update, a subset of the software product to rebuild to incorporate the source code update into an upda

Assignees

Inventors

Classifications

  • Environments for analysis, debugging or testing of software · CPC title

  • for coverage analysis · CPC title

  • for test execution, e.g. scheduling of test suites · CPC title

  • for performance assessment · CPC title

  • Performance evaluation by tracing or monitoring · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10733087B2 cover?
A computing system may include a software application configured to receive instructions to merge a source code update with a branch of a software product, provide instructions to merge the source code update into the branch, and select software tests to execute on the branch as updated based on a portion of the branch modified by the source code update and a predetermined checkpoint within a d…
Who is the assignee on this patent?
Servicenow Inc
What technology area does this patent fall under?
Primary CPC classification G06F11/3688. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 04 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).