State-Based Software Testing with Dynamic Weighting

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current regression testing methods rely heavily on manual processes and offline alterations to test suites, which are inefficient and lack automation, especially in detecting software bugs that cluster together, leading to incomplete coverage and human-dependent error investigation.

Innovation Solution

A state-based testing method using a state table model that dynamically allocates weightings to actions based on test outcomes, allowing for continuous testing near error locations and random selection over weighted sets to focus on potential bug clusters, thereby enhancing diagnostic data collection and automated detection of multiple bugs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If manual testing processes are used, then ease of operation is maintained, but productivity and automation extent are reduced

Engineering Contradiction:
Improvemanual testing operationVSAvoidtesting efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The testing system performs self-diagnosis and self-adjustment by automatically detecting test failures, analyzing state table deviations, and dynamically reallocating weightings to test actions. This eliminates the need for manual intervention in test case generation and execution optimization, thereby improving productivity while maintaining operational simplicity through automated self-service mechanisms.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system continuously monitors test outcomes and uses feedback to dynamically adjust the weighting of test actions in the state table. When a test failure is detected, the system analyzes which state transitions failed and increases the weighting of related actions for subsequent testing cycles, creating an adaptive automated testing process that improves efficiency without requiring manual reconfiguration.

Inventive Principle:
Principle #23Feedback

2Adaptability or versatility

If offline alterations to test suites are made, then test coverage can be adjusted, but productivity and automation are reduced due to system shutdown requirements

Engineering Contradiction:
Improvetest suite modification capabilityVSAvoidtesting throughput
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The test suite is transformed from a static offline configuration to a dynamic structure that can be automatically adjusted during system operation. The state table weights are dynamically modified based on real-time test outcomes, allowing the testing system to adapt to changing requirements and focus on critical areas without requiring system shutdowns or manual offline reconfiguration.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system automatically modifies its own test strategy by analyzing failure patterns and dynamically reallocating weights to test actions. This self-adjusting capability eliminates the need for manual offline test suite alterations while maintaining the ability to focus testing efforts on critical state transitions, thereby improving productivity without sacrificing adaptability.

Inventive Principle:
Principle #25Self-service

3Measurement precision

If testing stops at errors, then measurement precision of individual failures is improved, but loss of time increases due to repeated restarts and incomplete bug cluster detection

Engineering Contradiction:
Improvefailure detection accuracyVSAvoidtesting cycle duration
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

Instead of stopping testing when an error is detected, the system continuously executes test actions while dynamically adjusting weights based on failure patterns. This continuous testing approach allows the system to maintain measurement precision by analyzing failure contexts while avoiding time loss from repeated restarts, as the state table weights are updated in-place and testing proceeds without interruption.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The system uses feedback from test failures to dynamically adjust the weighting of test actions, enabling it to focus on problematic state transitions without stopping execution. This feedback-driven continuous testing maintains precise failure detection while reducing overall testing time by eliminating unnecessary restarts and efficiently exploring bug clusters through weighted random selection of subsequent test actions.

Inventive Principle:
Principle #23Feedback

4Productivity

If random testing is used, then productivity is improved through faster execution, but measurement precision of test coverage decreases

Engineering Contradiction:
Improvetesting speedVSAvoidtest coverage accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The system changes the parameter of test action selection from uniform random to weighted random based on state table deviations. By adjusting the weighting parameter according to test outcomes and state transition failures, the system maintains high productivity through rapid test execution while improving measurement precision by focusing coverage on critical state transitions that show deviation from expected behavior.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS7752502B2Method and apparatus for testing software
Publication Date: 2010.07.06 X CORP
  • US7752502B2 patent drawing
  • US7752502B2 patent drawing
  • US7752502B2 patent drawing

AI summary

A state table includes a plurality of possible states of a computer system and the corresponding actions which produce transitions between source and target states. A set of test programs is stored, each test program performing an action in the state table. A test selects an action corresponding to the current state of the computer system; executes the test program which performs the selected action; determines the state of the computer system after the test program has executed; and compares the determined state to the state indicated in the state table as the target state to the selected action on the source state. When an error is found, instead of stopping execution, the test operations to be performed are dynamically reconfigured. Weightings are dynamically allocated to actions in the state table to create a weighted set, and selection of the next test is carried out using random selection over the weighted set. Thus, the continued testing is biased over time towards particular transitions and/or states near to the error location. This enables a tester to discover any other bugs in the same area and also to obtain further diagnostic data on the failure.