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

Testing Techniques

The document discusses different software testing techniques including black box testing and white box testing. Black box testing focuses on inputs, outputs, and functional requirements without considering the internal structure of the program. It uses techniques like equivalence partitioning and boundary value analysis. White box testing aims to ensure all statements and conditions have been executed by considering the program structure and logic. It uses techniques like cyclomatic complexity to determine the number of independent paths.

Uploaded by

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

Testing Techniques

The document discusses different software testing techniques including black box testing and white box testing. Black box testing focuses on inputs, outputs, and functional requirements without considering the internal structure of the program. It uses techniques like equivalence partitioning and boundary value analysis. White box testing aims to ensure all statements and conditions have been executed by considering the program structure and logic. It uses techniques like cyclomatic complexity to determine the number of independent paths.

Uploaded by

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

Software Testing Techniques

1
Software Testing Techniques
• Black Box Testing
• White Box Testing

2
Black Box Testing
Knowing specified function that a product has been designed
to perform, tests can be conducted that demonstrate each
function is fully operational while at the same time searching
for errors in each function.

3
Black Box
Testing
Focus on interfaces

Inputs and outputs

Integrity of external information e.g., a database

4
White-Box
Testing

... our goal is to ensure that all


statements and conditions have
been executed at least once ...
5
White-Box Testing
Why Cover?

logic errors and incorrect assumptions


are inversely proportional to a path's
execution probability

we often believe that a path is not


likely to be executed; in fact, reality is
often counter intuitive

typographical errors are random; it's


likely that untested paths will contain
some

6
White-Box Testing

Cyclomatic Complexity:
It is a software metric that provides a quantitative measure
of the logical complexity of a program

“The value computed for Cyclomatic complexity defines the


number of independent paths in the basis set of a program
and provides us with an upper bound for the number of tests
that must be conducted to ensure that all statement have
been executed at least once”.

7
White-Box Testing
Cyclomatic Complexity

V(G) of a flow graph G:

Number of simple predicates (decisions) + 1

or

V(G) = E-N+2 (where E are edges and N are nodes)

or

Number of enclosed areas + 1

In this case V(G) = 4

8
Example
while(value[i] != -999.0 && totinputs < 100)
{ totinputs++;
if(value[i] >= min && value[i] <= max)
{ totvalid++;
sum = sum + value[i];
}
i++;
}

9
1 2
while(value[i] != -999.0 && totinputs < 100)

{ totinputs++;
3 4
if(value[i] >= min && value[i] <= max)

{ totvalid++;

sum = sum + value[i]; 5

i++; 6

}
7

10
Cyclomatic Complexity:
V(G) = number of enclosed areas + 1 = 5
V(G) = number of simple predicates + 1 = 5
V(G) = edges - nodes + 2 = 10 - 7 + 2 = 5

11
Cyclomatic Complexity by Graph Matrix
1 2 3 4 5 6 7 Calculations
1 x x =2 = 2-1 = 1

2 x x =2 = 2-1 = 1

3 x x =2 = 2-1 = 1

4 x x =2 = 2-1 = 1

5 x =1 = 1-1 = 0

6 x =1 = 1-1 = 0

7 --- ---
Cyclomatic Complexity = 4 + 1 = 5
12
Independent Paths:
1.1-7 (value[i] = -999.0)
2.1-2-7 (value[i] = 0, totinputs = 100)
3.1-2-3-6-1-7
4.1-2-3-4-6-1-7
5.1-2-3-4-5-6-1-7

13
Black-Box Testing

Also called Behavioral Testing or Functional Testing

Focus on:
Functional Requirements of the software i.e. Inputs, Outputs
Structure of program is not considered

Black box testing is not an alternative to white box testing.


Different kind of errors are uncovered in each technique.

14
Black-Box Testing

requirements

output

input events

15
Black-Box Testing

Equivalence Partitioning:

Since exhaustive testing is not possible so:


Divide the domain of all the inputs into a set of equivalence classes

Example: Determine absolute value for integer


Two behaviors: 1. For positive integers
2. For negative integers

Two classes will be formed: One for positive integers


Second for negative integers

Similarly for valid and invalid inputs we have two classes


16
Equivalence Partitioning

If we have input condition: 0 < count < Max

Three behaviors:
1. valid in put i.e. count within range
2. upper bound (Invalid)
3. lower bound (Invalid)

Three classes will be formed:


One for valid inputs
Second for upper bound
Third for lower bound

17
Black-Box Testing
Boundary Value Analysis:

It is observed that programs that work correctly for a set of values in an equivalence
class, fail on some special values i.e. on boundaries.

We choose an input from equivalence classes that lies on the edge of class

Example: if range is 0.0 < x < 1 then test cases are:

Valid inputs: 0.1, 0.9


invalid inputs: 0, 1

18
Black-Box Testing

Boundary Value Analysis: A guide line

 If an input conditions specifies a range

 If an input condition specifies a number of values

 Same guideline for output conditions

 Boundaries of data structures are also tested.

19
Practice Quiz
void fib (int x)
{
int a=0,b=1,sum=0;
for(int i=1;i<=x;i++)
{
sum=a+b;
cout<<sum<<"\t";
a=b;
b=sum;

}
}

20
Solution
Cyclomatic Complexity:
Number of regions = 2
Number of predicates = 1+1 = 2
Edges – Nodes + 2 = 5 – 5 + 2 = 2

1 2 3 4 5

21
Sample Quiz
#include <stdio.h>
int main()
{
int n, reversed = 0, remainder, original;
printf("Enter an integer: ");
scanf("%d", &n);
original = n;

while (n != 0)
{
remainder = n % 10;
reversed = reversed * 10 + remainder;
n /= 10;
}

if (original == reversed)
printf("%d is a palindrome.", original);
else
printf("%d is not a palindrome.",
original);

return 0;
}
22
4

1 2 3 6

Cyclomatic Complexity:
Number of regions = 3
Number of predicates = 2+1 = 3
Edges – Nodes + 2 = 7 – 6 + 2 = 3

23
Practice Question
Public boolean find(int key)
{ int bootom = 0; int top = elements.length-1; int last index = (bottom + top)/2; int mid;
boolean found = key == elements [lastIndex];
while ((bottom <= top) && !found )
{
mid = (bottom + top) / 2;
found = key == elements[mid];
if (found)
{
lastIndex = mid;
}
else
{
if (elements[mid] < key)
{
bottom = mid +1;
}
else
{
top = mid – 1;
}

}
}

24

You might also like