Home Software Testing Selenium Appium JMeter JUnit
IT EXPERTS
NEEDED
Make it in Germany
White Box Testing
The box testing approach of software testing consists of black box testing and white
box testing. We are discussing here 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 typeGame
of testing programming
Palacio Mumbai: skills are required to design test cases.
You’ve Never Seen A Bowli…
TheSponsored
primary goal ofZee
white
Alley box
Like
Zest testing
This Beforeis to focus on the flow of inputs and outputs
through the software and strengthening the security of the software.
The term 'white box' is used because of the internal perspective of the system. The
clear box or white box or transparent box name denote the ability to see through the
software's outer shell into its inner workings.
:
YOUR IT CAREER IN
GERMANY
FIND OUT MORE
ABOUT
EMPLOYMENT
OPPORTUNITIES IN
GERMANY.
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.
:
YOUR IT CAREER IN
GERMANY
FIND OUT MORE
ABOUT
EMPLOYMENT
OPPORTUNITIES IN
GERMANY.
Here, the test engineers will not include in fixing the defects for the following
reasons:
Fixing the bug might interrupt the other features. Therefore, the test engineer
should always find the bugs, and developers should still be doing the bug
fixes.
If the test engineers spend most of the time fixing the defects, then they may
be unable to find the other bugs in the application.
The white box testing contains various tests, which are as follows:
:
CHECK YOUR CAREER
OPTIONS
FIND OUT STEP
BY STEP HOW TO
START A CAREER
IN GERMANY.
Path testing
Loop testing
Condition testing
Testing based on the memory perspective
Test performance of the program
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.
Testing based on the memory (size) perspective
The size of the code is increasing for the following reasons:
:
The reuse of code is not there: let us take one example, where we have four
programs of the same application, and the first ten lines of the program are
similar. We can write these ten lines as a discrete function, and it should be
accessible by the above four programs as well. And also, if any bug is there,
we can modify the line of code in the function rather than the entire code.
The developers use the logic that might be modified. If one programmer
writes code and the file size is up to 250kb, then another programmer could
write a similar code using the different logic, and the file size is up to 100kb.
The developer declares so many functions and variables that might never
be used in any portion of the code. Therefore, the size of the program will
increase.
For example,
1. Int a=15;
2. Int b=20;
3. String S= "Welcome";
4. ….
5. …..
6. …..
7. ….
8. …..
9. Int p=b;
:
10. Create user()
11. {
12. ……
13. ……
14. ….. 200's line of code
15. }
In the above code, we can see that the integer a has never been called anywhere in
the program, and also the function Create user has never been called anywhere in
the code. Therefore, it leads us to memory consumption.
We cannot remember this type of mistake manually by verifying the code because of
the large code. So, we have a built-in tool, which helps us to test the needless
variables and functions. And, here we have the tool called Rational purify.
Suppose we have three programs such as Program P, Q, and R, which provides the
input to S. And S goes into the programs and verifies the unused variables and then
gives the outcome. After that, the developers will click on several results and call or
remove the unnecessary function and the variables.
:
This tool is only used for the C programming language and C++ programming
language; for another language, we have other related tools available in the market.
The developer does not use the available in-built functions; instead they write
the full features using their logic. Therefore, it leads us to waste of time and
also postpone the product releases.
Test the performance (Speed, response time) of the program
The application could be slow for the following reasons:
When logic is used.
For the conditional cases, we will use or & and adequately.
Switch case, which means we cannot use nested if, instead of using a switch
case.
:
As we know that the developer is performing white box testing, they understand that
the code is running slow, or the performance of the program is also getting
deliberate. And the developer cannot go manually over the program and verify which
line of the code is slowing the program.
To recover with this condition, we have a tool called Rational Quantify, which
resolves these kinds of issues automatically. Once the entire code is ready, the
rational quantify tool will go through the code and execute it. And we can see the
outcome in the result sheet in the form of thick and thin lines.
Here, the thick line specifies which section of code is time-consuming. When we
double-click on the thick line, the tool will take us to that line or piece of code
automatically, which is also displayed in a different color. We can change that code
and again and use this tool. When the order of lines is all thin, we know that the
presentation of the program has enhanced. And the developers will perform the
white box testing automatically because it saves time rather than performing
manually.
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.
White box testing follows some working steps to make testing manageable and easy
to understand what the next task to do. There are some basic steps to perform white
box testing.
:
Generic steps of white box testing
Design all test scenarios, test cases and prioritize them according to high
priority number.
This step involves the study of code at runtime to examine the resource
utilization, not accessed areas of the code, time taken by various methods and
operations and so on.
In this step testing of internal subroutines takes place. Internal subroutines
such as nonpublic methods, interfaces are able to handle all types of data
appropriately or not.
This step focuses on testing of control statements like loops and conditional
statements to check the efficiency and accuracy for different data inputs.
In the last step white box testing includes security testing to check all possible
security loopholes by looking at how the code handles security.
Reasons for white box testing
It identifies internal security holes.
To check the way of input inside the code.
Check the functionality of conditional loops.
To test function, object, and statement at an individual level.
Advantages of White box testing
White box testing optimizes code so hidden errors can be identified.
Test cases of white box testing can be easily automated.
This testing is more thorough than other testing approaches as it covers all
code paths.
It can be started in the SDLC phase even without GUI.
Disadvantages of White box testing
:
White box testing is too much time consuming when it comes to large-scale
programming applications.
White box testing is much expensive and complex.
It can lead to production error because it is not detailed by the developers.
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 or
Flow instructions of the program through a control structure. The control
Testing 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 The test engineers perform the black box
box testing. testing.
To perform WBT, we should have an To perform BBT, there is no need to have
understanding of the programming an understanding of the programming
languages. languages.
In this, we will look into the source In this, we will verify the functionality of
code and test the logic of the code. the application based on the requirement
specification.
In this, the developer should know In this, there is no need to know about the
about the internal design of the internal design of the code.
code.
← Prev Next →
Youtube For Videos Join Our Youtube Channel: Join Now
Feedback
:
Send your Feedback to feedback@javatpoint.com
Help Others, Please Share
Learn Latest Tutorials
Splunk tutorial SPSS tutorial Swagger tutorial
Splunk SPSS Swagger
T-SQL tutorial Tumblr tutorial React tutorial
Transact-SQL Tumblr ReactJS
:
Regex tutorial
Regex Reinforcement R Programming
Learning
RxJS tutorial
RxJS React Native Python Design
Patterns
Keras tutorial
Python Pillow Python Turtle Keras
Preparation
Aptitude Verbal Ability
Aptitude Reasoning Verbal Ability
Interview Company
Questions Questions
Trending Technologies
:
AWS Tutorial Selenium tutorial
Artificial AWS Selenium
Intelligence
Hadoop tutorial ReactJS Tutorial
Cloud Computing Hadoop ReactJS
Data Science Angular 7 Blockchain
Git Tutorial DevOps Tutorial
Git Machine Learning DevOps
B.Tech / MCA
DBMS tutorial DAA tutorial
DBMS Data Structures DAA
Operating System Computer Network Compiler Design
:
Computer Discrete Ethical Hacking
Organization Mathematics
html tutorial
Computer Graphics Software Web Technology
Engineering
Automata Tutorial
Cyber Security Automata C Programming
C++ tutorial Java tutorial
C++ Java .Net
Python tutorial List of Programs
Python Programs Control System
Data Mining Data Warehouse
:
: