Before these individual approach can be explained, It is important to know what black box testing is.
Black-box testing is a software testing method antonymous to white-box testing. The black-box is also known as Behavioral testing/functional testing/closed-box testing. It is a method of analyzing the functional and non-functional aspects of software. The focus of the software tester does not involve internal structure/implementation and design of the system involved. This means that the software tester does not necessarily need to have knowledge of programming and does not need to have access to the code. Black-box testing was developed so that it can be applied to customer requirement analysis and specification analysis. During the execution of testing the black-box software, Software tester selects a set of valid and invalid inputs and looks for valid output response.
According to ANSI/IEEE1059 standard – “Software testing is a process of analyzing a software item to detect the differences between existing and required conditions (i.e: defects) and to evaluate the features of the software item. The approaches to software testing include Black-box testing, White-box testing and grey-box testing.”
Examples of Scenarios The Applies Simple Black-Box Testing Includes:
These few examples are used to paint a vivid picture of what Black-box testing implies,
Using a Google search engine, a software tester types some texts into the inputs space provided, this server as the input. The search engine collects the data, processes it using the algorithm developed by Google programmers and then outputs the valid result or output that corresponds to the input.
Same applies to a Facebook chatting interface, When the bearer of the information inputs the information into the chat box and sends, the information is processed and sent to the receiver. The receiver from his end retrieves the information and vice versa.
Black-box testing can be used in any software system you want to test, such as a database like Oracle, a mathematical software like Excel and MATLAB, an operating system like windows and Linux and any other custom native or web based or mobile application. Emphasis is laid on the input and output of the software with no interest on the code.
Types of Black-Box Testing:
There are many types of black-box testing used in software testing which involves many procedures during implementation, we focus on the prominent ones.
Functional Testing
This type of black-box testing involves only the input and corresponding valid output analysis. It is mainly done to determine the functionality and behavior of the system. The software testers focus on answering the question ‘Does this system really do what it claims to do?’
This test focuses on answering the questions ‘how efficient is this system in carrying out its functions?’. It focuses on the non-functional requirements of the system such as performance, scalability and usability which are not related to black-box testing.
Few Major Types of Non-Functional Testing:
Usability testing
Load testing
Performance testing
Compatibility testing
Stress testing
Scalability testing
Regression Testing
Whenever the internal structure of the system is altered regression testing is carried out to ensure existing functionality & behavior is working as expected. The alteration can mean when the system undergoes debugging, code fixes, upgrades or any other system maintenance processes. The software tester makes sure the new code does not change the existing behavior.
The black-box testing method is applicable to various levels of software testing such as:
This Diagram Represents Levels of Black-Box Testing
Integration testing: in this level of software testing individual software are combined by the tester and tested as a group using black-box testing. This exposes fault experienced in the interaction between the integrated units.
System testing: in this level of software testing a fully complete software is tested to evaluate the compliance with the specified requirements proposed for the system.
Acceptance testing: In this level of software testing the acceptability of the system is tested. Here the software tester checks whether the system complies with the commercial requirement. The user needs and requirement are checked to know whether they are acceptable before delivery.
The higher the level of the black-box testing, and hence the bigger and more complex the system is the more the black-box testing that is applied.
There are many approaches use in designing black-box testing the following are but a few of them:
This diagram Represents Techniques in Black-box testing
Equivalence Partitioning or Equivalence class testing: in this software design technique the software tester divides all the inputs into equivalence classes and pick valid and invalid data from each class, a selected representative is used for the whole as a test data. The selected data is now used to carry out the black-box testing. This technique helps to minimize the number of possible test cases to a high level that maintains reasonable test coverage.
Boundary value analysis: it is a software design technique where the functional tester while carrying out the testing determines boundaries for input values. After determining the boundaries selects inputs that are at the boundaries or just inside or outside the boundaries, and uses it as test data. The test data is now used for carrying out the black-box testing.
Cause-effect graphing: in this software design technique software testers identifies the causes (valid or invalid input conditions) and effects (output conditions). This result in the production of a cause-effect graph, and Generation of test cases accordingly.
Error guessing: this is an example of an experience-based testing in which the tester uses his experience about the application and functionalities to guess the error-prone areas
Others include:
Decision table testing
Comparison testing
Black-Box Testing Steps
Black-box testing involves some generic steps carried out by testers on any type of Black-box.
The requirements and specifications are provided for the systems and they are thoroughly examined.
The software tester chooses both the valid inputs (the positive test scenarios) and the invalid inputs (the negative test scenarios). He tests the valid input to check whether the SUT processes them correctly then the invalid inputs to know whether they are being detected by the system.
The expected outputs are retrieved for all the inputs.
The software tester then constructs test cases with all the selected inputs.
The constructed test cases are executed.
Actual outputs from the SUT are compared with the expected outputs to determine if they comply with the expected results.
If there is any defect in the results they are fixed and the regression test is carried out.
Black-Box Testing and Software Test Life Cycle (STLC)
Software test life cycle (STLC) is the life cycle of a black-box testing and it is relative to the stages of software development. The cycle continues in a loop structure until a perfect and satisfying result devoid of defects are achieved.
Diagram showing software development life cycle for Black-box testing:
Requirement: This is the stage where the requirements and specifications needed by the software tester are gathered and examined.
Test planning and Analysis: In this stage the possible risks and mitigations associated with the project are determined.
Design: This stage allows scripts to be created on the basis of the software requirements.
Test execution: the prepared test cases are executed and if there is any deviation between the actual and expected results they are fixed and re-tested. The cycle then continues.
Tools Used in Black-Box Testing
The main tools used in black-box testing includes records and playback tools. These tools are mainly used for regression testing. When a defected system undergoes bug fixing, there is a possibility that the new codes will affect the existing codes in the system. Applying regression analysis with the records and playback tools helps to checkmate and fix errors.
These record and playback tools record test cases in form of scripts like TSL, VB script, JavaScript, Perl etc.
Advantages and Disadvantages of Black-Box Testing
Advantages:
There is no technical or programming language knowledge is required. The software tester does not need to have any knowledge of the internal structure of the system. He is required to access only the functionality of the system. This is like being in the user’s shoe and thinking from the user’s point of view.
Black-box testing is more effective for large and complex applications.
Defects and inconsistency in the system can be identified easily so that they can be fixed.
The test cannot be compromised because the designer, programmer, and tester are independent.
Tests are carried out as soon as the programming and specifications are completed.
Disadvantages
The test will not be necessary if the software programmer has already run the test case.
The tester may ignore possible conditions of scenarios to be tested due to lack of programming and technical knowledge.
Complete coverage in cases of the large and complex project is not possible.
Testing every input stream is unrealistic because it would take a large amount of time; therefore, many program parts go untested.
Conclusion
Black-box testing is a significant part of the software testing technique that requires the verification of system functionalities. This help in detection of defect for fixing to ensure the quality & efficiency of the system. 100% accuracy cannot be achieved when testing software; this requires software testers to follow the correct procedure for the testing in order to achieve a higher result.
Leave a Reply