Computer Networking: A Top-Down Approach (7th Edition)
Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN: 9780133594140
Author: James Kurose, Keith Ross
Publisher: PEARSON
Bartleby Related Questions 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.
expand button
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
Check Mark
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

 

 

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