Automated Functional Test Case Generation via Expression Decision Tables

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for generating functional test cases for software systems are effort-intensive, often requiring formal language specifications or expected results, and are not scalable for industry-size applications, with techniques like Random Test Case Generation and Model-Based Testing facing challenges in covering all interactions and requirements effectively.

Innovation Solution

A processor-implemented method that converts software system requirements into Expression Decision Table (EDT) specifications, constructs automata, generates random input sequences, and uses fuzzing to cover complex time-based requirements, ensuring that functional test cases cover predefined conditions and avoid invalid scenarios, thereby achieving scalability and comprehensive coverage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If Model-Based Testing is implemented with formal language specifications, then test case coverage and systematic approach are improved, but the effort and complexity of requirement specification and state space design increase significantly

Engineering Contradiction:
Improvetest case coverageVSAvoidspecification complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces Expression Decision Tables (EDT) as an intermediary representation between natural language requirements and formal test case generation. The EDT serves as a mediator that captures requirements in a structured tabular format without requiring complex formal language specifications, thereby maintaining test case coverage while reducing specification complexity

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent creates a simplified copy of the requirement specification in the form of EDT tables that capture the essential logic and relationships without requiring full formal language representation. This copying approach allows systematic test generation while avoiding the complexity of complete formal specification

Inventive Principle:
Principle #26Copying

2Productivity

If Random Test Case Generation is used, then the simplicity and speed of test case creation are improved, but the coverage of expected results and reduction of redundant test cases worsen

Engineering Contradiction:
Improvetest case generation speedVSAvoidtest case coverage
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements feedback mechanisms where the system monitors which EDT rows have been covered by generated test cases and uses this information to guide subsequent test case generation. This feedback loop ensures comprehensive coverage of all requirements while maintaining efficient generation speed, preventing both redundancy and gaps in coverage

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent employs dynamic test case generation that adapts based on coverage status. The system dynamically selects which EDT rows to target next based on current coverage, transitioning from static random generation to dynamic guided generation that maintains speed while improving coverage

Inventive Principle:
Principle #15Dynamics

3Reliability

If Model-Based Testing tools are used with constraint solving, then systematic test case generation is improved, but scalability to industry-size applications deteriorates

Engineering Contradiction:
Improvesystematic test generationVSAvoidscalability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent segments the test case generation process into distinct modular components: EDT specification creation, automata construction from EDT, test case generation from automata, and coverage analysis. This segmentation allows each component to be independently optimized and scaled, enabling the systematic approach to handle industry-size applications by processing large requirement sets in manageable segments

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10176085B2Method and system for generating functional test cases for software systems
Publication Date: 2019.01.08 TATA CONSULTANCY SERVICES LTD
  • US10176085B2 patent drawing
  • US10176085B2 patent drawing
  • US10176085B2 patent drawing

AI summary

A method and system is provided for automated generation of the functional test cases for testing a software system. In an embodiment, the invention provides an expressive decision table (EDT), a requirement specification notation designed to reduce translation efforts. It implements a novel scalable row-guided random algorithm with fuzzing (RGRaF) (pronounced R-graph) to generate test cases. The invention also implements two new coverage criteria targeted at requirements and requirement interactions. The invention also provides fuzzing at time boundaries to achieve scalability. According to an embodiment, the invention also provides the feature of generating error in case the generated functional test case corresponds to system property violation of the software system. According to another embodiment, the system can also reject the functional test case if there is an improbable condition of the software system.