Application Experiment System for Controlled Software Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software application developers face challenges in reliably testing and evaluating changes and new features due to the increasing complexity of software applications, making it difficult to determine the impact of updates on users before deploying them to all users.

Innovation Solution

An application experiment system that allows developers to define and run experiments by selecting a test area, defining treatments, and allocating users to receive different application settings, with the ability to collect and analyze statistical data on user experiences, enabling controlled A/B testing and dynamic adjustment of user distributions during experiments.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If software updates are deployed to all users immediately, then productivity is improved through faster feature delivery, but reliability deteriorates due to inability to test changes thoroughly

Engineering Contradiction:
Improvefeature delivery speedVSAvoidupdate reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The user base is segmented into different groups (treatment groups) that receive different versions of the software update. This allows simultaneous deployment to multiple segments while maintaining a control group, enabling both fast delivery and reliable testing through comparative analysis of segment performance

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by automatically assigning users to treatment groups and deploying updates to specific segments before full deployment. This preliminary staged deployment allows validation of changes across different user segments prior to universal rollout, ensuring reliability while maintaining productivity

Inventive Principle:
Principle #10Preliminary action

2Reliability

If software updates are tested extensively before deployment, then reliability is improved, but productivity deteriorates due to extended testing time

Engineering Contradiction:
Improveupdate reliabilityVSAvoidfeature delivery speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

Testing is segmented across multiple user groups simultaneously rather than sequentially. By dividing the user base into treatment groups that receive different updates, the system achieves comprehensive testing coverage across diverse user segments in parallel, reducing overall testing time while maintaining reliability through comparative analysis

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system applies partial action by deploying updates to only a portion of users (treatment groups) rather than all users. This partial deployment enables sufficient testing coverage to assess update effectiveness and reliability without requiring exhaustive testing of every user, thus balancing reliability improvement with productivity maintenance

Inventive Principle:
Principle #16Partial or excessive action

3Measurement precision

If A/B testing is implemented with multiple treatment groups, then measurement precision is improved for evaluating updates, but device complexity increases due to additional experimental controls

Engineering Contradiction:
Improveupdate evaluation precisionVSAvoidexperiment system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The experiment system is designed with universal, multi-functional components that can handle multiple treatment groups and various update types through standardized processes. The treatment assignment mechanism, data collection framework, and analysis tools serve multiple functions across different experiment configurations, reducing the effective complexity despite supporting precise multi-group comparisons

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system uses copying by creating replicated treatment groups that mirror the control group structure. Each treatment group is a copy of the basic experimental unit with consistent measurement and tracking mechanisms, allowing precise comparison across groups while using standardized templates that reduce overall system complexity through reusability

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10275345B2Application experiment system
Publication Date: 2019.04.30 AMAZON TECH INC
  • US10275345B2 patent drawing
  • US10275345B2 patent drawing
  • US10275345B2 patent drawing

AI summary

Examples of an application experiment system are provided that can manage and run experiments for software applications. In one embodiment, the application experiment system receives definitions for experiments and treatments for an application, runs experiments in response to requests from users of the system, automatically allocates treatments to users of the application, logs experiment data and treatment allocation data, and/or reports experiment results data. The application experiment system enables application developers to test changes or features in a precise, controlled environment on a limited user base before deciding whether to deploy changes or features to all users of an application.