What is Software Testing
When a software developer writes code, their change should be tested to ensure that the code meet the standards of quality set for the code base. The act of software testing is building test cases and using software testing techniques that verify the software reaches consumers without defect. Software testing may also identify unforeseen errors, use cases or missing requirements. Software testing can be done in a variety of ways, but the two primary categories are white box testing and black box testing. Each testing methodology tests the same code in different ways, and are tested using different techniques and tools, shown below. In this article I will define what is black box testing, what is being testing, black box testing techniques and how to do black box testing. Finally, I’ll discuss some tools used in this method of testing.
what is black box testing
Black box testing is a software testing method in which testing is conducted without looking at the code, code structure or architectural details of the code.
- Relies on the specifications of the software. Requirements can often be defined by the product owner.
- Focuses on inputs to the system, while measuring expected outputs.
- Can be either functional or non-functional testing
what is being tested
There are three primary types of testing used during black box testing: functional testing, non-functional testing and regression testing.
- Functional testing – testing the functional requirements of an application. Functional requirements describe how the product is designed to behave.
- Non-functional testing – non-functional requirements are best described as working agreements between software development teams. Examples include user experience (UX) testing, performance testing, and scalability testing.
- Regression testing – regression testing involves testing the entire system of an application which verifies changes made to code did not cause unexpected defects on the rest of the application
There is often confusion between functional and non-functional requirements, here’s an easy way to discern between the two:
There are many types of black box testing techniques, but here are three that I use the most, and I think are the most used industry-wide.
- Equivalence class testing is used to minimize the number of possible test cases to an optimal level while maintaining a reasonable code coverage.
- Boundary Value testing allows a tester minimize test cases by focusing on minimum and maximum input values.
- Decision Table Testing is a matrix-based testing technique that allows a tester to input cause and expected effect.
how to do black box testing
Below are some standard and over-simplified steps on how to do this type of testing.
- Gather the business requirements for the feature of the application.
- Determine the expected results for expected specific inputs.
- Determine the expected results for unexpected specific inputs.
- Construct manual test cases.
- Execute manual test cases.
- Construct automated User Interface (UI) tests based on manual tests cases.
black box testing tools
Below is a selection of testing tools, though there are others. The tools listed below are tools I have familiarity with or have used in my day job.
- Any Selenium-based framework used for end-to-end User Interface (UI) testing. I mostly use Katalon today, but in the past we have employed Protractor and Test Architect, among others.
- Postman – designed specifically for API testing
- Cypress – end-to-end UI test tool that does not use the Selenium-based framework
We chose to adopt Katalon for our UI end-to-end tests, and in this article you can see the why and how. For further reading, you can read my article on white box testing. If you received some added value from my post, please like and follow us on Facebook, Twitter, and LinkedIn, or subscribe to jasonofflorida.com.