Automated API Specification Verification via Test Case Generation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Application developers face challenges in accurately testing and ensuring that Web API specifications reflect the actual functionality of APIs, as specifications may become outdated or mismatched with API implementations, leading to inconsistencies and errors.

Innovation Solution

A system and method for determining API specification accuracy by identifying service calls, creating test cases, and executing a test plan to verify compliance with the specification, generating notifications for errors and certifying accuracy upon successful testing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If manual testing methods are used to verify API specifications, then testing accuracy can be maintained, but testing efficiency and productivity are reduced

Engineering Contradiction:
Improvetesting efficiencyVSAvoidspecification verification accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The system enables API specifications to self-verify through automated test case generation and execution. The specification document itself serves as the basis for generating test cases that automatically validate whether the API implementation conforms to the specification, eliminating the need for manual verification while maintaining accuracy.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

Test cases are generated in advance from the specification document before actual API testing occurs. This preliminary generation of test cases based on the specification ensures that verification criteria are established beforehand, enabling efficient automated execution while maintaining verification accuracy.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If automated testing is implemented to improve productivity, then testing speed increases, but the complexity of the testing system increases

Engineering Contradiction:
Improvetesting speedVSAvoidtesting system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system introduces an intermediary component that automatically generates test cases from the specification document. This intermediary layer translates the specification into executable test cases, bridging the gap between specification and implementation without requiring direct complex interactions between all testing components.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The testing system is segmented into distinct functional components: specification parsing, test case generation, test execution, and result analysis. Each component handles a specific aspect of the testing process, reducing overall system complexity by breaking down the monolithic testing function into manageable, independent modules.

Inventive Principle:
Principle #1Segmentation

3Reliability

If comprehensive test cases are created for all service calls to ensure reliability, then the quantity of testing work increases, but the time required for testing increases

Engineering Contradiction:
ImproveAPI specification accuracyVSAvoidtesting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system enables periodic or on-demand execution of generated test cases rather than requiring continuous manual testing. Test cases can be executed automatically at specified intervals or triggered by specific events such as specification updates or API changes, maintaining reliability while reducing time investment.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The system creates standardized test case templates that can be copied and reused across different service calls and API endpoints. Once a test case is generated for one service call, similar test cases can be automatically replicated for other calls with analogous functionality, reducing the overall time required to create comprehensive test coverage.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10409711B2Automatically running tests against WEB APIs based on specifications
Publication Date: 2019.09.10 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10409711B2 patent drawing
  • US10409711B2 patent drawing
  • US10409711B2 patent drawing

AI summary

A method and system of determining whether a specification is an accurate representation of an application program interface (API) is provided. The specification is received electronically over a network. Service calls to be tested are identified based on the specification. A test case is created for each of the identified service calls. A sequence is created for the test cases. A test plan is generated based on the created sequence. The generated test plan is executed. Upon identifying an error in response to the executed test plan, a notification is generated, indicating that the specification is not an accurate representation of the API.