IP Library Granted Patent US 10,824,547
Granted Patent B2
US 10,824,547 · App. 16/126,894 · Granted Nov 3, 2020

Automated certification testing for application deployment

Inventors: Prashant Nanasaheb Parbhane (Santa Clara, CA); Chirag Bagdai (Rajkot, IN); Saraja Panda (Hyderabad, IN); Nagarani Racharla (Hyderabad, IN); Damodar Reddy Palagiri (Hyderabad, IN); Saurabh Khetan (Fremont, CA)
Assignee: ServiceNow, Inc.
G06F11/3688G06F11/3664G06F11/3692
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 10,824,547
App. No.
16/126,894
Granted
Nov 3, 2020
Kind
B2
Abstract

An example system includes a first computational instance configured to provide a version of a computational environment for test execution for a software application and a second computational instance storing representations of a plurality of available certification tests adapted to test software applications executing in a plurality of different versions of the computational environment. The second computational instance is configured to receive a request for certification tests for the software application; determine a subset of certification tests, selected from the plurality of available certification tests, to evaluate the software application within the version of the computational environment provided by the first computational instance; and transmit representations of the subset of certification tests. After reception of the representations, the first computational instance is configured to: execute the subset of certification tests against the software application and, based on outcomes of executing the subset, generate a report of certification test results.

Claims (61)

1. A computing system comprising:

one or more first server devices configured to host a first computational instance of a remote network management platform configured to provide a version of a computational environment for development of and test execution for a software application; and

one or more second server devices configured to host a second computational instance of the remote network management platform storing representations of a plurality of available certification tests adapted to test software applications executing in a plurality of different versions of the computational environment, wherein the second computational instance is configured to:

receive, from the first computational instance, a request for certification tests for the software application for inclusion in an application store, wherein the request includes information about the software application;

determine, based on the information about the software application, a subset of certification tests to evaluate the software application within the version of the computational environment provided by the first computational instance, wherein the subset of certification tests are selected from the plurality of available certification tests;

transmit, to the first computational instance, representations of the subset of certification tests, wherein, after reception of the representations of the subset of certification tests, the first computational instance is configured to: (i) execute the subset of certification tests against the software application and (ii) based on outcomes of executing the subset of certification tests, generate a report of certification test results;

receive, from the first computational instance, the software application and the report of the certification test results, wherein the report of the certification test results indicates that the software application passed the subset of certification tests; and

list the software application in the application store.

2. The computing system of claim 1 , further comprising:

one or more third server devices configured to host a third computational instance of the remote network management platform configured to provide further testing of the software application by way of execution of additional certification tests of the plurality of available certification tests;

wherein the first computational instance is further configured to:

determine that the report of the certification test results indicates that at least a threshold number of the subset of certification tests have passed; and

transmit the software application to the third computational instance.

3. The computing system of claim 2 , wherein the threshold number is a first threshold number, wherein the third computational instance is further configured to:

determine that the software application has passed at least a second threshold number of the additional certification tests; and

based on determining that the software application has passed at least the second threshold number of the additional certification tests, certify the software application for inclusion in an application store of the remote network management platform.

4. The computing system of claim 3 , wherein the second computational instance is configured to provide the application store.

5. The computing system of claim 2 , wherein the third computational instance and the first computational instance each provide an identical version of the computational environment.

6. The computing system of claim 1 , wherein the first computational instance is configured to generate and transmit the request for certification tests for the software application, wherein the request comprises an identification of software plugins active in the version of the computational environment, and wherein the second computational instance is configured to determine the subset of certification tests based on the software plugins active in the version of the computational environment.

7. The computing system of claim 1 , wherein the first computational instance is configured to generate and transmit the request for certification tests for the software application, wherein the request comprises an identification of software plugins utilized by the software application, and wherein the second computational instance is configured to determine the subset of certification tests based on the software plugins utilized by the software application.

8. The computing system of claim 1 , wherein the first computational instance is configured to generate the request for certification tests for the software application by including therein the version of the computational environment provided by the first computational instance.

9. The computing system of claim 1 , wherein the first computational instance is further configured to transmit the report of certification test results to the second computational instance, and wherein the second computational instance is further configured to modify, based on the report of certification test results, the subset of certification tests for evaluating other software applications within the version of the computational environment at a future time.

10. The computing system of claim 1 , wherein the first computational instance is further configured to transmit the report of certification test results to the second computational instance, and wherein the second computational instance is further configured to modify, based on the report of certification test results, one or more certification tests of the plurality of available certification tests.

11. The computing system of claim 1 , wherein the first computational instance is further configured to transmit the report of certification test results to the second computational instance, and wherein the second computational instance is further configured to:

identify, based on the report of certification test results, an error within source code of a first certification test of the subset of certification tests; and

generate an error message identifying the error within the source code of the first certification test.

12. The computing system of claim 11 , wherein the second computational instance is further configured to:

update the subset of certification tests by removing therefrom the first certification test; and

transmit, to the first computational instance, the updated subset of certification test for further testing of the software application.

13. The computing system of claim 1 , wherein the first computational instance is further configured to transmit the report of certification test results to the second computational instance, and wherein the second computational instance is further configured to:

determine, based on a plurality of reports of certification test results received from a plurality of computational instances providing the version of the computational environment, a group of frequently-failed certification tests from the plurality of available certification tests; and

for each respective certification test of the group of frequently-failed certification tests, provide a suggested solution for addressing a cause of failure of the respective certification test.

14. The computing system of claim 1 , wherein the second computational instance is further configured to:

receive a plurality of reports of certification test results from a plurality of computational instances providing the version of the computational environment, wherein each respective report of the plurality of reports comprises execution times of a plurality of certification test; and

determine, based on the execution times of the plurality of certification test contained in each respective report, a further subset of certification tests to evaluate the software application by selecting a group of certification tests planned to execute within the version of the computational environment in under a threshold period of time.

15. A method comprising:

receiving, by a second computational instance of a remote network management platform hosted on one or more second server devices and from a first computational instance of the remote network management platform hosted on one or more first server devices, a request for certification tests for a software application for inclusion in an application store, wherein the request includes information about the software application, wherein the first computational instance is configured to provide a version of a computational environment for development of and test execution for the software application, and wherein the second computational instance stores representations of a plurality of available certification tests adapted to test software applications executing in a plurality of different versions of a computational environment;

determining, based on the information about the software application, by the second computational instance, a subset of certification tests to evaluate the software application within the version of the computational environment provided by the first computational instance, wherein the subset of certification tests are selected from the plurality of available certification tests;

transmitting, from the second computational instance to the first computational instance, representations of the subset of certification tests;

after reception of the representations of the subset of certification tests by the first computational instance, executing, by the first computational instance the subset of certification tests against the software application; and

based on outcomes of executing the subset of certification tests, generating, by the first computational instance, a report of certification test results;

receiving, from the first computational instance, the software application and the report of the certification test results, wherein the report of the certification test results indicates that the software application passed the subset of certification tests; and

listing the software application in the application store.

16. The method of claim 15 , further comprising:

determining, by the first computational instance, that the report of the certification test results indicates that at least a threshold number of the subset of certification tests have passed;

transmitting the software application to a third computational instance of the remote network management platform hosted on one or more third server devices; and

providing, by the third computational instance, further testing of the software application by way of execution of additional certification tests of the plurality of available certification tests.

17. The method of claim 16 , wherein the threshold number is a first threshold number, and wherein the method further comprises:

determining that the software application has passed at least a second threshold number of the additional certification tests; and

based on determining that the software application has passed at least the second threshold number of the additional certification tests, certifying the software application for inclusion in an application store of the remote network management platform.

18. The method of claim 15 , wherein the request comprises an identification of software plugins active in the version of the computational environment, and wherein the subset of certification tests is determined based on the software plugins active in the version of the computational environment.

19. The method of claim 15 , further comprising:

transmitting, by the first computational instance, the report of certification test results to the second computational instance; and

modifying, based on the report of certification test results and by the second computational instance, the subset of certification tests for evaluating other software applications within the version of the computational environment at a future time.

20. An article of manufacture including a non-transitory computer-readable medium, having stored thereon program instructions that, upon execution by a computing system, cause the computing system to perform operations comprising:

receiving, by a second computational instance of the computing system and from a first computational instance of the computing system, a request for certification tests for a software application, wherein the request includes information about the software application, wherein the first computational instance is configured to provide a version of a computational environment for development of and test execution for the software application, and wherein the second computational instance stores representations of a plurality of available certification tests adapted to test software applications executing in a plurality of different versions of a computational environment;

determining, based on the information about the software application, by the second computational instance, a subset of certification tests to evaluate the software application within the version of the computational environment provided by the first computational instance, wherein the subset of certification tests are selected from the plurality of available certification tests;

transmitting, by the second computational instance and to the first computational instance, representations of the subset of certification tests

after reception of the representations of the subset of certification tests by the first computational instance, executing, by the first computational instance, the subset of certification tests against the software application; and based on outcomes of executing the subset of certification tests, generating, by the first computational instance generate a report of certification test results;

receiving, from the first computational instance, the software application and the report of the certification test results, wherein the report of the certification test results indicates that the software application passed the subset of certification tests; and

listing the software application in the application store.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 11, 2018
From: PARBHANE, PRASHANT NANASAHEB; BAGDAI, CHIRAG; PANDA, SARAJA; RACHARLA, NAGARANI; PALAGIRI, DAMODAR REDDY; KHETAN, SAURABH
To: SERVICENOW, INC.
Reel/Frame 046845/0320 →
Continuity (1)
Related Publication 20200081825A1 · Mar 12, 2020