Object Deserializer for Self-Contained Unit Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software applications for subterranean formations require extensive and resource-intensive unit testing due to the complexity of data structures and the need for a self-contained database environment, which is challenging to maintain and replicate for each test run, leading to potential delays and increased costs.

Innovation Solution

An object deserializer tool that converts relational data from a file into data objects in memory, using the software application's entity relationship model to manage data relationships, allowing for self-contained unit testing without relying on an external database, enabling simultaneous testing and reducing the need for constant database maintenance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If unit testing is performed in a self-contained environment without external database, then testing independence and reliability are improved, but data complexity and setup effort increase substantially

Engineering Contradiction:
Improvetesting reliabilityVSAvoiddata structure complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent creates simplified copies of database data structures in the form of JSON files that replicate the essential relationships and constraints of the actual database schema. These copied data structures can be loaded into memory for unit testing without requiring a live database connection, thereby maintaining testing reliability while reducing setup complexity.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent performs preliminary actions by pre-defining data structure relationships and constraints in configuration files before testing begins. The testing framework automatically generates test data and sets up the in-memory data structures based on these predefined schemas, eliminating the need for manual data setup and reducing the perceived complexity for testers.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If extensive unit testing is performed to ensure code quality, then software reliability is improved, but development time and resources increase substantially

Engineering Contradiction:
Improvecode qualityVSAvoidtesting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements self-service through an automated testing framework that automatically generates test cases, executes tests, and produces test reports without requiring extensive manual intervention. The framework self-configures based on the data structure definitions and automatically manages test data generation and cleanup, significantly reducing the time investment required for comprehensive unit testing.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent enables parameter changes by allowing test configurations to be easily modified through configuration files. Testers can adjust data volume, relationship complexity, and test scenario parameters without rewriting test code, enabling rapid iteration and comprehensive testing coverage with minimal time investment.

Inventive Principle:
Principle #35Parameter changes

3Stability of the object's composition

If database remains constant for unit testing, then test consistency is improved, but data volatility and database maintenance requirements increase

Engineering Contradiction:
Improvedata consistencyVSAvoiddatabase maintenance complexity
Core Design Contradiction:
Stability of the object's compositionVSDevice complexity

Solution Approach 1:

The patent extracts the essential data structure definitions and relationships from the database schema and places them in configuration files that can be loaded into memory. This extraction eliminates the need to maintain a constant database state for testing, as the extracted data structures remain stable and reproducible across test runs without requiring database access or maintenance.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10303583B2Object deserializer using object-relational mapping file
Publication Date: 2019.05.28 HALLIBURTON ENERGY SERVICES INC
  • US10303583B2 patent drawing
  • US10303583B2 patent drawing
  • US10303583B2 patent drawing

AI summary

A method and system for performing a unit test in a self-contained environment. The system may include using an object relationship mapping file to generate data objects that can be used for code for a unit test without having to refer to a database to perform a unit test. The data objects may further provide for simultaneous unit tests and a self-contained environment to perform the unit tests to improve the quality and resources required to perform such unit tests. The system may perform the unit tests independent of access to a database.