0% found this document useful (0 votes)
33 views

Software Testing Manual

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views

Software Testing Manual

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 52

Software Testing Laboratory (21ISL66)

SOFTWARE TESTING LABORATORY

1. Design, develop, code and run the program in any suitable language to solve the commission
problem. Analyze it from the perspective of boundary value testing, derive different test
cases, execute these test cases and discuss the test results.
2. Design, develop, code and run the program in any suitable language to implement the Next
Date function. Analyze it from the perspective of equivalence class value testing, derive
different test cases, execute these test cases and discuss the test results.
3. Design, develop, code and run the program in any suitable language to solve the commission
problem. Analyze it from the perspective of decision table-based testing, derive different test
cases, execute these test cases and discuss the test results.
4. Design and develop a program in a language of your choice to solve the triangle problem
defined as follows: Accept three integers which are supposed to be the three sides of a
triangle and determine if the three values represent an equilateral triangle, isosceles triangle,
scalene triangle, or they do not form a triangle at all. Assume that the upper limit for the size
of any side is 10. Derive test cases for your program based on boundary-value analysis,
equivalence class partitioning and decision-table approach and execute the test cases and
discuss the results.
5. Design, develop, code and run the program in any suitable language to solve the commission
problem. Analyze it from the perspective of dataflow testing, derive different test cases,
execute these test cases and discuss the test results.
6. Design, develop, code and run the program in any suitable language to implement the binary
search algorithm. Determine the basis paths and using them derive different test cases,
execute these test cases and discuss the test results.

PART B – Practical Based Learning

7. Develop a Mini Project with documentation of suitable test-cases and their results to perform
automation testing of any E-commerce or social media web page.

BIT, Dept. of ISE 2023-24 Page 1


Software Testing Laboratory (21ISL66)

1 First Program

Design, develop, code and run the program in any suitable language to solve the
commission problem. Analyze it from the perspective of boundary value testing, derive
different test cases, execute these test cases and discuss the test results.

1.1 REQUIREMENT SPECIFICATION

Problem Definition: The Commission Problem includes a salesperson in the former


Arizona Territory sold rifle locks, stocks and barrels made by a gunsmith in Missouri.
Cost includes,
Locks- $45

Stocks- $30

Barrels- $25

The salesperson had to sell at least one complete rifle per month and production
limits were such that the most the salesperson could sell in a month was 70 locks, 80
stocks and 90 barrels.

After each town visit, the sales person sent a telegram to the Missouri gunsmith with
the number of locks, stocks and barrels sold in the town. At the end of the month, the
salesperson sent a very short telegram showing --1 lock sold. The gunsmith then knew the
sales for the month were complete and computed the salesperson’s commission as follows:

On sales up to(and including) $1000= 10% On the


sales up to(and includes) $1800= 15% On the sales in
excess of $1800= 20%
The commission program produces a monthly sales report that gave the total number of
locks, stocks and barrels sold, the salesperson’s total dollar sales and finally the commission

1.2 DESIGN

Algorithm
Step 1: Define lockPrice=45.0, stockPrice=30.0, barrelPrice=25.0
Step 2: Input locks
Step 3: while(locks!=-1) ‘input device uses -1 to indicate end of data goto
Step 12

BIT, Dept. of ISE 2023-24 Page 2


Software Testing Laboratory (21ISL66)

Step 4:input (stocks, barrels)


Step 5: compute lockSales, stockSales, barrelSales and sales
Step 6: output(“Total sales:” sales)
Step 7: if (sales > 1800.0) goto Step 8 else goto Step 9
Step 8: commission=0.10*1000.0; commission=commission+0.15 *800.0;
commission = commission + 0.20 * (sales-1800.0)
Step 9: if (sales > 1000.0) goto Step 10 else goto Step 11

Step10: commission=0.10* 1000.0; commission=commission + 0.15 * (sales-1000.0)


Step 11: Output(“Commission is $”, commission) Step 12:
exit

PROGRAM CODE:
#include<stdio.h>
#include<conio.h>
int main()
{
int locks, stocks, barrels, t_sales, flag = 0;
float commission;
clrscr();
printf("Enter the total number of locks");
scanf("%d",&locks);
if ((locks <= 0) || (locks > 70))
{
flag = 1;

}
printf("Enter the total number of stocks");
scanf("%d",&stocks);
if ((stocks <= 0) || (stocks > 80))
{
flag = 1;
}
printf("Enter the total number of barrelss");
scanf("%d",&barrels);
if ((barrels <= 0) || (barrels > 90))
{
flag = 1;
}

BIT, Dept. of ISE 2023-24 Page 3


Software Testing Laboratory (21ISL66)

if (flag == 1)
{
printf("invalid input");
getch();
exit(0);
}
t_sales = (locks * 45) + (stocks * 30) + (barrels * 25);
if (t_sales <= 1000)
{
commission = 0.10 * t_sales;
}
else if (t_sales < 1800)
{
commission = 0.10 * 1000;
commission = commission + (0.15 * (t_sales - 1000));
}
else
{
commission = 0.10 * 1000;
commission = commission + (0.15 * 800);
commission = commission + (0.20 * (t_sales - 1800));
}
printf("The total sales is %d \n The commission is %f",t_sales,
commission);
getch(); return;
}

1.3 TESTING

Technique used: Boundary value analysis


‘Boundary value analysis’ testing technique is used to identify errors at boundaries
rather than finding those exist in center of input domain.

Boundary value analysis is a next part of Equivalence partitioning for designing test
cases where test cases are selected at the edges of the equivalence classes.

BVA: Procedure

1. Partition the input domain using unidimensional partitioning. This leads to as many

BIT, Dept. of ISE 2023-24 Page 4


Software Testing Laboratory (21ISL66)

partitions as there are input variables. Alternately, a single partition of an input domain can
be created using multidimensional partitioning. We will generate several sub-domains in
this Step.
2. Identify the boundaries for each partition. Boundaries may also be identified
using special relationships amongst the inputs.
3. Select test data such that each boundary value occurs in at least one test input.
4. BVA: Example: Create equivalence classes

Assuming that an item code must be in the range 99...999 and quantity in the range 1...100,
Equivalence classes for code:
E1: Values less than 99.
E2: Values in the range.
E3: Values greater than 999.

Equivalence classes for qty:


E4:Value less than 1.
E5:Value in the range.
E6: Value greater than 100.

BVA: Example: Identify boundaries

Equivalence classes and boundaries for find Price. Boundaries are indicated with an x.
Points near the boundary are marked *.

BIT, Dept. of ISE 2023-24 Page 5


Software Testing Laboratory (21ISL66)

Test Case design

The Commission Problem takes locks, stocks and barrels as input and checks it for
validity. If it is valid, it returns the commission as its output. Here we have three inputs
for the program, hence n = 3.
Since BVA yields (4n + 1) test cases according to single fault assumption
theory, hence we can say that the total number of test cases will be (4*3+1)
=12+1=13.

The boundary value test case can be generated over an output by using fallowing
constraints and these constraints are generated over commission:

C1: Sales up to(and including) $1000= 10% commission


C2: Sales up to(and includes) $1800= 15% commission
C3: Sales in excess of $1800= 20% commission

Here from these constraints we can extract the test cases using the values of Locks,
Stocks, and Barrels sold in month. The boundary values for commission are 10%, 15% and
20%.

Equivalence classes for 10% Commission:


E1: Sales less than
1000. E2: Sales equals
to 1000.
Equivalence classes for 15% Commission:
E3: Sales greater than 1000 and less than 1800.
E4: Sales equals to 1800
Equivalence classes for 20% Commission:
E5: Sales greater then 1800

From the above equivalence classes we can derive the following test cases using
boundary value analysis approach.

TC Test Case Input Data Expected Actua


Id Locks Stocks Barrels Sales Status
Description Output(Commission) l
1 Input test cases 1 1 1 100 10 Outp
for Locks=1, ut
Stocks=1,
Barrels=1

BIT, Dept. of ISE 2023-24 Page 6


Software Testing Laboratory (21ISL66)

2 Input test cases 1 1 2 125 12.5


for Locks=1,
Stocks=1,
Barrels=2
3 Input test cases 1 2 1 130 13
for Locks=1,
Stocks=2,
Barrels=1
4 Input test cases 2 1 1 145 14.5
for Locks=2,
Stocks=1,
Barrels=1
5 Input test cases 5 5 5 500 50
for Locks=5,
Stocks=5,
Barrels=5
6 Input test cases 10 10 9 975 97.5
for Locks=10,
Stocks=10,
Barrels=9
7 Input test 10 9 10 970 97
cases for
Locks=10,
8 Input test cases
Stocks=9, 9 10 10 955 95.5
Barrels=10
for Locks=9,
Stocks=10,
9 Input test cases
Barrels=10 10 10 10 1000 100
for Locks=10,
Stocks=10,
10 Input test cases
Barrels=10 10 10 11 1025 103.75
for Locks=10,
Stocks=10,
11 Input test cases
Barrels=11 10 11 10 1030 104.5
for Locks=10,
Stocks=11,
12 Input test cases
Barrels=10 11 10 10 1045 106.75
for Locks=11,
Stocks=10,
13 Input test cases
Barrels=10 14 14 13 1400 160
for Locks=14,
Stocks=14,
14 Input test cases
Barrels=13 18 18 17 1775 216.25
for Locks=18,
Stocks=18,
Barrels=17
BIT, Dept. of ISE 2023-24 Page 7
Software Testing Laboratory (21ISL66)

15 Input test cases 18 17 18 1770 215.5


for Locks=18,
Stocks=17,
16 Input test cases 17
Barrels=18 18 18 1755 213.25
for Locks=17,
Stocks=18,
Barrels=18
17 Input test 18 18 18 1800 220
cases for
Locks=18,
Stocks=18,
Barrels=18
18 Input test cases 18 18 19 1825 225
for Locks=18,
Stocks=18,
Barrels=19
19 Input test cases 18 19 18 1830 226
for Locks=18,
Stocks=19,
Barrels=18
20 Input test cases 19 18 18 1845 229
for Locks=19,
Stocks=18,
Barrels=18
21 Input test cases 48 48 48 4800 820
for Locks=48,
Stocks=48,
Barrels=48

Table-1 BVA Test case for commission problem

This is how we can apply BVA technique to create test cases for our
Commission Problem.

BIT, Dept. of ISE 2023-24 Page 8


Software Testing Laboratory (21ISL66)

1.4 EXECUTIONS

Execute the program and test the test cases in Table-1 against program and complete
the table with for Actual output column and Status column

TEST REPORT:

1. No of TC’s Executed:
2. No of Defects Raised:
3. No of TC’s Pass:
4. No of TC’s Failed:

1.5 SNAPSHOTS:

1. Snapshot for valid inputs

BIT, Dept. of ISE 2023-24 Page 9


Software Testing Laboratory (21ISL66)

2. Snapshots when the two inputs are same

3. Snapshots when the two inputs and all the inputs are same

BIT, Dept. of ISE 2023-24 Page 10


Software Testing Laboratory (21ISL66)

1.6 REFERENCES

1. Requirement Specification
2. Assumptions

2 Second Program

Design, develop, code and run the program in any suitable language to implement the
Next Date function. Analyze it from the perspective of equivalence class value
testing, derive different test cases, execute these test cases and discuss the test results.

2.1 REQUIREMENT SPECIFICATION

Problem Definition: "Next Date" is a function consisting of three variables like: month,
date and year. It returns the date of next day as output. It reads current date as input date.

The constraints are

C1: 1 ≤ month ≤ 12
C2: 1 ≤ day ≤ 31
C3: 1812 ≤ year ≤ 2012.

If any one condition out of C1, C2 or C3 fails, then this function produces an output "value
of month not in the range 1...12".

BIT, Dept. of ISE 2023-24 Page 11


Software Testing Laboratory (21ISL66)

Since many combinations of dates can exist, hence we can simply displays one message for
this function: "Invalid Input Date".

A very common and popular problem occurs if the year is a leap year. We have taken into
consideration that there are 31 days in a month. But what happens
if a month has 30 days or even 29 or 28 days ?

A year is called as a leap year if it is divisible by 4, unless it is a century year. Century years
are leap years only if they are multiples of 400. So, 1992, 1996 and 2000 are leap years while
1900 is not a leap year.

Furthermore, in this Next Date problem we find examples of Zipf's law also, which states that
"80% of the activity occurs in 20% of the space". Thus in this case also, much of the
source-code of Next Date function is devoted to the leap year considerations.

2.2 DESIGN

Algorithm:

Step 1: Input date in format DD.MM.YYYY


Step 2: if MM is 01, 03, 05,07,08,10 do Step 3 else Step 6
Step 3:if DD < 31 then do Step 4 else if DD=31 do Step 5 else output(Invalid
Date);
Step 4: tomorrowday=DD+1 goto Step 18
Step 5: tomorrowday=1; tomorrowmonth=month + 1 goto Step 18
Step 6: if MM is 04, 06, 09, 11 do Step 7
Step 7: if DD<30 then do Step 4 else if DD=30 do Step 5 else output(Invalid
Date);
Step 8: if MM is 12
Step 9: if DD<31 then Step 4 else Step 10
Step 10: tomorrowday=1, tommorowmonth=1, tommorowyear=YYYY+1; goto
Step 18
Step 11: if MM is 2
Step12: if DD<28 do Step 4 else do Step 13
Step 13: if DD=28 & YYYY is a leap do Step 14 else Step 15
Step 14: tommorowday=29 goto Step18
Step 15: tommorowday=1, tomorrowmonth=3, goto Step 18;
Step 16: if DD=29 then do Step15 else Step 17
Step 17: output(“Cannot have feb”, DD); Step 19
Step 18: output(tomorrowday, tomorrowmonth, tomorrowyear);
Step 19: exit

BIT, Dept. of ISE 2023-24 Page 12


Software Testing Laboratory (21ISL66)

2.3 PROGRAM CODE:

#include<stdio.h>
#include<conio.h>
main( )
{
int month[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int d,m,y,nd,nm,ny,ndays;
clrscr( );
printf("enter the date,month,year");
scanf("%d%d%d",&d,&m,&y);
ndays=month[m-1];
if(y<=1812 && y>2012)
{
printf("Invalid Input Year");
exit(0);
}

if(d<=0 || d>ndays)
{

printf("Invalid Input Day");


exit(0);
}
if(m<1 && m>12)
{
printf("Invalid Input Month");
exit(0);
}

if(m==2)
{
if(y%100==0)
{

if(y%400==0)
ndays=29;
}
BIT, Dept. of ISE 2023-24 Page 13
Software Testing Laboratory (21ISL66)

else
if(y%4==0)
ndays=29;
nd=d+1; nm=m; ny=y;
}
if(nd>ndays)
{
nd=1;
nm++;
}
if(nm>12)
{
nm=1;
ny++;
}
if(nm>12)
{
nm=1;
ny++;
}
printf("\n Given date is %d:%d:%d",d,m,y); printf("\n Next day’s date is
%d:%d:%d",nd,nm,ny); getch( );
}

2.4 TESTING

Technique used: Equivalence Class testing

Test selection using equivalence partitioning allows a tester to subdivide the input domain
into a relatively small number of sub-domains, say N>1, as shown.

BIT, Dept. of ISE 2023-24 Page 14


Software Testing Laboratory (21ISL66)

In strict mathematical terms, the sub-domains by definition are disjoint. The four subsets
shown in (a) constitute a partition of the input domain while the
Subsets in (b) are not. Each subset is known as an equivalence class.

Example:
Consider an application A that takes an integer denoted by age as input. Let us suppose that the
only legal values of age are in the range [1..120]. The set of input values is now divided into
a set E containing all integers in the range
[1..120] and a set U containing the remaining integers.

Further, assume that the application is required to process all values in the range [1..61] in
accordance with requirement R1 and those in the range [62..120] according to
requirement R2. Thus E is further subdivided into two
regions depending on the expected behavior.

BIT, Dept. of ISE 2023-24 Page 15


Software Testing Laboratory (21ISL66)

Similarly, it is expected that all invalid inputs less than or equal to 1 are to be treated in one
way while all greater than 120 are to be treated differently.
This leads to a subdivision of U into two categories,

Tests selected using the equivalence partitioning technique aim at targeting faults in the
application under test with respect to inputs in any of the four regions, i.e. two regions
containing expected inputs and two regions containing the unexpected inputs.

It is expected that any single test selected from the range [1...61] will reveal any fault with
respect to R1. Similarly, any test selected from the region [62...120] will reveal any
fault with respect to R2. A similar expectation applies to the two regions containing the
unexpected inputs.

Test Case design

The Next Date function is a function which will take in a date as input and produces as
output the next date in the Georgian calendar. It uses three variables (month, day and
year) which each have valid and invalid intervals.

First Attempt

A first attempt at creating an equivalence relation might produce intervals such as


these:
Valid Intervals

M1 = {month: 1 ≤ month ≤ 12} D1 =


{day: 1 ≤day ≤31}
Y1 = {year: 1812 ≤ year ≤2012}

Valid Intervals

M1 = {month: 1 ≤ month ≤ 12}


D1 = {day: 1 ≤day ≤31}
Y1 = {year: 1812 ≤ year ≤2012}

Invalid Intervals
M2 = {month: month < 1}
M3 = {month: month > 12}
D2 = {day: day < 1}
D3 = {day: day > 31}
Y2 = {year: year < 1812}
Y3 = {year: year > 2012}

BIT, Dept. of ISE 2023-24 Page 16


Software Testing Laboratory (21ISL66)

At a first glance it seems that everything has been taken into account and our day, month
and year intervals have been defined well. Using these intervals we produce test cases
using the four different types of Equivalence Class testing.

Weak and Strong Normal

TC Test Case Input Data Expected Actual Status


Id Description MM DD YYYY Output Output
1 Testing for Valid 6 15 1900 6/16/1900
input changing
the day within the
month.

Table 1: Weak and Strong Normal

Since the number of variables is equal to the number of valid classes, only one weak
normal equivalence class test case occurs, which is the same as the strong normal
equivalence class test case (Table 1).

Weak Robust:

TC Test Case Input Data Expected Actual


Id M DD YYYY Status
Description Output Output
1 Testing for Valid 6M 15 1900 6/16/1900
input changing
the day within
the month.
2 Testing for 6 -1 1900 Day not in range
Invalid Day, day
with negative
number it is not
possible
3 Testing for 6 32 1900 Day not in range
Invalid Day, day
with Out of
range i.e.,
DD=32
4 Testing for -1 15 1900 Month not in
Invalid Month, range
month with
negative
number it is not
possible
BIT, Dept. of ISE 2023-24 Page 17
Software Testing Laboratory (21ISL66)

5 Testing for 13 15 1900 Month not in


Invalid month, range
month with out
of range i.e.,
MM=13 it
should MM<=12
6 Testing for Year, 6 15 1899 Year not in range
year is out of
range
YYYY=1899, it
should <=1812
7 Testing for Year, 6 15 2013 Year not in range
year is out of
range
YYYY=2013, it
should <=2012

Table 2: Weak Robust

(Table 2) we can see that weak robust equivalence class testing will just test the ranges of
the input domain once on each class. Since we are testing weak and not normal, there will
only be at most one fault per test case (single fault assumption) unlike Strong Robust
Equivalence class testing.

Strong Robust:

This is a table showing one corner of the cube in 3d-space (the three other corners
would include a different combination of variables) since the
complete table would be too large to show.

TC Test Case Input Data Expected Actual


Id Description MM DD YYYY Output Output Status
Testing for Month is
not in range MM=-1
i.e., in negative
1 number there is not
possible have to be
Month not in
month in negative
-1 15 1900 range
number
Testing for Day is not in
range DD=-1 i.e., in
2
negative number
there is not possible

BIT, Dept. of ISE 2023-24 Page 18


Software Testing Laboratory (21ISL66)

have to be Day in 6 - 1900 Day not in range


negative number 1
Testing for Year is
not in range
3
YYYY=1899 i.e., Year Year not in
6 15 1899
should <=1812 range
Testing for Day and
month is not in range
MM=-1, DD=-1 i.e., in
negative number
4 i) Day not
there is not possible
in range
have to be Day and
ii) Month not in
Month in negative -
-1 1900 range
number 1
i) Testing for Day is
not in range and Year is
not in range DD=-1 i.e.,
in negative
number there is not
5 possible have to be
Day in negative
i) Day not
number, and
in range
ii) YYYY=1899, so the
- ii) Year not in
range of year is 6 1899
1 range
<=1812
i) Testing for Month
is not in range MM=-
1 and i.e., in negative
number there is not
possible have to be
6
Day in negative
i) Month not in
number, and
range
ii) Year is not in
ii) Year not
range YYYY=1899, -1 15 1899
in range
year should <=1812
i) Testing for Day is
not in range DD=-1
i.e., in negative
number there is not
7
possible have to be
Day in negative
number
ii) Testing for Month

BIT, Dept. of ISE 2023-24 Page 19


Software Testing Laboratory (21ISL66)

is not in range MM=-


1 and i.e., in negative i) Day not
number there is not in range
possible have to be ii) Month not in
Day in negative range
number, and -1 - 1899 iii) Year not in
iii) Year is not in 1 range
range YYYY=1899,
year should <=1812

Second Attempt

As said before the equivalence relation is vital in producing useful test cases and more time
must be spent on designing it. If we focus more on the equivalence relation and
consider more greatly what must happen to an input date we might produce the following
equivalence classes:

M1 = {month: month has 30 days} M2 =


{month: month has 31 days} M3 =
{month: month is February}

Here month has been split up into 30 days (April, June, September and November),
31 days (January, March, April, May, July, August, October and December) and February.

D1 = {day: 1 ≤ day ≤ 28} D2


= {day: day = 29}
D3 = {day: day = 30}
D4 = {day: day = 31}

Day has been split up into intervals to allow months to have a different number of
days; we also have the special case of a leap year (February 29 days).

Y1 = {year: year = 2000}


Y2 = {year: year is a leap year}
Y3 = {year: year is a common year}

Year has been split up into common years, leap years and the special case the year 2000 so we
can determine the date in the month of February.

Here are the test cases for the new equivalence relation using the four types of
Equivalence Class testing.

BIT, Dept. of ISE 2023-24 Page 20


Software Testing Laboratory (21ISL66)

Weak Normal

TC Test Case Description Input Data Expected Actual Status


Id MM DD YYYY Output Output
1 Testing for all 6 14 2000 6/15/2000
Valid input changing the
day within the month.
2 Testing for Valid input 7 29 1996 7/30/1996
changing the day
within the month.
3 Testing for Leaf 2 30 2002 Impossible date
year,
i.e., MM=2 (Feb) the
input DD=30, there is
not possible date 30,
in leaf year only 28 and
29 will occur.
4 Testing for 6 31 2000 Impossible input
Impossible date
Date, i.e., MM=6
(June) the input
DD=31, there is only
30 days in the month
of June, So,
DD=31 is Impossible
Date.

Table 3: Weak normal

Strong Normal

TC ID Test Case Input Data Expected Actual Status


Description MM DD YYYY Output Output
1 SN1 6 14 2000 6/15/2000
2 SN2 6 14 1996 6/15/1996
3 SN3 6 14 2002 6/15/2002
4 SN4 6 29 2000 6/30/2000
5 SN5 6 29 1996 6/30/1996
6 SN6 6 29 2002 6/30/2002

BIT, Dept. of ISE 2023-24 Page 21


Software Testing Laboratory (21ISL66)

7 6 30 2000 Invalid Input


SN7 Date
8 6 30 1996 Invalid Input
SN8 Date
9 6 30 2002 Invalid Input
SN9 Date
10 6 31 2000 Invalid Input
SN10 Date
11 6 31 1996 Invalid Input
SN11 Date
12 6 31 2002 Invalid Input
SN12 Date
13 SN13 7 14 2000 7/15/2000
14 SN14 7 14 1996 7/15/1996
15 SN15 7 14 2002 7/15/2002
16 SN16 7 29 2000 7/30/2000
17 SN17 7 29 1996 7/30/1996
18 SN18 7 29 2002 7/30/2002
19 SN19 7 30 2000 7/31/2000
20 SN20 7 30 1996 7/31/1996
21 SN21 7 30 2002 7/31/2002
22 SN22 7 31 2000 8/1/2000
23 SN23 7 31 1996 8/1/1996
24 SN25 7 31 2002 8/1/2002
25 SN24 2 14 2000 2/15/2000
26 SN26 2 14 1996 2/15/1996
27 SN27 2 14 2002 2/15/2002
28 SN28 2 29 2000 Invalid Input
Date
29 SN29 2 29 1996 3/1/1996
30 SN30 2 29 2002 Invalid Input
Date
31 SN31 2 30 2000 Invalid Input
Date
32 SN32 2 30 1996 Invalid Input
Date

BIT, Dept. of ISE 2023-24 Page 22


Software Testing Laboratory (21ISL66)

33 SN33 2 30 2002 Invalid Input


Date
34 SN34 2 31 2000 Invalid Input
Date
35 SN35 2 31 1996 Invalid Input
Date
36 SN36 2 31 2002 Invalid Input
Date

Table 4: Strong Normal

2.5 EXECUTIONS

Execute the program and test the test cases in Table-1 against program and complete the
table with for Actual output column and Status column

Test Report:
1. No of TC’s Executed:
2. No of Defects Raised:
3. No of TC’s Pass:
4. No of TC’s Failed:

2.6 SNAPSHOTS:

1. Snapshot to show the nextdate for current date and invalid day is entered

BIT, Dept. of ISE 2023-24 Page 23


Software Testing Laboratory (21ISL66)

2. Invalid Input

2.7 REFERENCES:

1. Requirement Specification
2. Assumptions

BIT, Dept. of ISE 2023-24 Page 24


Software Testing Laboratory (21ISL66)

3 Third Program

Design, develop, code and run the program in any suitable language to solve the
commission problem. Analyze it from the perspective of dataflow testing, derive different
test cases, execute these test cases and discuss the test results.

3.1 REQUIREMENT SPECIFICATION

Problem Definition: The Commission Problem includes a salesperson in the former


Arizona Territory sold rifle locks, stocks and barrels made by a gunsmith in Missouri.
Cost includes

Locks- $45

Stocks- $30

Barrels- $25

The salesperson had to sell at least one complete rifle per month and production
limits were such that the most the salesperson could sell in a month was 70 locks, 80
stocks and 90 barrels.

After each town visit, the sales person sent a telegram to the Missouri gunsmith with
the number of locks, stocks and barrels sold in the town. At the end of the month, the
salesperson sent a very short telegram showing -
-1 lock sold. The gunsmith then knew the sales for the month were complete and
computed the salesperson’s commission as follows:

On sales up to(and including) $1000= 10% On the


sales up to(and includes) $1800= 15% On the sales in
excess of $1800= 20%
The commission program produces a monthly sales report that gave the total number of
locks, stocks and barrels sold, the salesperson’s total dollar sales and finally the
commission

3.2 TESTING TECHNIQUE: DATAFLOW TESTING

A structural testing technique


• Aims to execute sub-paths from points where each variable is defined to points where it
is referenced. These sub-paths are called definition-use pairs, or du-pairs (du-paths, du-
chains) Data flow testing is centred on variables (data) Data flow testing follows the
sequences of events related to a given data item with the objective to detect incorrect

BIT, Dept. of ISE 2023-24 Page 25


Software Testing Laboratory (21ISL66)

sequences It explores the effect of using the value produced by every and each computation.

Variable definition
Occurrences of a variable where a variable is given a new value (assignment, input by the
user, input from a file, etc.) Variable DECLARATION is NOT its definition !!!

Variable uses
Occurences of a variable where a variable is not given a new value (variable
DECLARATION is NOT its use)

p-uses (predicate uses)


Occur in the predicate portion of a decision statement such as if-then-else, while-do etc.

c-uses (computation uses)


All others, including variable occurrences in the right hand side of an assignment
statement, or an output statement

du-path: A sub-path from a variable definition to its use. Test case


definitions based on four groups of coverage
– All definitions.

– All c-uses.

– All p-uses.

– All du-paths.

DATA FLOW TESTING: KEY Steps

Given a code (program or pseudo-code).

1. Number the lines.

2. List the variables.

3. List occurrences & assign a category to each variable.

4. Identify du-pairs and their use (p- or c- ).

5. Define test cases, depending on the required coverage.

line catogary
Definition c-use p-use
1
BIT, Dept. of ISE 2023-24 Page 26
Software Testing Laboratory (21ISL66)

2
3
4
5
6
7
8
9 locks, stocks, barrels
10 locks, stocks, barrels
11
12 Flag
13
14 flag
15
16
17
18
19
locks, stocks,
barrels
20 t_sales
21 t_sales
22
23 commission t_sales
24
25 t_sales
26
27 commission
28 commission commission, t_sales
29
30
31
32 commission
33 commission commission
34 commission commission, t_sales
35
36 commission
37
38
39
Table: list occurrences & assign a category to each variable

BIT, Dept. of ISE 2023-24 Page 27


Software Testing Laboratory (21ISL66)

definition - use pair variables()


start line → end line c-use p-use
9→10 locks
9→10 stocks
9→10 barrels
9→20 locks
9→20 stocks
9→20 barrels
12→14 flag
20→21 t_sales
20→23 t_sales
20→25 t_sales
20→28 t_sales
20→34 t_sales
23→36 commission
27→28 commission
28→36 commission
32→33 commission
33→34 commission
34→36 commission

Table: Define test cases


TEST CASES BASED ON ALL DEFINITION

To achieve 100% All-definitions data flow coverage at least one sub-path from
each variable definition to some use of that definition (either c- or p- use) must be executed.
Inputs Expected output
Variable(s) du- sub- locks stocks barrels t_sales commiss
pair path ion
locks, 9→20 9,10,20 10 10 10 1000
stocks,
barrels
locks, 9→10 9→10 5 -1 22 Invalid Input
stocks,
barrels
Flag 12→14 12→14 -1 40 45 Invalid Input
t_sales 20→21 20,21 5 5 5 500
t_sales 20→25 20,21,25 15 15 15 1500
commission 23→36 23→36 5 5 5 50
commission 27→36 27,28,36 15 15 15 175
commission 32→36 32,33,34, 25 25 25 360
36

BIT, Dept. of ISE 2023-24 Page 28


Software Testing Laboratory (21ISL66)

3.3 EXECUTION

Execute the program and test the test cases in above Tables against program
and complete the table with for Actual output column and Status column.

3.4 SNAPSHOTS:

1. Snapshot for Total sales and commission when total sales are within 1000 and
Invalid input

BIT, Dept. of ISE 2023-24 Page 29


Software Testing Laboratory (21ISL66)

2. Invalid Input and Total sales and commission when total sales are within
1000

3. Snapshot for for Total sales and commission when total sales are within
1800 and to find out the total commission 360

BIT, Dept. of ISE 2023-24 Page 30


Software Testing Laboratory (21ISL66)

4. Snapshot for total sales and commission

3.5 REFERENCES

1. Requirement Specification.
2. Assumptions.

BIT, Dept. of ISE 2023-24 Page 31


Software Testing Laboratory (21ISL66)

4 Fourth Program

Design and develop a program in a language of your choice to solve the triangle problem
defined as follows: Accept three integers which are supposed to be the three sides of a
triangle and determine if the three values represent an equilateral triangle, isosceles triangle,
scalene triangle, or they do not form a triangle at all. Derive test cases for your program
based on decision-table approach, execute the test cases and discuss the results.

4.1 REQUIREMENT SPECIFICATION:

R1. The system should accept 3 positive integer numbers (a, b, c) which represents 3
sides of the triangle. Based on the input it should determine if a triangle can be formed or
not.
R2. If the requirement R1 is satisfied then the system should determine the type of the
triangle, which can be
• Equilateral (i.e. all the three sides are equal)
• Isosceles (i.e Two sides are equal)
• Scalene (i.e All the three sides are unequal)
else suitable error message should be displayed. Here we assume that user gives three
positive integer numbers as input.

4.2 DESIGN:

Form the given requirements we can draw the following conditions: C1: a<b+c?
C2: b<a+c?
C3: c<a+b?
C4: a=b? C5:
a=c? C6:
b=c?
According to the property of the triangle, if any one of the three conditions C1,
C2 and C3 are not satisfied then triangle cannot be constructed. So only when C1, C2 and
C3 are true the triangle can be formed, then depending on conditions C4, C5 and C6
we can decide what type of triangle will be formed. (i.e requirement R2).

Algorithm:
Step 1: Input a, b & c i.e three integer values which represent three sides of the triangle.
Step 2: if (a < (b + c)) and (b < (a + c)) and (c < (a + b) then do Step 3
else
print not a triangle. do Step 6.
Step 3: if (a=b) and (b=c) then
Print triangle formed is equilateral. do Step 6.
Step 4: if (a ≠ b) and (a ≠ c) and (b ≠ c) then
Print triangle formed is scalene. do Step 6.

BIT, Dept. of ISE 2023-24 Page 32


Software Testing Laboratory (21ISL66)

Step 5: Print triangle formed is Isosceles.


Step 6: stop

4.3 PROGRAM CODE:

#include<stdio.h>
#include<ctype.h>
#include<conio.h>
#include<process.h>
int main()
{
int a, b, c;
clrscr();
printf("Enter three sides of the triangle");
scanf("%d%d%d", &a, &b, &c);
if((a<b+c)&&(b<a+c)&&(c<a+b))
{

if((a==b)&&(b==c))
{
printf("Equilateral triangle");
}
else if((a!=b)&&(a!=c)&&(b!=c))
{
printf("Scalene triangle");
}
else
printf("Isosceles triangle");

}
else
{
printf("triangle cannot be formed");
} getch(); return 0;
}

BIT, Dept. of ISE 2023-24 Page 33


Software Testing Laboratory (21ISL66)

4.4 TESTING:

Technique Used: Decision Table Approach

Decision Table-Based Testing has been around since the early 1960’s; it is used to
depict complex logical relationships between input data. A Decision Table is the method
used to build a complete set of test cases without using the internal structure of the
program in question. In order to create test cases we use a table to contain the input and
output values of a program.The decision table is as given below:

Condition Entries (Rules)


R R
Conditions R1 R2 R3 R4 R5 R6 R7 R8 R9 10 11
C1: a<b+c? F T T T T T T T T T T
C2: b<a+c? -- F T T T T T T T T T
C3: c<a+b? -- -- F T T T T T T T T
C4: a=b? -- -- -- F T T T F F F T
C5: a=c? -- -- -- T F T F T F F T
C6: b=c? -- -- -- T T F F F T F T
Actions Action Entries
a1: Not a
Triangle X X X
a2: Scalene X
a3: Isosceles X X X
a4: Equilateral X
a5: Impossible X X X

The “--“ symbol in the table indicates don’t care values. The table shows the six
conditions and 5 actions. All the conditions in the decision table are binary;
hence, it is called as “Limited Entry decision table”.

Each column of the decision table represents a test case. That is, The
table is read as follows:
Action: Not a Triangle

1. When condition C1 is false we can say that with the given ‘a’ ‘b’ and ‘c’

values, it’s Not a triangle.

2. Similarly condition C2 and C3, if any one of them are false, we can say that with the
given ‘a’ ‘b’ and ‘c’ values it’s Not a triangle.

BIT, Dept. of ISE 2023-24 Page 34


Software Testing Laboratory (21ISL66)

Action: Impossible

3. When conditions C1, C2, C3 are true and two conditions among C4, C5, C6 is true,
there is no chance of one conditions among C4, C5, C6 failing. So we can neglect these
rules.
Example: if condition C4: a=b is true and C5: a=c is true

Then it is impossible, that condition C6: b=c will fail, so the action is
Impossible.

Action: Isosceles

4. When conditions C1, C2, C3 are true and any one condition among C4, C5 and C6 is
true with remaining two conditions false then action is Isosceles triangle.
Example: If condition C4: a=b is true and C5: a=c and C6: b=c are false, it means
two sides are equal. So the action will be Isosceles triangle.
Action: Equilateral

5. When conditions C1, C2, C3 are true and also conditions C4, C5 and C6 are true
then, the action is Equilateral triangle.
Action: Scalene

6. When conditions C1, C2, C3 are true and conditions C4, C5 and C6 are false i.e sides
a, b and c are different, then action is Scalene triangle.
Number of Test Cases = Number of Rules.
Using the decision table we obtain 11 functional test cases: 3 impossible cases,

3 ways of failing the triangle property, 1 way to get an equilateral triangle, 1 way to get
a scalene triangle, and 3 ways to get an isosceles triangle.
Deriving test cases using
Decision Table Approach:
Test Cases:
TC Test Case Expected Actual
ID Description a B c Output Output Status
Testing for Not a
1 Requirement 1 4 1 2 Triangle
Testing for Not a
2 Requirement 1 1 4 2 Triangle
Testing for Not a
3 Requirement 1 1 2 4 Triangle
Testing for
4 Requirement 2 5 5 5 Equilateral

BIT, Dept. of ISE 2023-24 Page 35


Software Testing Laboratory (21ISL66)

Testing for
5 Requirement 2 2 2 3 Isosceles
Testing for
6 Requirement 2 2 3 2 Isosceles
Testing for
7 Requirement 2 3 2 2 Isosceles
Testing for
8 Requirement 2 3 4 5 Scalene

4.5 EXECUTION & RESULT DISCUSION

Execute the program against the designed test cases and complete the table for Actual
output column and status column.
Test Report:

1. No of TC’s Executed: 08

2. No of Defects Raised:

3. No of TC’s Pass:
4. No of TC’s Failed:
The decision table technique is indicated for applications characterised by any of the
following:
Prominent if-then-else logic

Logical relationships among input variables

Calculations involving subsets of the input variables

Cause-and-effect relationship between inputs and outputs

The decision table-based testing works well for triangle problem because a lot of decision
making i.e if-then-else logic takes place.

BIT, Dept. of ISE 2023-24 Page 36


Software Testing Laboratory (21ISL66)

4.6 SNAPSHOTS:

1. Output screen of Triangle cannot be formed

2. Output screen of Equilateral and Isosceles Triangle.

BIT, Dept. of ISE 2023-24 Page 37


Software Testing Laboratory (21ISL66)

3. Output screen for Scalene Triangle

4.7 REFERENCES:

1. Requirement Specification
2. Assumption.

5 Fifth Program

Design, develop, code and run the program in any suitable language to solve the
commission problem. Analyze it from the perspective of decision table-based testing,
derive different test cases, execute these test cases and discuss the test results.

5.1 REQUIREMENT SPECIFICATION:

R1: The system should read the number of Locks, Stocks and Barrels sold in a month.

(i.e 1≤ Locks≤ 70) (i.e 1


≤ Stocks ≤ 80) (i.e 1 ≤
Barrels ≤ 90).
R2: If R1 is satisfied the system should compute the salesperson’s commission depending on
the total number of Locks, Stocks & Barrels sold else it should display suitable error
message. Following is the percentage of commission for the sales done:
10% on sales up to (and including) $1000

BIT, Dept. of ISE 2023-24 Page 38


Software Testing Laboratory (21ISL66)

15% on next $800

20% on any sales in excess of $1800

Also the system should compute the total dollar sales. The system should output
salespersons total dollar sales, and his commission.

5.2 DESIGN:

Form the given requirements we can draw the following conditions:

C1: 1≤locks≤70? Locks = -1? (occurs if locks = -1 is used to control input iteration).
C2: 1≤stocks≤80? Here C1 can be expanded as:
C1a: 1≤locks
C3: 1≤barrels≤90? C1b: locks≤70
C4: sales>1800?
C5: sales>1000?
C6: sales≤1000?

Algorithm:

Step 1: Input 3 integer numbers which represents number of Locks, Stocks and Barrels sold.
Step 2: compute the total sales =
(Number of Locks sold *45) + (Number of Stocks sold *30) + (Number of
Barrels sold *25)
Step 3: if a totals sale in dollars is less than or equal to $1000
then commission = 0.10* total Sales do Step 6
Step 4: else if total sale is less than $1800
then commission1 = 0.10* 1000
commission = commission1 + (0.15 * (total sales – 1000))
do Step 6
Step 5: else commission1 = 0.10* 1000
commission2 = commission1 + (0.15 * 800))
commission = commission2 + (0.20 * (total sales – 1800)) do
Step 6
Step 6: Print commission.
Step 7: Stop.

BIT, Dept. of ISE 2023-24 Page 39


Software Testing Laboratory (21ISL66)

5.3 PROGRAM CODE:

#include<stdio.h>
#include<conio.h>
int main()
{
int locks, stocks, barrels, t_sales, flag = 0;
float commission;
clrscr();
printf("Enter the total number of locks");
scanf("%d",&locks);
if ((locks <= 0) || (locks > 70))
{
flag = 1;
}
printf("Enter the total number of stocks");
scanf("%d",&stocks);
if ((stocks <= 0) || (stocks > 80))
{
flag = 1;
}
printf("Enter the total number of stocks");
scanf("%d",&stocks);
if ((stocks <= 0) || (stocks > 80))
{
flag = 1;
}
printf("Enter the total number of barrelss");
scanf("%d",&barrels);
if ((barrels <= 0) || (barrels > 90))
{
flag = 1;
}
if (flag == 1)
{
printf("invalid input");
getch();
exit(0);

BIT, Dept. of ISE 2023-24 Page 40


Software Testing Laboratory (21ISL66)

}
t_sales = (locks * 45) + (stocks * 30) + (barrels * 25);
if (t_sales <= 1000)
{
commission = 0.10 * t_sales;
}
else if (t_sales < 1800)
{
commission = 0.10 * 1000;
commission = commission + (0.15 * (t_sales - 1000));
}
else
{
commission = 0.10 * 1000;
commission = commission + (0.15 * 800);
commission = commission + (0.20 * (t_sales - 1800));
}
printf("The total sales is %d \n The commission is %f",t_sales,
commission);
getch();
return;
}

5.4 TESTING

Technique Used: Decision Table Approach

The decision table is given below

Conditions Condition Entries (Rules)


C1: 1≤locks≤70? F T T T T T
C2: 1≤stocks≤80? -- F T T T T
C3: 1≤barrels≤90? -- -- F T T T
C4: sales>1800? -- -- -- T F F
C5: sales>1000? -- -- -- -- T F
C6: sales≤1000? -- -- -- -- -- T
Actions Action Entries
a1: com1 = 0.10*Sales X
a2: com2 =
com1+0.15*(sales-1000) X

BIT, Dept. of ISE 2023-24 Page 41


Software Testing Laboratory (21ISL66)

a3: com3 =
com2+0.20*(sales-1800) X
a4: Out of Range. X X X

Using the decision table we get 6 functional test cases: 3 cases out of range, 1 case each for
sales greater than $1800, sales greater than $1000, sales less than or equal to $1000.

DERIVING TEST CASES USING Decision Table Approach:


Test Cases
T Test Case Expected Actual
C Description Locks Stocks Barrels Output Output Status
ID Testing for
1 Requirement 1 -2 40 45 Out of Range
Condition 1 (C1)
Testing for
2 Requirement 1 90 40 45 Out of Range
Condition 1 (C1)
Testing for
3 Requirement 1 35 -3 45 Out of Range
Condition 2 (C2)
Testing for
4 Requirement 1 35 100 45 Out of Range
Condition 2 (C2)
Testing for
5 Requirement 1 35 40 -10 Out of Range
Condition 3 (C3)
Testing for
6 Requirement 1 35 40 150 Out of Range
Condition 3 (C3)
Testing for
7 Requirement 2 5 5 5 500 a1:50
Testing for
8 Requirement 2 15 15 15 1500 a2: 175
Testing for
9 Requirement 2 25 25 25 2500 a3: 360

5.5 EXECUTION & RESULT DISCUSION:

Execute the program against the designed test cases and complete the table for Actual
output column and status column.
TEST REPORT:

1. No of TC’s Executed:

BIT, Dept. of ISE 2023-24 Page 42


Software Testing Laboratory (21ISL66)

2. No of Defects Raised:

3. No of TC’s Pass:

4. No of TC’s Failed:
The commission problem is not well served by a decision table analysis because it
has very little decisional. Because the variables in the equivalence
classes are truly independent, no impossible rules will occur in a decision table in which
condition correspond to the equivalence classes.

5.6 SNAPSHOTS:

1. Snapshot for Total sales and commission when total sales are within 1000 and 1800

2. Snapshot when the inputs all are 25.

5.7 REFERENCES:

1. Requirement Specification
2. Assumptions

BIT, Dept. of ISE 2023-24 Page 43


Software Testing Laboratory (21ISL66)

6 Sixth Program

Design, develop, code and run the program in any suitable language to implement the
binary search algorithm. Determine the basis paths and using them derive different test
cases, execute these test cases and discuss the test results.

6.1 REQUIREMENTS SPECIFICATION

R1: The system should accept ‘n’ number of elements and key element that is to be searched
among ‘n’ elements..
R2: Check if the key element is present in the array and display the position if present
otherwise print unsuccessful search.

6.2 DESIGN

We use integer array as a data structure to store ‘n’ number of elements. Iterative
programming technique is used.

Algorithm:
Step 1: Input value of ‘n’. Enter ‘n’ integer numbers in array int mid;
Step 2: Initialize low = 0, high = n -1
Step 3: until ( low <= high ) do mid =
(low + high) / 2 if ( a[mid]
== key )
then do Step 5 else
if ( a[mid] > key ) then do
high = mid - 1
else
low = mid + 1
Step 4: Print unsuccessful search do Step 6.
Step 5: Print Successful search. Element found at position mid+1.
Step 6: Stop.

6.3 PROGRAM CODE:

#include<stdio.h>
include<conio.h>
int main()

BIT, Dept. of ISE 2023-24 Page 44


Software Testing Laboratory (21ISL66)

Int a[20],n,low,high,mid,key,I;
int flag=0;
clrscr();
printf("Enter the value of n:\n");
scanf("%d",&n);
if(n>0)
{
printf("Enter %d elements in ASCENDING order\n",n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
printf("Enter the key element to be searched\n");
scanf("%d",&key);
low-=0;
high=n-1;
while(low<=high)
{
mid=(low+high)/2;
if(a[mid]==key)
{
flag=1;
break;
}
else if(a[mid]<key)
{
low=mid+1;

}
else
{
high=mid-1;
}
}
if(flag==1)
printf("Successful search\n Element found at Location %d\n",mid+1);

BIT, Dept. of ISE 2023-24 Page 45


Software Testing Laboratory (21ISL66)

else
printf(“Key element is not found”);
}
else
printf("Wrong input");
getch();
return 0;
}

6.4 TESTING

Technique Used: Basis Path Testing

Basis path testing is a form of Structural testing (White Box testing).


The method devised by McCabe to carry out basis path testing has four Steps.
These are:

1. Compute the program graph.

2. Calculate the cyclomatic complexity.

3. Select a basis set of paths.

4. Generate test cases for each of these paths.

BIT, Dept. of ISE 2023-24 Page 46


Software Testing Laboratory (21ISL66)

Below is the program graph of binary search code.

BIT, Dept. of ISE 2023-24 Page 47


Using the program graph we derive (Decision-to-Decision) DD path graph for
Binary search program

Program Graph Nodes DD – Path Name


First 5
A 6,7,8,9,10
B 11
C 12,13,14
D 15,16,17
E 18
F 19,20
G 37
H 21
I 22,23,24,25,26,27
J 28
K 29.30,31
L 32,33,34,35
M 38
N 40
O 41

The cyclomatic complexity of a connected graph is provided by the formula V(G) = e – n +


2p. The number of edges is represented by e, the number of nodes by n and the number of
connected regions by p. If we apply this formula to the graph given below, the number of
linearly independent circuits is:
Number of edges = 21

Number of nodes = 15

Number of connected regions = 1

21 – 15 + 2(1) = 4.
Software Testing Laboratory
Here we are dealing code level dependencies, which are absolutely incompatible with the
latent assumption, that basis path are independent. McCabe’s procedure successfully identifies
basis path that are topologically independent, but when these contradict semantic
dependencies, topologically possible paths are seen to be logically infeasible. One solution
to this problem is to always require that flipping a decision result in a semantically
feasible path. For this problem we identify some of the rules:
If node C not traversed, then node M should be traversed.

If node E and node G is traversed, then node M should be traversed.


If node I is traversed, then node N should be traversed.
Taking into consideration the above rules, next step is to find the basis paths.

According to cyclomatic complexity 4 feasible basis path exists:


P1: A, B, D, E, G, N, O if n value is 0.
P2: A, B, C, B, D, E, F, H, I, G, M, O key element found.
P3: A, B, C B, D, E, F, H, J, K, E, F, H, J, K, E, G, N, O key element not found.
P4: A, B, C, B, D, E, F, H, J, L, E, F, H, J, L, E, G, N, O key element not found.

BIT, Dept. of ISE 2023-24 Page 49


Software Testing Laboratory
DERIVING TEST CASES USING BASIS PATH TESTING

The last step is to devise test cases for the basis paths.

TEST CASES

TC Test Case Value array Expected Actual


ID Description of ‘n‘ elements key Output Output Status
Testing for
requirement 1 key not
1 Path P1 0 -- 5 found
Testing for Key found at
requirement 2 position
2 Path P2 4 2,3,5,6,7 5 3
Testing for
requirement 2 key not
3 Path P3 3 1,2,5 6 found
Testing for
requirement 2 key not
4 Path P4 3 1,2,5 1 found
Testing for Key found at
requirement 2 position
5 Path P4+P2-P1 5 1,2,4,6,7 2 2
Testing for key found
requirement 2 at position
6 Path P3+P2-P1 5 4,5,7,8,9 8 4

6.5 EXECUTION & RESULT DISCUSION

Execute the program against the designed test cases and complete the table for Actual output
column and status column.

Test Report:

1. No of TC’s Executed: 06

2. No of Defects Raised:

3. No of TC’s Pass:

4. No of TC’s Failed:

BIT, Dept. of ISE 2023-24 Page 50


Software Testing Laboratory

6.6 SNAPSHOTS:

1. Snapshot to check successful search and not found key element.

2.Snapshot to check successful search and not found key element.

BIT, Dept. of ISE 2023-24 Page 51


Software Testing Laboratory
6.7 REFERENCES:

1. Requirement Specification
2. Assumptions

EXECUTION STEPS IN LINUX

1. Open Terminal
2. Then open VI –Editor using the filename, following command will shows that

[root@localhost ~]# vi Triangle.c

3. Write the Suitable code for the given program

4. Then compile and execute the program using the command;

[root@localhost ~]# cc triangle.c

5. Then execute the command;

[root@localhost ~]# ./a.out

6. Enter the suitable input for the program.

7. Then will get the suitable output.

BIT, Dept. of ISE 2023-24 Page 52

You might also like