Genetic Algorithm API Testing Automation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developing new Application Program Interfaces (APIs) requires intensive human effort and resources for testing, as designers must create specific test cases, conduct usability studies, and perform ad-hoc testing to ensure design goals are met, which is time-consuming and resource-intensive, often taking months.

Innovation Solution

Automated testing of APIs is enabled by abstracting API call signatures and processing them using genetic algorithms, where APIs are encoded into genome strings, evaluated using a fitness function, and 'bred' through crossover and mutation to identify bugs and quality improvements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If human designers manually create test cases and perform ad-hoc testing, then testing thoroughness and quality assurance are improved, but time consumption and resource requirements increase significantly

Engineering Contradiction:
Improvetesting thoroughnessVSAvoidtime consumption
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system enables automated self-testing of APIs through genetic algorithms. The testing system generates, executes, and evaluates test cases automatically without continuous human intervention. The genetic algorithm evolves test cases autonomously to identify bugs and quality issues, allowing the system to serve itself in the testing process while maintaining high thoroughness.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces the mechanical human-centered testing process with an automated computational system. Instead of manual test case creation and execution by human designers, the system uses genetic algorithms to automatically generate and evolve test cases, substituting human mechanical effort with algorithmic automation while improving efficiency.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Measurement precision

If human designers conduct extensive manual testing, then API quality issues are identified more accurately, but resource consumption increases

Engineering Contradiction:
Improvebug identification accuracyVSAvoidresource efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The system replaces manual human testing with automated genetic algorithm-based testing. The genetic algorithm systematically explores API behavior through evolved test cases, providing accurate bug identification without the resource consumption of manual testing. The automated system maintains measurement precision while dramatically improving resource efficiency.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The genetic algorithm dynamically changes test case parameters through evolution operations like mutation and crossover. This allows the system to explore different testing scenarios and edge cases automatically, maintaining high bug identification accuracy while using computational resources more efficiently than manual testing processes.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If manual test case creation is performed, then testing coverage is improved, but the complexity of the testing process increases

Engineering Contradiction:
Improvetesting coverageVSAvoidtesting process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The genetic algorithm automatically generates and evolves test cases without requiring human designers to manually create comprehensive test suites. The system self-manages the complexity of achieving full testing coverage by autonomously exploring the API's behavior space through evolutionary computation, maintaining high coverage while reducing process complexity.

Inventive Principle:
Principle #25Self-service

4Productivity

If automated genetic algorithm testing is implemented, then time and resource efficiency are improved, but the complexity of the testing system increases

Engineering Contradiction:
Improvetesting efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces automated genetic algorithm testing to replace manual processes, accepting increased system complexity as a trade-off for dramatic improvements in testing efficiency. The genetic algorithm framework, while computationally complex, automates the entire testing workflow, reducing human effort and time consumption despite the added computational layer.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS9009670B2Automated testing of application program interfaces using genetic algorithms
Publication Date: 2015.04.14 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9009670B2 patent drawing
  • US9009670B2 patent drawing
  • US9009670B2 patent drawing

AI summary

Various embodiments enable automated testing of Application Program Interfaces (APIs) by abstracting API call signatures and processing the abstracted API call signatures utilizing one or more genetic algorithms. Utilizing the inventive approach, test cases are built and then analyzed using a genetic algorithm. This can be done to both identify problems, such as bugs, associated with the APIs, and/or to identify quality improvements.