Black-box and White-box Testing

Black-box and White-box Testing Banner

When testing software and programs there are many different types of tests used. Two common test procedures are black-box testing and white-box testing. These formats are used and applied at all levels of testing, including unit, integration, system and acceptance tests.

Black-box testing assesses the functional behavior of the program in terms of the external world. This method can be very effective for external research of software by monitoring and controlling input/output information. In software development, it is possible to study the behavior of systems – that is, a system’s reactions to various external influences – and at the same time abstract from their internal structure. With this test, specific knowledge of the application’s code/internal structure, and even general programming knowledge, is not required. The tester is only aware of what the software is supposed to do – not how it does it. In other words, when the tester enters a certain input, he gets a certain output – without being aware of how the output was produced in the first place

White-box testing is the opposite of black box testing. White-box testing allows access to source codes of software. This method can be very effective when it is necessary to localize a known bug and fix it. “White box” is a test of code for the program logic and correctness of its work from the perspective of a compiler language in which it was written. The strategy of testing with White Box – also known as the strategy of testing control logic of the program – allows the tester to check the internal structure of the program. While this testing can be done at all levels, it is most commonly employed in unit testing.

Working with a current client, we used black-box testing for an application across Android, iOS, and Windows mobile systems. A simple and effective number of unit tests were constructed to be sure that the server worked in the manner expected. The server developers then used white box testing to test the server using unit tests for each platform. The combination of black box and white box testing was able to give good results.

This dual use of white-box and black-box testing in tandem with unit testing helps control the time and labor spent testing. A tester can run automatic testing in the Black Box Mode and it will be able to detect that something is wrong. Instead of many hours of manual testing and using very expensive resources like human testers to manually check every function, a regression test is created through white and black box testing and is able to check for errors much more quickly.

June 29, 2012