SQL Testcase Generation via Knowledge Map Evolution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for generating SQL testcases for verifying database functionalities are inefficient, as they often require manual design, lack comprehensive test coverage, and fail to simulate real SQL query usage, leading to costly and time-consuming processes with potential software defects and incomplete test data coverage.

Innovation Solution

A computer-implemented method that generates functional verification testcases by evolving sample SQL query seeds based on a knowledge map built from real SQL query workloads, injecting a new feature into similar real SQL queries, and running them through multiple runtime access paths in a virtual test environment for cross-validation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual design methods are used for generating SQL testcases, then testcases can be created with human expertise, but the process becomes costly and time-consuming

Engineering Contradiction:
Improvetestcase validityVSAvoidtestcase generation time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by building a knowledge map from real SQL query workloads before testcase generation. This knowledge map captures patterns, schemas, and query characteristics that are reused during automated testcase generation, eliminating the need for repeated manual analysis and reducing generation time while maintaining validity

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system copies real SQL query patterns from the knowledge map to generate synthetic testcases. By replicating the structure and characteristics of actual queries used in production environments, the system generates valid testcases automatically without requiring manual design for each testcase

Inventive Principle:
Principle #26Copying

2Productivity

If automated testcase generation is implemented, then generation speed increases, but test coverage completeness decreases

Engineering Contradiction:
Improvetestcase generation speedVSAvoidtest coverage completeness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system uses feedback from real SQL query workloads to continuously improve testcase generation. The knowledge map is built from actual query patterns, and the generation process incorporates feedback loops that refine query evolution based on coverage analysis, ensuring comprehensive test coverage while maintaining high generation speed

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The testcase generation process is dynamic and adaptive. The system evolves query seeds through multiple generations, adjusting parameters and patterns based on the knowledge map and coverage requirements. This dynamic approach allows the system to explore diverse query scenarios automatically, achieving comprehensive coverage without sacrificing speed

Inventive Principle:
Principle #15Dynamics

3Ease of manufacture

If simple query seeds are used for testcase generation, then generation process is simplified, but test coverage of complex scenarios is insufficient

Engineering Contradiction:
Improvetestcase generation simplicityVSAvoidquery scenario coverage
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The system performs preliminary evolution of simple query seeds using the knowledge map before using them for testcase generation. This pre-evolution process enriches the seeds with complex patterns and scenarios from real workloads, maintaining generation simplicity while achieving comprehensive scenario coverage

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system adds dimensional complexity to query seeds by incorporating multiple evolution stages and diverse pattern transformations. Instead of using only simple seeds, the system evolves them through multiple dimensions (syntax variations, schema transformations, query pattern modifications) to cover complex scenarios while keeping the base process simple

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

4Reliability

If real SQL query workloads are analyzed to build knowledge map, then testcase realism improves, but data processing complexity increases

Engineering Contradiction:
Improvetestcase realismVSAvoidknowledge map processing complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system extracts only the essential patterns and characteristics from real SQL query workloads to build the knowledge map. By selecting and storing only the critical elements (query schemas, access patterns, syntax structures) needed for testcase generation, the system maintains high testcase realism while reducing processing complexity to manageable levels

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS11341028B2Structured query language runtime access path generation for deep test in a database
Publication Date: 2022.05.24 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11341028B2 patent drawing
  • US11341028B2 patent drawing
  • US11341028B2 patent drawing

AI summary

Functional verification of a new database feature is provided. A set of SQL query seeds are evolved using information contained in a knowledge map that was generated based on a real SQL query workload of an entity corresponding to a database. Real SQL queries are identified in the database that are similar to the evolved set of sample SQL query seeds. A new feature to be implemented in the database is injected into the real SQL queries that are similar to the evolved set of sample SQL query seeds. Multiple runtime access paths are generated for each of the real SQL queries injected with the new feature for output cross validation. Each of the real SQL queries injected with the new feature is run in a test environment using each of the multiple runtime access paths corresponding to a real SQL query injected with the new feature for functional verification.