Database Transaction Scope Takeover for Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Testing software applications associated with databases often leaves the database in an undesirable state, making it time-consuming and expensive to restore the initial state, especially after test failures, due to persistent data changes.

Innovation Solution

A computer system executes a test script that takes over transaction scopes with the database, preventing data persistence during testing and rolling back changes after completion, allowing the database to be restored to its initial state without restarting, using either internal or external control logic and application programming interfaces.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data is persisted in the database during testing, then testing can be performed with real database operations, but the database cannot be restored to its initial state without time-consuming cleanup operations

Engineering Contradiction:
Improvetesting reliabilityVSAvoiddatabase restoration time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent extracts the data persistence mechanism from normal database operations during testing. By taking over transaction scopes, the system separates test data operations from the normal database persistence path, allowing tests to run against real database structures while preventing actual data commits. This enables reliable testing without permanent data modifications.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent performs preliminary action by establishing transaction scope takeover before testing begins. The system proactively captures and suspends database transaction scopes at the start of testing, ensuring that any data operations during testing are prevented from persisting. This preliminary setup automatically enables clean database restoration after testing without manual cleanup.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If the database is restarted after each test, then the database can be reset to initial state, but testing time and cost significantly increase

Engineering Contradiction:
Improvedatabase state cleanlinessVSAvoidtesting throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent enables continuity of useful action by maintaining database connection and state throughout testing while preventing actual data persistence. The database remains running and available for subsequent tests without interruption or restart, as the transaction scope takeover mechanism ensures clean state is maintained automatically. This eliminates the need for disruptive database restarts between tests.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The system performs self-service by automatically managing database state through transaction scope capture and release. The testing framework itself handles the complexity of state management and restoration without requiring external intervention or manual database restarts. The mechanism self-regulates to ensure the database is ready for the next test immediately after the current test completes.

Inventive Principle:
Principle #25Self-service

3Reliability

If data changes are undone by rolling back, then database can be restored to initial state, but it is difficult to correctly undo changes especially when failures occur

Engineering Contradiction:
Improvedatabase state restorationVSAvoidtransaction scope management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies beforehand cushioning by capturing transaction scopes before any data modifications occur during testing. This preemptive capture creates a safety buffer that automatically contains all potential data changes, preventing them from affecting the database permanently. If failures occur during testing, the captured transaction scopes provide a clean rollback point without requiring complex undo operations or manual intervention.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

4Loss of time

If transaction scopes are taken over during testing, then data is not persisted in the database, but normal database operations during other times are not affected

Engineering Contradiction:
Improvetesting efficiencyVSAvoidtransaction scope control complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent implements dynamics by making the transaction scope control mechanism adaptive and context-aware. The system dynamically adjusts its behavior based on the operational context - capturing and suspending transaction scopes during testing phases while allowing normal persistence operations during regular application execution. This dynamic control ensures testing efficiency without impacting normal database functionality.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent introduces an intermediary layer between the software application and the database during testing. This intermediary mechanism (transaction scope takeover) acts as a mediator that intercepts database operations during testing, prevents data persistence, and automatically manages the testing process. During normal operation, this intermediary is inactive or bypassed, allowing direct database access without additional complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9152630B1Modified database transaction scopes during software testing
Publication Date: 2015.10.06 INTUIT INC
  • US9152630B1 patent drawing
  • US9152630B1 patent drawing
  • US9152630B1 patent drawing

AI summary

While testing a software application that is associated with a database during a testing technique, a computer system may take over transaction scopes of transactions with the database so that data generated by the software application during the testing and communicated to the database is not persisted in the database (even though this data may be persisted in the database during normal operation). Furthermore, after the testing is completed, the computer system may restore the database to an initial state prior to the testing by rolling back the data which was not persisted.