System and method for software test analysis
US-2024419581-A1 · Dec 19, 2024 · US
US9916233B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-9916233-B1 |
| Application number | US-201514671996-A |
| Country | US |
| Kind code | B1 |
| Filing date | Mar 27, 2015 |
| Priority date | Mar 27, 2015 |
| Publication date | Mar 13, 2018 |
| Grant date | Mar 13, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A system and method for software deployment, where the system and method include, at a deployment service, obtaining a software package and determining that a client device is ready to receive at least a portion of the software package. If the client device is ready, providing at least the portion of the software package to the client device, launching at least the provided portion of the software package as set of instructions executing in a test container, and performing a set of tests on the executing set of instructions in the test container. Based at least in part on results of performing the set of tests, determining whether to cause at least the provided portion of the software package to execute in an active container on the client device.
Opening claim text (preview).
What is claimed is: 1. A computer-implemented method, comprising: under the control of one or more computer systems configured with executable instructions, obtaining a set of computer-executable instructions configured to launch and execute within a software container; determining a subset of the set of computer-executable instructions that is not currently resident on a client device having a first software container, where the first software container is an active container having one or more applications executing in a user space accessible by a user of the client device; determining that the client device is ready to receive the subset of the set of computer-executable instructions in a second software container running in parallel with, and in a separate user space from, the first software container, the first software container and the second software container being operating system-level virtualization environments; providing the subset of the set of computer-executable instructions to the second software container of the client device; and at a time after determining that the client device has sufficient resources for testing the computer-executable instructions in the second software container: causing the computer-executable instructions to execute in the second software container on the client device; causing the client device to perform a set of tests on the executing computer-executable instructions; receiving results of the performed set of tests from the client device; determining, based at least in part on the results, that the testing was successful; causing the second software container to replace the first software container as the active container; and causing the first software container to become an inactive container. 2. The computer-implemented method of claim 1 , wherein the method further includes: retaining the inactive container on the client device for a minimum retention period; and after the minimum retention period has passed, deprovisioning the inactive container. 3. The computer-implemented method of claim 1 , wherein the inactive container is a first inactive container and: the client device has a third software container running in parallel with, and in a separate user space from, the first software container and the second software container; and upon selection by a user of the client device for the third software container to be the active container of the client device: causing the third software container to be the active container; and causing the second software container to be a second inactive container. 4. The computer-implemented method of claim 1 , wherein the inactive container is a first inactive container and: the client device has a third software container running in parallel with, and in a separate user space from, the first software container and the second software container; and upon instruction from a provider of the set of computer-executable instructions to cause the third software container to be the active container of the client device: causing the third software container to be the active container; and causing the second software container to be a second inactive container. 5. The computer-implemented method of claim 1 , wherein the set of computer-executable instructions include instructions configured to execute an operating system different from an operating system executing in the first software container. 6. The computer-implemented method of claim 1 , wherein the method further includes: determining to reactivate the first software container; and based at least in part on the determination: causing the first software container to be the active container; and causing the second software container to be an inactive container. 7. The computer-implemented method of claim 1 , wherein: the user space of the first container is a first portion of memory allocated to a first set of applications executing in the first container; the user space of the second container is a second portion of memory allocated to a second set of applications executing in the second container; the first set of applications are unable to access the second portion of memory; and and the second set of applications are unable to access the first portion of memory. 8. A client device, comprising: one or more processors; and memory including instructions that, as a result of execution by the one or more processors, cause the client device to: receive a notification from a deployment service indicating that a software package is available for the client device; respond to the deployment service that the client device is ready to receive at least a portion of the software package; obtain at least the portion of the software package from the deployment service and launch at least the portion of the software package as a first set of instructions executing in a first software container; perform a set of tests on the first executing set of instructions and provide a first set of results of the performed set of tests to the deployment service; perform the set of tests on a second executing set of instructions, executing in a second software container currently set to be an active container, to yield a second set of results; provide the second set of results to the deployment service; and upon receiving a notification from the deployment service to activate the first software container, the notification based at least in part on a comparison of the first set of results with the second set of results, cause the active container to be an inactive container, and cause the first software container to be an active container. 9. The client device of claim 8 , wherein the instructions further include instructions that cause the client device to determine usage patterns based at least in part on previous usage of the client device by a user and the instructions that cause the client device to perform the set of tests, further include instructions that cause the client device to implement a testing strategy based at least in part on the usage patterns. 10. The client device of claim 8 , wherein the instructions further include instructions that cause the client device to: receive a rollback notification from the deployment service that the software package is to be rolled back to a previous version of the software; and in response to receiving the rollback notification: cause the software container to be an inactive container; and cause the previously active container to be the active container. 11. The client device of claim 8 , wherein the instructions further include instructions that cause the client device to: retain a previously active container on the device for a minimum retention period; and after the minimum retention period has passed, deprovision the previously active container. 12. The client device of claim 8 , wherein the instructions further include instructions that cause the client device to, upon receiving a notification from the deployment service to deprovision the software container, cause the software container to be deprovisioned. 13. The client device of claim 8 , wherein the deployment service communicates to the client device through a deployment agent running under a container encapsulation engine on the client device. 14. The client device of claim 8 , wherein the software container is a first software container, the set of instructions are a first set of instructions, the set of tests are a first set of tests, and the instructions further include instructions that cause the client device to: launch the at least the
for test execution, e.g. scheduling of test suites · CPC title
Updates (security arrangements therefor G06F21/57) · CPC title
Software maintenance or management · CPC title
for test results analysis · CPC title
Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.