Behavior-Driven Development DSL Framework for Web Service Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional Web service testing approaches are inefficient due to their reliance on programming languages like Java, which lead to large codebases, lack of readability, and difficulty in handling complex data elements, and they lack reusability, multi-threading capabilities, and support for data-driven testing, making them cumbersome and resource-intensive.

Innovation Solution

A behavior-driven development domain-specific language (DSL) framework that provides native support for testing Web services, eliminating the need for Java objects and helper code, enabling readable and understandable tests without programming expertise, and allowing for native JSON, XML support, multi-threading, and data-driven testing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional Java programming language is used for Web service testing, then testing functionality can be achieved, but code size becomes large and maintenance difficulty increases

Engineering Contradiction:
Improvetesting functionalityVSAvoidcode size
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent changes the programming language parameter from Java to a domain-specific language (DSL) designed specifically for Web service testing. This language change reduces code verbosity while maintaining testing functionality, directly addressing the contradiction between reliable testing and code size complexity

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent introduces a DSL as an intermediary layer between the tester and the Web service under test. This intermediary language abstracts away the complexity of Java programming while preserving testing capabilities, resolving the contradiction by providing a simplified interface that maintains functional reliability

Inventive Principle:
Principle #24Intermediary (Mediator)

2Extent of automation

If Java programming language is used for Web service testing, then tests can be written, but readability and understandability decrease

Engineering Contradiction:
Improvetest automationVSAvoidreadability
Core Design Contradiction:
Extent of automationVSEase of operation

Solution Approach 1:

The patent changes the language parameter to a DSL with syntax specifically designed for readability in the context of Web service testing. The language uses conventional notation for payloads and HTTP endpoints that is easier to read and understand than Java, while maintaining full automation capabilities

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent segments the testing language into distinct, readable components for different testing aspects (payloads, HTTP endpoints, assertions). This segmentation makes the automated tests more readable and understandable while preserving automation functionality

Inventive Principle:
Principle #1Segmentation

3Productivity

If conventional testing approaches are used, then basic testing can be performed, but handling complex data elements becomes difficult

Engineering Contradiction:
Improvetesting efficiencyVSAvoidcomplex data element handling
Core Design Contradiction:
ProductivityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent introduces DSL syntax as an intermediary that simplifies the representation and manipulation of complex data elements. The language provides native support for JSON, XML, and other data formats, making it easier to detect and measure complex data structures while maintaining testing efficiency

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent changes the data representation parameter by providing native DSL syntax for complex data types. This allows complex data elements to be handled more efficiently through language-level support rather than requiring verbose Java code, resolving the contradiction between productivity and difficulty of handling complex data

Inventive Principle:
Principle #35Parameter changes

4Productivity

If conventional approaches are used, then testing can be performed, but reusability and parallel execution capabilities are lacking

Engineering Contradiction:
Improvetest executionVSAvoidreusability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent makes the DSL framework universal by designing it to support multiple testing scenarios, data formats, and execution modes including parallel execution. This multi-functionality enables tests to be reused across different contexts while maintaining productivity through efficient test execution

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

Data Source

PatentUS10810110B1Methods, systems, and articles of manufacture for testing web services using a behavior-driven development domain specific language framework
Publication Date: 2020.10.20 INTUIT INC
  • US10810110B1 patent drawing
  • US10810110B1 patent drawing
  • US10810110B1 patent drawing

AI summary

Various aspects described herein relate to a method and system for testing software products or services using a behavior-driven development domain specific language (DSL) framework. The framework identifies one or more input payloads for testing a software product or service that comprises a Web service, wherein the software product or service operates on one or more application servers and normalizes data or information, at the test framework, in at least the one or more input payloads into normalized data or information. The framework recursively tests one or more components of the software product or service and generates results of testing the one or more components of the software product or service.