System testing approach: Black Box Testing

May 24
07:11

2008

Sam Miller

Sam Miller

  • Share this article on Facebook
  • Share this article on Twitter
  • Share this article on Linkedin

This method tests a system without any prior knowledge of the source code or the internal structure. Thus, it is said that it treats the system as a “black box”. While the tester does not have the knowledge of the internal structure of the application in consideration, one mainly focuses on its functionality. Other terms that are almost always associated with this technique of testing is ‘behavioral testing’ where the use of the internal structure of the application is discouraged, if not forbidden. A good example would be: A person drives a car and hence knows how to drive it. What he doesn’t know is about the internal structure of the car.

mediaimage
Almost every aspect/phase of the Software Development and Testing life cycle finds application of Black box testing.The attempt is to find errors. These errors can be broadly categorized as: ·The user interface contains errors. ·The methods (functions) used are either syntactically incorrect or missing. ·The data structures used in the code are erroneous.·The external access to the database has errors·Performance errors·Initialization and termination of the various variables,System testing approach: Black Box Testing Articles functions etc.Some positives of using this technique are:·Since no prior knowledge of the coding and the internal structure of the application is required, testing can be performed by a non-technical person as well.·This method can be used for verification of contradictions (if any) between the actual system and the specifications.Some negatives of using this technique are:·There is always a possibility that a previously undefined path may come up during the testing process.·The test cases that need to be written for the testing process are time consuming and complex in nature.·The identification of inputs in a limited time domain is difficultSome of the methods of using this technique will be discussed now. The first one is ‘Graph Based Testing Methods’ in which the objects of which the application is build of , are identified and a graph is prepared. The object relationships are thus easily identified and test cases are then written for the discovery of errors. Generally a ‘Cause-Effect’ graph is made in which a cause is a distinct input condition and an effect is an output condition. Next is ‘Boundary Value Analysis’ whereby the systems that have tendency to fail on boundary are taken into consideration. Here, the extreme boundary values are chosen (randomly). Boundary values include maximum, minimum, typical values besides the error values. This method is efficient only for variables that have fixed values (boundary values). Also, the technique of ‘Robustness testing’ is co-related with BVA (boundary value analysis) in which a value slightly greater than maximum and a value slightly less than minimum are taken. Next is ‘Error Guessing’ which is based on the experience of a tester. It’s an art of guessing where errors can be hidden. As such there are no specific tools for writing the test cases. Next is ‘Comparison testing’ in which different versions of software are developed and checked for consistency. Reliability is the criterion that is crucial under this type of testing. The last method that we discuss is ‘Equivalence partitioning’ method which divides the input domain of the application into classes of data from which test cases can be derived for testing. If  the input condition specifies a range, one valid and one two invalid classes are defined. However if the input condition requires a specific value, one valid and two invalid equivalence classes are defined. Further, if an input condition specifies a member of a set, one valid and one invalid equivalence class is defined. Lastly, if an input condition is Boolean, one valid and one invalid class is defined.