Model-Based Testing Framework for Dynamic Test Adaptation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional hand-crafted testing approaches are inefficient, requiring extensive resources for maintenance, have low coverage, are rigid, and fail to scale with increasing complexity, leading to diminishing ability to find issues before they reach customers.

Innovation Solution

A model-based testing framework that allows testing requirements to be described in the code without mixing state machine code, enabling modular and dynamically controllable design, with the ability to author models in the same language as test code and alter them at runtime.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If hand-crafted tests are used to cover every scenario, then test coverage is attempted, but the amount of code required increases significantly

Engineering Contradiction:
Improvetest coverageVSAvoidcode quantity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent uses model-based testing where a formal model of the system under test is created separately from the test code. This model serves as a reusable template that automatically generates test cases, eliminating the need to manually write and maintain separate test code for each scenario. The model captures the system's behavior patterns once, and these patterns are then copied and applied across multiple test contexts.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent replaces manual, mechanical test creation with automated model-driven test generation. Instead of manually crafting each test scenario (mechanical process), the system automatically generates tests from the formal model using algorithms that explore the model's state space and transitions, substituting human effort with automated computational processes.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Reliability

If hand-crafted tests are created to cover all scenarios, then comprehensive testing is achieved, but maintenance costs increase significantly

Engineering Contradiction:
Improvetest coverageVSAvoidmaintenance cost
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

When the system model changes, the automated test generation process copies the updated model patterns to regenerate all affected test cases automatically. This eliminates the need for manual updates to each individual test, as the model serves as the single source of truth that is replicated across the entire test suite.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The model-based testing system is self-updating: when the formal model is modified to reflect system changes, the test generation engine automatically regenerates the test cases without human intervention. The system serves itself by detecting model changes and autonomously updating the associated tests, eliminating manual maintenance effort.

Inventive Principle:
Principle #25Self-service

3Reliability

If hand-crafted tests are designed to be comprehensive, then bug detection capability is improved, but the tests become rigid and difficult to adapt to changes

Engineering Contradiction:
Improvebug detection capabilityVSAvoidadaptability to changes
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic test adaptation through the formal model, which can be modified to reflect system changes. When the system evolves, the model is updated accordingly, and this dynamic change automatically propagates to all derived test cases. The testing approach transitions from static, fixed test scripts to dynamic, adaptable model-driven tests that evolve with the system.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The formal model is created in advance to capture the system's expected behavior patterns. This preliminary model serves as a blueprint that guides automatic test generation, ensuring that tests are designed to detect bugs while remaining adaptable. The model is established beforehand and can be refined as the system evolves, providing a foundation for continuous test adaptation.

Inventive Principle:
Principle #10Preliminary action

4Reliability

If hand-crafted tests are written to cover all scenarios, then thorough testing is achieved, but the tests do not scale well with increasing complexity

Engineering Contradiction:
Improvetest thoroughnessVSAvoidscaling capability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The formal model captures system behavior patterns once in a compact representation. This model is then automatically copied and instantiated to generate a comprehensive suite of test cases that scale with system complexity. As the system grows, the same model-driven approach automatically generates additional tests without requiring proportional increases in manual testing effort.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent replaces manual test creation mechanics with automated model-driven generation. This substitution enables scaling because the automated engine can process complex models and generate extensive test suites without human intervention. The system scales productivity by using computational algorithms to explore the model's state space and generate tests that would be infeasible to create manually.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS7813911B2Model based testing language and framework
Publication Date: 2010.10.12 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7813911B2 patent drawing
  • US7813911B2 patent drawing
  • US7813911B2 patent drawing

AI summary

A model based testing framework is provided that can be incorporated into and used to supplement existing testing approaches. Via annotation of custom attributes and requirements, the framework provides the ability to author models in the same language as code (e.g., test code) that interacts with the model. Optionally, the model-based testing techniques are accessible and changeable at run-time so that tests and models that are executing can be dynamically altered. Optionally, weights (and other techniques) may be exerted on one or more portions of the model to influence the execution of the tests. The ability to execute the model-based testing techniques on some portions of test code, while running hand-crafted or custom test code on other portions, is also provided.