Containerized Software Acceptance Testing for Live Telecom Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Testing production software in live telecommunication systems is risky and often not performed due to the potential for service outages, and existing methods lack efficient and secure ways to conduct acceptance and production testing without disrupting live traffic.
Innovation Solution
A modular testing framework with a job manager, dispatch application, and secure command storage and authorization system that allows for selective execution of non-disruptive test cases in production environments, capturing test results, and providing secure, authenticated execution of test instructions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If software testing is performed in production environments with live telecommunication traffic, then software quality and reliability can be validated in real-world conditions, but service outages and disruptions may occur
Solution Approach 1:
The testing framework segments test execution into isolated containers that run alongside production software. Each test case is encapsulated in its own container with dedicated resources, preventing test failures from propagating to the production system. This segmentation allows parallel testing of multiple software components without creating cascading failures that could cause service outages.
Solution Approach 2:
A test orchestrator application acts as an intermediary between test case developers and the production environment. The orchestrator manages test container lifecycles, coordinates resource allocation, and mediates communication between tests and production software through controlled interfaces. This intermediary layer isolates potential harmful effects while enabling comprehensive production testing.
2Reliability
If comprehensive testing is conducted in production systems, then more thorough software validation is achieved, but system complexity and testing infrastructure requirements increase
Solution Approach 1:
The testing framework uses a universal containerization approach that can test various software components (network functions, virtualized services, communication protocols) within a single unified platform. The same container infrastructure supports different test scenarios, resource allocation strategies, and validation methodologies, eliminating the need for separate testing systems for each component type.
Solution Approach 2:
The framework creates virtual copies of production software components within isolated containers for testing purposes. These containerized copies replicate the production environment's behavior and interfaces while running in a controlled, disposable environment. This copying approach enables thorough validation without requiring modifications to the actual production systems.
3Reliability
If test execution is authorized and managed centrally, then secure and authenticated test running is achieved, but the authorization system complexity increases
Solution Approach 1:
The framework implements self-service authentication where test case developers register their test cases with metadata describing required resources and validation criteria. The test orchestrator automatically authenticates test cases against predefined policies and allocates resources without requiring manual authorization for each test execution. This automated self-service approach maintains security while reducing operational complexity.
Solution Approach 2:
The authorization system uses parameter-based access control where test cases declare required resources (CPU, memory, network bandwidth) as parameters. The orchestrator changes resource allocation parameters dynamically based on test case requirements and available capacity. This parameter-driven authorization simplifies the system by replacing complex permission matrices with straightforward resource declaration and allocation mechanisms.
Data Source
AI summary
A method of testing software executing on computer systems. The method comprises executing a plurality of test instructions associated with a test job by a testing application on the computer system on which the software executes; capturing information about a container associated with the software by the testing application, wherein the information comprises a memory allocation associated with the container, a memory consumed by the container, a central processing unit (CPU) utilization allocation, a CPU allocation consumed, an internet protocol (IP) addresses assigned to the container; determining a score by a test validation application based on the information about the container, on test results, and on a scoring policy defined by a test case suite, wherein the scoring policy defines scoring based in part on a type of the container; based on the scores, and taking action by the action engine in the computer system on which the software executes.


