Black box testing is a software testing method in which the internal implementation of a function is hidden to the testers. This means the tester does not know how the application code works.
Imagine you start testing a new website without knowing its internal structure. You test the website pages through a browser where you provide inputs and verify the output against the expected outcome. In the eye of software testers, this website is like a black box where the inside is not visible. That is why this method is called Black Box Testing.
Another example of Black Box Testing is Dynamic Application Security Testing, which tests the security of an application by attacking it with multiple methods without source code access, and then reporting any successes or failures.
This testing method is helpful in finding incorrect or missing functions, interface-related visual errors, behaviour issues, and initialisation and termination errors. Black Box Testing is flexible, and it is can be adapted to specific software requirements and specifications.
Types of Black Box Testing
1. Functional Testing
Functional Black Box Testing is related to the functional requirements of a software system. It is done by looking at what the software is supposed to do and ensuring it does that job correctly. It is the simplest type of Black Box Testing.
2. Non Functional Testing
While functional testing looks at an application's execution, non-functional testing looks at its overall performance. It is a type of software testing that evaluates the software application's reliability, performance, usability, etc. A good example of a non-functional test is checking how many people can simultaneously use a website without crashing or giving errors.
3. Regression Testing
Even a small change can have unexpected consequences whenever developers change or modify their software. Regression testing is where an existing software application is tested to ensure that a new change or addition has not broken any existing functionality.
Black Box Testing Techniques
Black Box Testing is like any other testing method and can be challenging. There are several techniques software testers can use to make their lives easier and help catch major bugs. Let's look at the most common testing techniques specifically for the black box.
1. State Transition Testing
We use state transition testing if the system can be in a finite number of different states or if the transition from one transition state to another is determined by strict rules. Let me explain with the help of an example. The action of withdrawing Rs. 10000 from an ATM machine depends on how much money is in your account. Let's say you go to an ATM machine and withdraw Rs. 10000 from an account that only has Rs. 12000. The ATM machine will dispense the money for the first transaction. But after 10 minutes, if you insert your card into the ATM and try withdrawing again, it will give you an error because your account does not have enough money. So, state transition testing is used if the system can process a continuous stream of different inputs and conditions without breaking.
2. Equivalence Partitioning
Equivalence Partitioning is a Black Box Testing technique where test cases are designed to exercise one representative member of each partition. For example, if you need to test number inputs in your application, you should test both negative and positive numbers. You can do this by using inputs from these two partitions by selecting minus (-) 1 and plus (+) 1. This technique minimises the number of possible test cases to an optimum level while maintaining reasonable test coverage.
3. Boundary Value Analysis
The Boundary Value Analysis testing technique is focused on testing the boundary values of any input field. This techniques checks if a specified range of values can be processed by the system or not. This technique is very useful to minimise the number of test cases and is most suitable for systems where the input must be within a certain range.
4. Decision Table
The Decision Table testing technique visualises all the actions that can be performed depending on given conditions. In this technique, we create all possible decisions for the user and make a table containing all possible scenarios. Some of the decisions can pass or fail at the end of the test. Applications that use Decision Table testing will face a very low amount of unexpected inputs.
When you create your test cases or checklist, you need to consider these techniques and add cases to ensure that you have sufficient test coverage of your application. You don't need to know all of these techniques by heart, but it's important to learn the common language of Black Box Testing to discuss testing processes with other engineers. In due time, you will write test cases without even thinking about these techniques.