Test Case Generation | Set 1 (Random Numbers, Arrays and Matrices)

The test cases are extremely important part of any “Software/Project Testing Process”. Hence this Set will be very important for all the aspiring software developers. The following are C++ program to generate test cases.

  • Generating Random Numbers
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // A C++ Program to generate test cases for
    // random number
    #include<bits/stdc++.h>
    using namespace std;
      
    // Define the number of runs for the test data
    // generated
    #define RUN 5
      
    // Define the range of the test data generated
    #define MAX 10000000
      
    int main()
    {
        // Uncomment the below line to store
        // the test data in a file
        // freopen("Test_Cases.in", "w", stdout);
      
        // For random values every time
        srand(time(NULL));
      
        for (int i=1; i<=RUN; i++)
            printf("%d\n", rand() % MAX);
      
        // Uncomment the below line to store
        // the test data in a file
        //fclose(stdout);
        return(0);
    }

    chevron_right

    
    

  • Generating Random Arrays
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // A C++ Program to generate test cases for
    // array filled with random numbers
    #include<bits/stdc++.h>
    using namespace std;
      
    // Define the number of runs for the test data
    // generated
    #define RUN 5
      
    // Define the range of the test data generated
    #define MAX 10000000
      
    // Define the maximum number of array elements
    #define MAXNUM 100
      
    int main()
    {
        // Uncomment the below line to store
        // the test data in a file
        //freopen ("Test_Cases_Random_Array.in", "w", stdout);
      
        //For random values every time
        srand(time(NULL));
      
        for (int i=1; i<=RUN; i++)
        {
            // Number of array elements
            int NUM = 1 + rand() % MAXNUM;
      
            // First print the number of array elements
            printf("%d\n", NUM);
      
            // Then print the array elements separated 
            // by space
            for (int j=1; j<=NUM; j++)
                printf("%d ", rand() % MAX);
      
            printf("\n");
        }
      
        // Uncomment the below line to store
        // the test data in a file
        //fclose(stdout);
        return(0);
    }

    chevron_right

    
    

  • Generating Random Matrix
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // A C++ Program to generate test cases for
    // matrix filled with random numbers
    #include<bits/stdc++.h>
    using namespace std;
      
    // Define the number of runs for the test data
    // generated
    #define RUN 3
      
    // Define the range of the test data generated
    #define MAX 100000
      
    // Define the maximum rows in matrix
    #define MAXROW 10
      
    // Define the maximum columns in matrix
    #define MAXCOL 10
      
    int main()
    {
        // Uncomment the below line to store
        // the test data in a file
        // freopen ("Test_Cases_Random_Matrix.in", "w", stdout);
      
        // For random values every time
        srand(time(NULL));
      
        for (int i=1; i<=RUN; i++)
        {
            // Number of rows and columns
            int row = 1 + rand() % MAXROW;
            int col = 1 + rand() % MAXCOL;
      
            // First print the number of rows and columns
            printf("%d %d\n", row, col);
      
            // Then print the matrix
            for (int j=1; j<=row; j++)
            {
                for (int k=1; k<=col; k++)
                    printf("%d ", rand() % MAX);
                printf("\n");
            }
            printf("\n");
        }
      
        // Uncomment the below line to store
        // the test data in a file
        // fclose(stdout);
        return(0);
    }

    chevron_right

    
    

  • Library Functions Used

    1. rand() Function
      -> Generate random numbers from the range 0 to RAND_MAX (32767)
      -> Defined in <stdlib.h>/<cstdlib> header
      -> If we want to assign a random number in the range – m to n [n >= m] to a variable var, then use-



      var = m + ( rand() % ( n – m + 1 ) );
      -> This function is a run-time function. So the values – n, m must be declared before compiling just like we have to declare the size of array before compiling.
      -> Call this function every time you want to generate a random number

    2. time() Function
      -> Return the number of seconds from [00:00:00 UTC, January 1, 1970]
      -> Defined in <time.h> header
    3. srand(seed)
      -> Generates random number according to the seed passed to it.
      -> If this function is not used and we use rand() function then every time we run the program the same random numbers gets generated.
      -> To overcome the above limitation, we pass time(NULL) as a seed. Hence srand(time(NULL)) is used to generate random values every time the program is made to run.
      -> Always use this at the beginning of the program, i.e- just after int main() {
      -> No need to call this function every time you generate a random number
      -> Defined in <stdlib.h>/<cstdlib> header
    4. freopen(“output.txt”, “w”, stdout)
      -> Writes (that’s why we passed “w” as the second argument) all the data to output.txt file (The file must be in the same file as the program is in).
      -> Used to redirect stdout to a file.
      -> If the output.txt file is not created before then it gets created in the same file as the program is in.
    5. fclose(stdout)
      -> Closes the standard output stream file to avoid leaks.
      -> Always use this at the end of the program, i.e- just before return(0) in the int main() function.

    This article is contributed by Rachit Belwariar. If you like GeeksforGeeks and would like to contribute, you can also write an article and mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

    Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above



    My Personal Notes arrow_drop_up


    Article Tags :

    1


    Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.