Fundamental Information About Software Testing

Software test types and categories

Adem Catamak
5 min readFeb 14, 2024
Photo by Zan on Unsplash

Yazının Türkçe versiyonuna bu link aracılığıyla ulaşabilirsiniz.

What is Software Testing?

Software testing is the process of evaluating a software application or system to allow us to see whether the developed piece of code works as expected, whether it meets the performance criteria, whether the software complies with the software quality criteria, or whether different pieces of code can work together in harmony.

Tests, Tests Everywhere

Why software Testing is Important?

  • Thanks to systematic checks, errors can be detected at an early stage. Errors detected in the early stages have much lower resolution costs.
  • The behavior of the developed application in different scenarios can be determined through tests such as security, load, and stress testing.
  • It is ensured that the quality metrics of the developed code fragment remain within certain values. This way, maintenance and development costs can be kept lower.
  • Due to time spent for testing being shorter, errors being detectable in the early stages and additional development time for the application developed within quality standards being comparatively less, it will be easier to comply with the project timeline.
  • When all the above-mentioned advantages are combined together, a great advantage such as gaining the trust of internal and external customers will emerge as a result.

Software Testing Technics

White Box vs Black Box Testing

White Box Testing / Glass Box Testing

In this method, test scenarios are created by examining the developed code. For this reason, it should be done by people who have access to the developed code and can read and understand it. Tests such as unit testing and integration testing are examples of this technique.

Black Box Testing

Black box testing is testing done without seeing the developed piece of code. It is done without being aware of information such as the language used, the development method, the libraries and tools used. Certain inputs are given to the system and it is checked whether the result is as expected. Tests such as load test, stress test, security test can be given as examples of tests prepared with this technique.

Software Testing Categories

1.A — Functional Tests

Functional tests are tests that check whether the developed piece of code works as expected. Through these tests, it is checked whether the expected results are obtained in response to the inputs given to the system.

1.B — Non-Functional Tests

In this type of testing, features of the application other than how it works are tested. The criteria such as performance and security can be given as example features. Test types such as load testing, stress testing and usability testing fall into the non-functional testing category.

2.A — Static Tests

It is the name given to the types of tests performed without running the code. Code review can be given as an example of this type of testing. These tests can be done in the early stages without waiting for development to be completed. In this way, errors can be detected before they occur.

2.B — Dynamic Tests

In such tests, it is necessary to wait for the code development to be completed. After development is completed, the code is run and the created scenarios are executed on the run code. It is aimed to detect errors made during development.

Examples of Software Testing Types

Unit Test

It is a testing method that checks unit operations in the developed piece of code independently of other components. The purpose of this testing method is to check whether the developed piece of code does its job correctly.

Integration Test

It is another form of testing, like unit testing, that checks whether the developed piece of code produces correct outputs. In this method, we focus on checking whether the units that we know to work in isolation as a result of unit testing can work together in harmony.

Unit Test vs Integration Test

User Acceptance Test

User acceptance tests are performed to test the ease of use of a product or service and its compliance with user expectations. In this testing method, it is observed how easily operations can be carried out by using the task list.

Performance Test

Performance tests are performed to determine how efficiently the product or system operates under a certain load and under what conditions it fails.

Stress Test

Similar to performance tests, these are tests performed by running the system under load. In this type of testing, the behavior of the system under overload is examined by giving more load than the system can handle, and its performance under overload is measured.

Security Test

Security tests are tests performed to detect security vulnerabilities of the product or system.

I hope it has been a useful post. You can click on this link to browse my other articles.