Generate test cases for the following code by using Basic Path Testing. void sort(int a[ ],int N) { int i,j,p,t; for(i=0;i

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question
# Basic Path Testing: Generating Test Cases

## Objective:
Generate test cases for the following code using Basic Path Testing.

### Code to Analyze:
```cpp
void sort(int a[], int N)
{
    int i, j, p, t;
    for(i = 0; i < N - 1; i++)
    {
        p = i;
        for(j = i + 1; j < N; j++)
            if(a[j] > a[p]) 
                p = j;
        if(p != i)
        {
            t = a[p]; 
            a[p] = a[i]; 
            a[i] = t;
        }
    }
}
```

### Tasks:
a) **Draw CFG (Control Flow Graph):**
   - Create a visual representation of the control flow for the given code.

b) **How many basic paths are there for the CFG?**
   - Calculate the number of basic paths based on the control flow graph, using techniques such as cyclomatic complexity.

c) **List the basic paths:**
   - Identify the independent paths that form the basis for path coverage.

d) **Generate test cases from it:**
   - Develop test cases that cover each identified path to ensure thorough testing of the code.

### Code Explanation:
- The function `sort` takes an array `a` and its size `N`.
- It uses a nested loop to find the maximum element in the unsorted part of the array and swaps it with the first element of the unsorted part.
- The goal is to sort the array in descending order using a selection sort algorithm.

### Conceptual Understanding:
- **Basic Path Testing** involves analyzing the logical paths through a program's code structure.
- **Control Flow Graph (CFG)** is a representation that depicts the control flow of a program using nodes and edges.
- **Cyclomatic Complexity** is calculated to determine the number of linearly independent paths and is used to estimate the number of test cases needed.

By following these steps, an accurate and comprehensive set of test cases can be generated to validate the functionality and correctness of the `sort` function.
Transcribed Image Text:# Basic Path Testing: Generating Test Cases ## Objective: Generate test cases for the following code using Basic Path Testing. ### Code to Analyze: ```cpp void sort(int a[], int N) { int i, j, p, t; for(i = 0; i < N - 1; i++) { p = i; for(j = i + 1; j < N; j++) if(a[j] > a[p]) p = j; if(p != i) { t = a[p]; a[p] = a[i]; a[i] = t; } } } ``` ### Tasks: a) **Draw CFG (Control Flow Graph):** - Create a visual representation of the control flow for the given code. b) **How many basic paths are there for the CFG?** - Calculate the number of basic paths based on the control flow graph, using techniques such as cyclomatic complexity. c) **List the basic paths:** - Identify the independent paths that form the basis for path coverage. d) **Generate test cases from it:** - Develop test cases that cover each identified path to ensure thorough testing of the code. ### Code Explanation: - The function `sort` takes an array `a` and its size `N`. - It uses a nested loop to find the maximum element in the unsorted part of the array and swaps it with the first element of the unsorted part. - The goal is to sort the array in descending order using a selection sort algorithm. ### Conceptual Understanding: - **Basic Path Testing** involves analyzing the logical paths through a program's code structure. - **Control Flow Graph (CFG)** is a representation that depicts the control flow of a program using nodes and edges. - **Cyclomatic Complexity** is calculated to determine the number of linearly independent paths and is used to estimate the number of test cases needed. By following these steps, an accurate and comprehensive set of test cases can be generated to validate the functionality and correctness of the `sort` function.
Expert Solution
Step 1

Ans:The below diagram shows  that flow chart of a programPage No.
Date:
# Below Diaglem show that flowchaut
of a program.
Step!
intx=lini
Slant (Yod &nbi
0
(step 2)
Step 3
Plint Pli

There are 11 blocks. The entry block and exit block is not given in the diagram above as they are optional. Entry block is basically a START block before 1st block of the CFG and Exit block is basically an END block at which all the blocks without an outward edge terminates. Here blocks 3, 10 and 11 culminates at Exit block.

Below is the flow diagram (CFG).# Control flow glaph CCFG).
1
ris
con
>(10
2021/12/19 12:30

 

 

steps

Step by step

Solved in 2 steps with 2 images

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY