Model-Driven Software Testing for Dynamic Coverage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional linear static software testing is time-consuming, expensive, and limited in its ability to cover all possible input combinations, leading to incomplete quality assurance, with tests typically run at the end of the development cycle and requiring frequent updates, resulting in late delivery and high maintenance costs with potential false positives.

Innovation Solution

A method and apparatus for modular continuous plug-and-play model-driven software testing, where a test processor traverses a state model of the application, randomly selects commands based on criteria, and executes them continuously, generating heat maps of application errors and resuming tests upon device reconnection, allowing for continuous testing and reducing the need for manual test case design.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If linear static test cases are used, then test case design is straightforward, but testing coverage is incomplete and tests take a long time to run

Engineering Contradiction:
Improvetest case designVSAvoidtesting coverage
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent transforms static linear test cases into dynamic model-driven tests that automatically adapt their execution paths based on real-time application state. The test processor dynamically selects which test cases to execute and in what order, allowing the testing system to cover more scenarios without manually designing each path, thus improving coverage while maintaining ease of use.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent introduces a model-driven test processor as an intermediary between the test developer and the actual test execution. This intermediary automatically generates and selects test cases based on a state model, bridging the gap between simple test case design and comprehensive testing coverage by autonomously exploring the application state space.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If comprehensive test case combinations are created, then testing coverage improves, but development costs and complexity increase

Engineering Contradiction:
Improvetesting coverageVSAvoidtest case design
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The test processor serves itself by autonomously generating and selecting test cases from the state model without requiring manual creation of every test case combination. The system self-manages the complexity of exploring all possible application states, providing comprehensive coverage while keeping the test design process simple for developers.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent changes the parameter of test case selection from static pre-definition to dynamic generation based on application state. By parameterizing tests around state transitions rather than fixed sequences, the system achieves comprehensive coverage without manually designing every possible test path, reducing design complexity while maintaining reliability.

Inventive Principle:
Principle #35Parameter changes

3Device complexity

If tests are run at the end of development cycle, then resource allocation is simplified, but time to detect errors increases

Engineering Contradiction:
Improveresource managementVSAvoiderror detection time
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The patent implements continuous testing where the test processor runs tests continuously rather than batching them at the end of the development cycle. Tests execute whenever the application state changes or on demand, enabling immediate error detection while the modular design keeps resource management simple through on-demand test execution.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The system performs preliminary testing actions by continuously running tests throughout development rather than waiting until the end. This allows errors to be detected early when they are easier and cheaper to fix, reducing time loss while the modular test architecture keeps resource management straightforward.

Inventive Principle:
Principle #10Preliminary action

4Reliability

If hardware is dedicated to testing, then test execution is uninterrupted, but hardware availability for other purposes decreases

Engineering Contradiction:
Improvetest execution continuityVSAvoidhardware availability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The test processor implements periodic or on-demand test execution rather than continuous dedicated hardware occupation. Tests run at specific intervals or when triggered by state changes, allowing the hardware to be shared with other purposes between test executions while maintaining reliable test execution when needed.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The system dynamically allocates hardware resources based on testing needs rather than dedicating hardware exclusively to testing. The test processor can pause and resume tests, allowing hardware to be used for other purposes when tests are not actively running, thus maintaining both test reliability and hardware versatility.

Inventive Principle:
Principle #15Dynamics

5Ease of operation

If linear test sequences are used, then test execution is simple to manage, but test maintenance becomes complex when software changes

Engineering Contradiction:
Improvetest execution managementVSAvoidtest case maintenance
Core Design Contradiction:
Ease of operationVSEase of repair

Solution Approach 1:

The patent segments tests into atomic state transitions rather than long linear sequences. Each test case represents a single state transition in the application model, making execution management simple through automated state machine traversal while making maintenance easy since individual transitions can be independently updated when software changes without affecting other tests.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically generates test sequences from the state model rather than using fixed linear sequences. When software changes, the test processor automatically adapts the test paths by re-traversing the updated state model, keeping execution management simple while making maintenance trivial since the tests are derived from the model rather than manually scripted.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9916231B2Modular plug-and-play system for continuous model driven testing
Publication Date: 2018.03.13 MAGINE HOLDING AB
  • US9916231B2 patent drawing
  • US9916231B2 patent drawing
  • US9916231B2 patent drawing

AI summary

A method for testing an application running on an electronic device includes parsing, by a test processor, a state model of the application representing relationships among a plurality nodes, each node representing an application state. The method further includes parsing, by the test processor, a test implementation file including a plurality of commands for manipulating at least one of the application and the electronic device, each of the plurality of commands associated with respective ones of the plurality of nodes, traversing, by the test processor, the state model of the application by selecting for testing an application node in accordance with the node relationships in the state model. The method also includes selecting, by the test processor, one or more of the plurality of commands for testing the application based on at least one criteria, and executing, by the test processor, the one or more selected commands.