Method and system for generating functional test cases for software systems
First Claim
1. A method for generating functional test cases for testing a software system, the method comprising a processor implemented steps of:
- providing expressive decision table (EDT) specifications, wherein the EDT specifications specify requirements of the software system;
constructing automata using an automata builder (102), wherein the automata correspond to each of a plurality of cells in a plurality of rows present in the EDT specifications;
generating an input sequence by selecting a random sequence of rows from the EDT specifications using an input sequence generation module (104), wherein the input sequence generation further involves giving priority to unmatched rows out of the plurality of rows of the EDT specifications;
passing the input sequence to an expected output generation module (106), wherein the expected output generation module (106) executes each of the automaton out of the automata, corresponding to each of the cells of the EDT and determines the rows out of the plurality of rows that matches the input sequence to generate an expected output sequence; and
providing the expected output sequence to a final output generation module (110) to generate the functional test cases if a predefined set of conditions are satisfied, wherein the predefined set of conditions comprises,at least one of a row or a row-interaction is covered by the functional test cases and the functional test cases do not involve an invalid test scenario.
1 Assignment
0 Petitions
Accused Products
Abstract
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.
14 Citations
12 Claims
-
1. A method for generating functional test cases for testing a software system, the method comprising a processor implemented steps of:
-
providing expressive decision table (EDT) specifications, wherein the EDT specifications specify requirements of the software system; constructing automata using an automata builder (102), wherein the automata correspond to each of a plurality of cells in a plurality of rows present in the EDT specifications; generating an input sequence by selecting a random sequence of rows from the EDT specifications using an input sequence generation module (104), wherein the input sequence generation further involves giving priority to unmatched rows out of the plurality of rows of the EDT specifications; passing the input sequence to an expected output generation module (106), wherein the expected output generation module (106) executes each of the automaton out of the automata, corresponding to each of the cells of the EDT and determines the rows out of the plurality of rows that matches the input sequence to generate an expected output sequence; and providing the expected output sequence to a final output generation module (110) to generate the functional test cases if a predefined set of conditions are satisfied, wherein the predefined set of conditions comprises, at least one of a row or a row-interaction is covered by the functional test cases and the functional test cases do not involve an invalid test scenario. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system for generating functional test cases for testing a software system, the system comprising a processor and:
-
an automata builder (102) constructing automata, the automata correspond to each of the cells in a plurality of rows present in EDT specifications, wherein the EDT specifications are specifying the requirements of the system; an input sequence generation module (104) generating an input sequence by selecting a random sequence of rows from the EDT specifications, wherein the input sequence generation further involves giving priority to unmatched rows out of the plurality of rows of the EDT specifications; an expected output generation module (106) receiving the input sequence from the input sequence generation module, wherein the expected output generation module executes each of the automaton out of the automata, corresponding to each of the cells of the EDT and determines the rows that match the input sequence to generate an output sequence; a final output generation module (110) configured to receive the output sequence and generate the functional test cases if a predefined set of conditions are satisfied, wherein the predefined set of conditions comprises; at least one of a row or a row-interaction is covered by the functional test cases and the functional test cases do not involve an invalid test scenario. - View Dependent Claims (10, 11)
-
-
12. A non-transitory computer-readable medium having embodied thereon a computer program for generating functional test cases for testing a software system, the method comprising:
-
providing expressive decision table (EDT) specifications, wherein the EDT specifications specify requirements of the software system; constructing automata using an automata builder (102), wherein the automata correspond to each of a plurality of cells in a plurality of rows present in the EDT specifications; generating an input sequence by selecting a random sequence of rows from the EDT specifications using an input sequence generation module (104), wherein the input sequence generation further involves giving priority to unmatched rows out of the plurality of rows of the EDT specifications; passing the input sequence to an expected output generation module (106), wherein the expected output generation module (106) executes each of the automaton out of the automata, corresponding to each of the cells of the EDT and determines the rows out of the plurality of rows that matches the input sequence to generate an expected output sequence; and providing the expected output sequence to a final output generation module (110) to generate the functional test cases if a predefined set of conditions are satisfied, wherein the predefined set of conditions comprises, at least one of a row or a row-interaction is covered by the functional test cases and the functional test cases do not involve an invalid test scenario.
-
Specification