0% found this document useful (0 votes)
25 views6 pages

White Box Testing

Uploaded by

bommaiah
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views6 pages

White Box Testing

Uploaded by

bommaiah
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 6

White Box Testing

The white box testing which also known as glass box is testing, structural
testing, clear box testing, open box testing and transparent box testing.

It tests internal coding and infrastructure of a software focus on checking of


predefined inputs against expected and desired outputs.

It is based on inner workings of an application and revolves around internal


structure testing. In this type of testing programming skills are required to design
test cases.

The primary goal of white box testing is to focus on the flow of inputs and
outputs through the software and strengthening the security of the software.

Developers do white box testing. In this, the developer will test every line of the
code of the program. The developers perform the White-box testing and then
send the application or the software to the testing team, where they will perform
the black box testing and verify the application along with the requirements and identify the bugs
and sends it to the developer.

The developer fixes the bugs and does one round of white box testing and sends
it to the testing team. Here, fixing the bugs implies that the bug is deleted, and
the particular feature is working fine on the application.

The white box testing contains various tests, which are as follows:

o Path testing
o Loop testing
o Condition testing

Path testing
In the path testing, we will write the flow graphs and test all independent paths.
Here writing the flow graph implies that flow graphs are representing the flow of
the program and also show how every program is added with one another as we
can see in the below image:
And test all the independent paths implies that suppose a path from main() to
function G, first set the parameters and test if the program is correct in that
particular path, and in the same way test all other paths and fix the bugs.

Loop testing
In the loop testing, we will test the loops such as while, for, and do-while, etc. and
also check for ending condition if working correctly and if the size of the
conditions is enough.

For example: we have one program where the developers have given about
50,000 loops.

1. {
2. while(50,000)
3. ……
4. ……
5. }

We cannot test this program manually for all the 50,000 loops cycle. So we write
a small program that helps for all 50,000 cycles, as we can see in the below
program, that test P is written in the similar language as the source code
program, and this is known as a Unit test. And it is written by the developers only.

1. Test P
2. {
3. ……
4. …… }
As we can see in the below image that, we have various requirements such as 1,
2, 3, 4. And then, the developer writes the programs such as program 1,2,3,4 for
the parallel conditions. Here the application contains the 100s line of codes.

The developer will do the white box testing, and they will test all the five
programs line by line of code to find the bug. If they found any bug in any of the
programs, they will correct it. And they again have to test the system then this
process contains lots of time and effort and slows down the product release time.

Now, suppose we have another case, where the clients want to modify the
requirements, then the developer will do the required changes and test all four
program again, which take lots of time and efforts.

These issues can be resolved in the following ways:

In this, we will write test for a similar program where the developer writes these
test code in the related language as the source code. Then they execute these
test code, which is also known as unit test programs. These test programs
linked to the main program and implemented as programs.

Therefore, if there is any requirement of modification or bug in the code, then the
developer makes the adjustment both in the main program and the test program
and then executes the test program.

Condition testing
In this, we will test all logical conditions for both true and false values; that is,
we will verify for both if and else condition.

For example:
1. if(condition) - true
2. {
3. …..
4. ……
5. ……
6. }
7. else - false
8. {
9. …..
10. ……
11. ……
12. }

The above program will work fine for both the conditions, which means that if the
condition is accurate, and then else should be false and conversely.

Test cases for white box testing are derived from the design phase of the
software development lifecycle. Data flow testing, control flow testing, path
testing, branch testing, statement and decision coverage all these techniques
used by white box testing as a guideline to create an error-free software.

Advantages of White box testing


o White box testing optimizes code so hidden errors can be identified.
o Test cases of white box testing can be easily automated.
o This testing is more thorough than other testing approaches as it covers all
code paths.
o It can be started in the SDLC phase even without GUI.

Disadvantages of White box testing


o White box testing is too much time consuming when it comes to large-scale
programming applications.
o White box testing is much expensive and complex.
o It can lead to production error because it is not detailed by the developers.
o White box testing needs professional programmers who have a detailed
knowledge and understanding of programming language and
implementation.

Techniques Used in White Box Testing


Data Flow Data flow testing is a group of testing strategies that examines the
Testing control flow of programs in order to explore the sequence of
variables according to the sequence of events.

Control Control flow testing determines the execution order of statements


Flow or instructions of the program through a control structure. The
Testing control structure of a program is used to develop a test case for the
program. In this technique, a particular part of a large program is
selected by the tester to set the testing path. Test cases
represented by the control graph of the program.

Branch Branch coverage technique is used to cover all branches of the


Testing control flow graph. It covers all the possible outcomes (true and
false) of each condition of decision point at least once.

Statement Statement coverage technique is used to design white box test


Testing cases. This technique involves execution of all statements of the
source code at least once. It is used to calculate the total number of
executed statements in the source code, out of total statements
present in the source code.

Decision This technique reports true and false outcomes of Boolean


Testing expressions. Whenever there is a possibility of two or more
outcomes from the statements like do while statement, if statement
and case statement (Control flow statements), it is considered as
decision point because there are two outcomes either true or false.

Difference between white-box testing and black-box


testing
Following are the significant differences between white box testing and black box
testing:

White-box testing Black box testing

The developers can perform white box testing. The test engineers perform the
black box testing.

To perform WBT, we should have an To perform BBT, there is no


understanding of the programming languages. need to have an understanding
of the programming languages.
In this, we will look into the source code and test In this, we will verify the
the logic of the code. functionality of the application
based on the requirement
specification.

In this, the developer should know about the In this, there is no need to know
internal design of the code. about the internal design of the
code.

You might also like