Test Coverage Tracking for Phased Software Deployments
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In large-scale computing environments, determining complete test coverage for software updates deployed in a distributed software application is challenging due to the likelihood of test requests being processed by a small subset of compute instances, making it difficult to accurately assess when all tests have been observed, especially as the scale and number of tests grow.
Innovation Solution
A testing system and framework that enables a code deployment service to determine when complete test coverage is achieved by deploying software updates to a test deployment group, where compute instances maintain a test coverage table to track observed tests and send status messages to the code deployment service, ensuring that each test is observed before progressing the deployment to the entire environment.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If software updates are deployed to a small subset of compute instances for testing, then deployment risk is reduced, but test coverage accuracy deteriorates because it becomes difficult to determine when all tests have been observed
Solution Approach 1:
The patent implements a feedback mechanism where compute instances send status messages to the code deployment service reporting which tests they have observed. The service aggregates this feedback from multiple instances to determine when complete test coverage has been achieved, resolving the contradiction by providing accurate measurement despite limited deployment scope
Solution Approach 2:
The code deployment service acts as an intermediary between compute instances and the testing framework. It collects test observation data from instances, tracks coverage status, and determines when deployment can proceed, enabling accurate test coverage measurement without requiring all instances to be tested simultaneously
2Productivity
If software updates are deployed to all compute instances simultaneously, then deployment speed is improved, but the ability to detect and measure test coverage deteriorates because there is no controlled testing phase
Solution Approach 1:
The patent segments the deployment process into distinct phases: a testing phase where updates are deployed to a subset of compute instances, and a full deployment phase where updates are deployed to all instances. This segmentation allows for proper test coverage measurement during the testing phase while maintaining overall deployment efficiency
Solution Approach 2:
The patent performs preliminary testing on a subset of compute instances before full deployment. During this preliminary phase, the system collects test observation data and determines coverage accuracy, ensuring that updates are validated before widespread deployment while maintaining a controlled measurement process
Data Source
AI summary
Techniques are described for measuring test coverage during phased deployments of software application updates. A phased deployment of a software application update generally involves initially deploying the software update to a subset of compute instances running the software application within a computing environment, using a testing application to verify whether the updated software application is operating as expected, and then deploying the update to the remaining compute instance of the computing environment once the tests are passed. A testing system and framework described herein enables a code deployment service to determine when complete or sufficient test coverage is achieved for software updates deployed in a computing environment supporting a distributed software application.


