IP Library Granted Patent US 12,287,724
Granted Patent B2
US 12,287,724 · App. 18/040,117 · Granted Apr 29, 2025

Methods for live testing of services in a cloud computing environment

Inventors: Oussama Jebbar (Montreal, CA); Maria Toeroe (Montreal, CA); Ferhat Khendek (Montreal, CA)
Assignee: Telefonaktiebolaget LM Ericsson (publ)
G06F11/3676G06F11/3612G06F11/3664G06F11/3684G06F11/3688G06F3/065G06F16/128
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,287,724
App. No.
18/040,117
Granted
Apr 29, 2025
Kind
B2
Abstract

A set of test methods for performing a live test of service in a production environment, where the service is provided by a set of configured instances in the production environment and each configured instance is composed of a set of components. The methods including a method that includes instantiating components under test from the set of components to setup paths that are to be taken by test traffic, instantiating test configuration components for the service, executing a test case on a created path, generating a snapshot of a first serving component from the set of components, replacing a tested component under test with a second serving component cloned from the snapshot, relocating the service to the second serving component, replacing the serving component of the snapshot with a new component under test to create a new path to be tested, and determining whether all paths have been tested.

Claims (47)

1. A method to live test a service in a production environment, where the service is provided by a set of configured instances in the production environment, and each configured instance is composed of a set of components, the method comprising:

instantiating components under test from the set of components to setup paths that are to be taken by test traffic;

instantiating test configuration components from the set of components for the service;

executing a test case on a created path;

generating a snapshot of a first serving component from the set of components;

replacing a tested component under test from the set of components with a second serving component from the set of components cloned from the snapshot;

relocating the service to the second serving component;

replacing the first serving component of the snapshot with a new component under test to create a new path to be tested;

determining whether all paths have been tested; and

reducing a number of paths to be tested using boundary environments and coverage criteria, wherein reducing the number of paths to be tested using the boundary environments and coverage criteria, wherein the coverage criteria include any one or more of a first coverage criteria is testing on all paths that chain mixtures of the set of configured instances involved in the test case, a second coverage criteria is testing pairwise boundary environment mixtures where a set of paths with each pair of identified mixtures being in at least one of the set of paths, a third coverage criteria is testing all boundary environment mixtures, a fourth coverage criteria is testing all boundary environment paths for each path that chains boundary environments of the set of configured instances in the test case, or a fifth coverage criteria is testing pairwise boundary environments where possible boundary environments are identified and a set of paths generated where each pair of identified boundary environments are in at least one path, wherein the first coverage criteria to the fifth coverage criteria are ordered by their error detection power.

2. The method of claim 1 , further comprising:

determining paths for testing the service by examination of production environment configuration information.

3. The method of claim 1 , wherein reducing a number of paths to be tested using boundary environments and coverage criteria, further comprising:

determining a set of test methods to be applied with coverage criteria;

calculating the boundary environments;

applying the boundary environments and coverage criteria to the set of test methods to reduce the number of paths to be tested; and

executing the set of test methods.

4. The method of claim 1 , wherein the instantiating includes instantiating k components under test for a configured instance from the set of configured instances being tested on k available nodes where k is any number greater than zero, the method further comprising:

testing all paths which can be executed and which involve the k instantiated components under test until all path have been tested.

5. The method of claim 4 , wherein the generating includes generating a snapshot for each of the k serving components,

wherein the replacing includes replacing the k instantiated components under test with k serving components cloned from the snapshot,

wherein the relocating includes relocating production traffic to k new serving components, and the method further comprising:

executing the test cases for components on the remaining nodes using a single step test method.

6. A machine-readable storage medium having instructions stored therein which, when executed by a processor, cause the processor to perform a set of operations to live test a service in a production environment, where the service is provided by a set of configured instances in the production environment, and each configured instance is composed of a set of components, the set of operations comprising:

instantiating components under test from the set of components to setup paths that are to be taken by test traffic;

instantiating test configuration components from the set of components for the service;

executing a test case on a created path;

generating a snapshot of a first serving component from the set of components;

replacing a tested component under test from the set of components with a second serving component from the set of components cloned from the snapshot;

relocating the service to the second serving component;

replacing the first serving component of the snapshot with a new component under test to create a new path to be tested;

determining whether all paths have been tested; and

reducing a number of paths to be tested using boundary environments and coverage criteria, wherein reducing the number of paths to be tested using the boundary environments and coverage criteria, wherein the coverage criteria include any one or more of a first coverage criteria is testing on all paths that chain mixtures of the set of configured instances involved in the test case, a second coverage criteria is testing pairwise boundary environment mixtures where a set of paths with each pair of identified mixtures being in at least one of the set of paths, a third coverage criteria is testing all boundary environment mixtures, a fourth coverage criteria is testing all boundary environment paths for each path that chains boundary environments of the set of configured instances in the test case, or a fifth coverage criteria is testing pairwise boundary environments where possible boundary environments are identified and a set of paths generated where each pair of identified boundary environments are in at least one path, wherein the first coverage criteria to the fifth coverage criteria are ordered by their error detection power.

7. The machine-readable storage medium of claim 6 , wherein the set of operations further comprising:

determining paths for testing the service by examination of production environment configuration information.

8. The machine-readable storage medium of claim 6 , wherein reducing a number of paths to be tested using boundary environments and coverage criteria, further comprising:

determining a set of test methods to be applied with coverage criteria;

calculating the boundary environments;

applying the boundary environments and coverage criteria to the set of test methods to reduce the number of paths to be tested; and

executing the set of test methods.

9. The machine-readable storage medium of claim 6 , wherein the instantiating includes instantiating k components under test for a configured instance from the set of configured instances being tested on k available nodes where k is any number greater than zero, the set of operations further comprising:

testing all paths which can be executed and which involve the k instantiated components under test until all path have been tested.

10. The machine-readable storage medium of claim 9 , wherein the

generating includes generating a snapshot for each of the k serving components,

wherein the replacing includes replacing the k instantiated components under test with k serving components cloned from the snapshot,

wherein the relocating includes relocating production traffic to k new serving components, and the set of operations further comprising:

executing the test cases for components on the remaining nodes using a single step test method.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2023
From: TOEROE, MARIA; JEBBAR, OUSSAMA; KHENDEK, FERHAT
To: TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
Reel/Frame 062774/0533 →
Continuity (2)
Provisional Application 63063685 · Aug 10, 2020
Related Publication 20230325303A1 · Oct 12, 2023
References Cited (36)
US 20140282433A1 · Eilam · 2014 [cited by examiner]
US 20150127618A1 · Alberti · 2015 [cited by examiner]
US 20180314514A1 · Garg et al. · 2018 [cited by applicant]
US 20210103554A1 · Alluboyina · 2021 [cited by examiner]
WO 2019018720A1 · 2019 [cited by applicant]
Huang et al, CN 110851302, (translation) Feb. 28, 2020, 9 pgs <CN_110851302.pdf>. [cited by examiner]
“Google Cloud Status Dashboard,” Feb. 3, 2018, 3 pages, downloaded from https://status.cloud.google.com/incident/appengine/16002, last accessed Jun. 18, 2020. [cited by applicant]
“Google Cloud Status Dashboard,” Jan. 8, 2020, 4 pages, downloaded from https://status.cloud.google.com/incident/appengine/19001, last accessed Jun. 18, 2020. [cited by applicant]
“Google Cloud Status Dashboard,” Jul. 19, 2019, 4 pages, downloaded from https://status.cloud.google.com/incident/cloud-networking/18012, last accessed Jun. 18, 2020. [cited by applicant]
“Google Cloud Status,” Jun. 5, 2015, 2 pages, downloaded from https://status.cloud.google.com/incident/compute/15046, last accessed Jun. 18, 2020. [cited by applicant]
“Google Could Status Dashboard,” Feb. 3, 2018, 3 pages, downloaded from https://status.cloud.google.com/incident/compute/16012, last accessed Jun. 18, 2020. [cited by applicant]
“Linux containers,” 2020, 3 pages, downloaded from https://www.linuxcontainers.org, last accessed Jun. 18, 2020. [cited by applicant]
“RCA—Multiple Services—Downstream impact from Azure Front Door,” Nov. 20, 2019, 1 page, downloaded from https://status.azure.com/en-us/status/history/, last accessed Jun. 18, 2020. [cited by applicant]
Alberto González Sánchez, “Cost Optimizations in Runtime Testing and Diagnosis,” 2011, 176 pages, Phd Thesis, Delft University of Technology. [cited by applicant]
Blue-green, 2019, 3 pages, downloaded from https://docs.cloudfoundry.org/devguide/deploy-apps/blue-green.html, last accessed Jun. 18, 2020. [cited by applicant]
Bo Yang et al., “Survey and Evaluation of Blue-Green Deployment Techniques in Cloud Native Environments”, 2020, pp. 69-81, Service-Oriented Computing—ICSOC 2019 Workshops, Lecture Notes in Computer Science (LNCS) 12019. [cited by applicant]
Chunqiang Tang et al., “Holistic Configuration Management at Facebook,” 2015, pp. 1-16, In Proceedings of the 25th Symposium on Operating Systems Principles, SOSP'15, ACM. [cited by applicant]
Daniel Brenner et al., “Reducing Verification Effort in Component-Based Software Engineering through Built-In Testing,” 2007, pp. 151-162, Inf. Syst. Front. 9(2-3). [cited by applicant]
Dima Suliman et al., “The Morabit Approach to Runtime Component Testing,” 2006, pp. 171-176, Proceedings of the 30th Annual International Computer Software and Applications Conference (COMPSAC'06), vol. 02, IEEE. [cited by applicant]
Docker, 2020, 3 pages, downloaded from https://www.docker.com, last accessed Jun. 18, 2020. [cited by applicant]
Dominik Ernst et al., “Rapid Canary Assessment Through Proxying and Two-Stage Load Balancing”, Mar. 25, 2019, pp. 116-122, 2019 IEEE International Conference on Software Architecture Companion (ICSA-C), IEEE. [cited by applicant]
Dror G. Feitelson et al., “Development and Deployment at Facebook,” 2013, 14 pages, IEEE Internet Computing. [cited by applicant]
Ellard T. Roush, “Cluster Rolling Upgrade using Multiple Version Support,” 2001, pp. 1-8, Proceedings of the 2001 IEEE International Conference on Cluster Computing (CLUSTER'01). [cited by applicant]
ETSI ES 201 873-5 V4.8.1., “Methods for Testing and Specification (MTS); The Testing and Test Control Notation version 3; Part 5: TTCN-3 Runtime Interface (TRI),” May 2017, 93 pages, European Telecommunications Standard… [cited by applicant]
International Preliminary Report on Patentability, PCT App. No. PCT/IB2021/057344, Feb. 23, 2023, 15 pages. [cited by applicant]
International Search Report and Written Opinion, PCT App. No. PCT/IB2021/057344, Feb. 7, 2022, 22 pages. [cited by applicant]
Invitation to Pay Additional Fees, PCT App. No. PCT/IB2021/057344, Dec. 14, 2021, 14 pages. [cited by applicant]
Kihwal Lee et al., “A Dependable Online Testing and Upgrade Architecture for Real-Time Embedded Systems,” 2005, 6 pages, Proceedings of the 11th IEEE International Conference on Embedded and Real-Time Computing Systems … [cited by applicant]
Kubernetes, 2020, 4 pages, downloaded from https://www.kubernetes.io, last accessed Jun. 18, 2020. [cited by applicant]
Mariam Lahami et al., “Safe and efficient runtime testing framework applied in dynamic and distributed systems,” 2016, pp. 1-28, Science of Computer Programming 122. [cited by applicant]
Openstack, 2020, 6 pages, downloaded from https://www.openstack.org, last accessed Jun. 18, 2020. [cited by applicant]
Oussama Jebbar et al., “Architecture for the Automation of Live Testing of Cloud Systems,” 2020, pp. 142-151, 2020 IEEE 20th International Conference on Software Quality, Reliability, and Security (QRS), IEEE. [cited by applicant]
Oussama Jebbar et al., “Regression Test Suite Reduction for Cloud Systems”, Aug. 4, 2020, pp. 477-486, 2020 IEEE International Conference on Software Testing, Verification and Validation Workshops (ICSTW), IEEE. [cited by applicant]
Rogério De Lemos et al., “Software Engineering for Self-Adaptive Systems: A Second Research Roadmap,” 2013, 33 pages, In: Software Engineering for Self-Adaptive Systems II, Lecture Notes in Computer Science, vol. 7475, … [cited by applicant]
Tirthankar Das et al., “Quantum Leap Cluster Upgrade,” 2009, 4 pages, Proceedings of the 2nd Bangalore Annual Compute Conference, ACM. [cited by applicant]
Xue Ouyang et al., “Delayed Switch: Cloud Service Upgrade with Low Availability and Capacity Loss,” 2014, pp. 1158-1161, IEEE 5th International Conference on Software Engineering and Service Science. [cited by applicant]
Cited By (1)
US 12,580,840