Mutation Testing Database Functions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems for analyzing test scripts in database function testing lack mechanisms to generate variations of database functions containing specific changes, limiting their applicability and flexibility, and are often database- or vendor-specific, which can lead to incomplete testing and potential errors in production environments.

Innovation Solution

A computer system and method for mutation testing of database functions that automatically generates mutated database functions, deploys them for execution, determines line coverage attributes, and selects tests to validate the accuracy and robustness of test scripts, providing a flexible and adaptable testing environment applicable to multiple databases and test frameworks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If automated testing frameworks are used to execute test scripts against database functions, then testing efficiency is improved, but the ability to detect mutations and ensure complete line coverage is insufficient

Engineering Contradiction:
Improvetesting efficiencyVSAvoidmutation detection capability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary actions by automatically generating mutated versions of database functions before executing test scripts. This allows the testing framework to proactively identify potential defects by comparing test outcomes against known mutations, thereby enhancing mutation detection capability while maintaining testing efficiency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback mechanisms by analyzing test script outcomes against generated mutations and providing detailed reports on line coverage and mutation detection. This feedback loop enables continuous improvement of test script quality and ensures comprehensive coverage without sacrificing testing productivity.

Inventive Principle:
Principle #23Feedback

2Device complexity

If existing test analysis systems are used, then testing process is simplified, but applicability is limited to specific databases and vendors

Engineering Contradiction:
Improvetesting system complexityVSAvoiddatabase and vendor compatibility
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The system achieves universality by designing a testing framework that can automatically adapt to multiple database vendors and types. The mutation generation and analysis mechanisms are vendor-agnostic, allowing the same system to test database functions across different platforms without requiring vendor-specific configurations, thereby enhancing versatility while maintaining system simplicity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Speed

If test scripts are executed without mutation analysis, then execution speed is maintained, but line coverage accuracy cannot be determined

Engineering Contradiction:
Improvetest execution speedVSAvoidline coverage measurement accuracy
Core Design Contradiction:
SpeedVSMeasurement precision

Solution Approach 1:

The system creates copies of the original database functions with introduced mutations, allowing parallel execution of test scripts against both original and mutated versions. This copying approach enables accurate line coverage measurement through comparison without significantly impacting test execution speed, as the mutated versions are generated once and reused across multiple test runs.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11409641B1Mutation testing of database functions
Publication Date: 2022.08.09 FMR CORP
  • US11409641B1 patent drawing
  • US11409641B1 patent drawing
  • US11409641B1 patent drawing

AI summary

Methods and apparatuses are described for mutation testing of database functions. A computing device identifies database functions for testing from at least one database. The computing device generates, for each identified database function, mutated database functions by automatically applying mutations to the identified database function that change aspects of the identified database function. The computing device deploys the mutated database functions to the at least one database. The computing device determines line coverage attributes associated with each mutated database function. The computing device selects tests for execution against each mutated database function based upon the line coverage attributes associated with each mutated database function. The computing device executes the selected tests against each mutated database function using test automation applications to determine an outcome associated with each test. The computing device generates an output file comprising the outcome associated with each test executed against the mutated database functions.