White Box Testing Black Box Testing.
White box testing is also known as glass box, clear box, transparent box testing.
White box testing tests the internal code and infrastructure of an application to focus on checking of previously defined inputs for expected or desired outputs. This testing is based on internal working of an application or software. It revolves around internal coding testing.
In white box testing, coding skills are required for designing the test cases. The primary objective of white box testing is to focus on the flow of the software. The inputs and output flow through the application and security of the software are the main objectives of white box testing.
The word ‘white box' is used due to the internal perspective of the software. The clear box or transparent box name means the ability to see the internal code or internal working of the software from the outer covering.
The test cases of white box are to be derived from the designing phase of SDLC.
Steps of white box testing:
The first and foremost step it to design all the test cases and test scenarios then to prioritise them according to criticality.
Next step involves the study of the code or script at the runtime to find out the recourse utilisation. The areas of code that are not accessed. The time taken by various function and methods and etc.
Next step tests the internal routines of the software. To check Internal routines such as private methods or interfaces are able to handle the type of data appropriately or not.
Next step focus on the testing of the control statements like for loops and if else conditional statements to find the efficiency and accuracy of the data inputs.
The last step includes testing of the security of the application. To check all the possible loopholes of the application.
Techniques Used in White Box Testing:
Data Flow Testing: This testing is testing a group of testing strategies which examines the flow of softwares methods in order to explore the sequence of variables as per the flow of events.
Control Flow Testing: This testing determines the sequence of execution of statements or instructions of the software through controled structure.
Branch Testing: Branch testing is used to find coverage all the branches of the software. A control flow graph is prepared to test this.
Statement Testing: Statement testing technique have execution of all the lines of the source code at least once in the execution flow.
Decision Testing: Decision Testing is done when there are chances of two or more outcome from the function. For example in do while or if statements, they are considered as decision point due to tow outcome that is true or false.
Black Box Testing:
Black box testing examines the functionality of software or application without the knowledge of the internal structure or code of the software.
The main source of black box testing is the requirements provided by the customer.
In black box testing the tester selects a functionality and provide the input to find out the output of the functionality, the output should be according to the desired or expected output. If the functionality gives desired output it is passed else failed.
The tester reports the outcome to the dev team. After completion of the test cycle, if the bugs are major then dev team corrects them and provide a new release.
Techniques Used in Black Box Testing:
Decision Table: Decision Table Technique is an approach in which various inputs are tested for their respective behaviour of the software. The various inputs and their behaviour is maintained in a decision table.
Boundary Value Analysis: Boundary Value Analysis Technique is used to test at the boundary values. The upper and lower limit of a variable are considered as boundary values.
Equivalence Partitioning: Equivalence partitioning is a technique of testing which divides the input data into different partitions of valid and invalid values for a variable. The behaviour of the software for all the partition values is tested.