Black box testing which is also known as specification based testing, is a software testing concept which focusses upon the apparent behaviour of a software product in response to inputs and events. Black box testing verifies that the software under test responds to inputs in a manner which is compliant to the software's requirements specifications.
The term black box is commonly understood to mean a system which is known to its user only in terms of its inputs and outputs. The phrase black box in the term black box testing describes a software system which the tester provides with input data and test actions in order to assess whether or not the system responds with the expected output or behaviour. The tester, while executing a black box test is concerned only with results and not with the software system's internal processing.
If a black box test was carried out against software which was based on the most inefficient code ever written, but happened to produce the correct numbers, within the expected timeframe and did not overload the system, the test would be seen as a pass.
For example, the tester could be a given an web application with two input boxes and an OK button. The requirements spec states that a user should be able to enter a number into each box and click the button to display the result of multiplying those two numbers together. A simple black box test would inlvolve the tester entering numbers into each box, pressing the button and checking that the result displayed is equal to the product of the two numbers entered. The software however was coded in such a way that the two numbers were passed through a loop which incremented them by 1, a million times, writing the new value to a text file and a remote database after each iteration. The code would then subtract 1million from the values and then multiply them together before displaying the result on the screen. The tester would pass this test so long as the result on sccreen was correct, was displayed within a second or so and did not cause a significant increase in CPU or memory usage on the client or the server.
This outrageous example does not mean that black box testing is flawed. It illustrates the importance of thourough testing. If the tester was scrupulous enough to monitor server disk usage, he would have noticed a reduction in spare disk capacity every time the simple test was carried out. This would prompt a chat with the development team who would then most likely have some strong words with the developer who wrote such horrendous code in the first place before making the necessary changes.
The key to successful black box testing is therefore to ensure that you
Black box testing or specification-based testing as currently defined by the official testing standard ISO/IEC/IEEE 29119-4, consists of ten software testing techniques.
These will be discussed in future posts.
by Herb Williams