Automated Functional Test Case Generation via Expression Decision Tables
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
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
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
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
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
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
Data Source
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.


