It is not possible to guarantee that all software works correctly, without the presence of bugs, since many systems have a large number of states with complex activities and algorithms.
Software testing began to gain momentum in the 90s when companies matured and started thinking about reducing support and rework costs. With a new paradigm also emerging, Test Analysts want to prove that something doesn't work?
There is a certain rivalry between Developers and Testers, although each of us has a different point of view, it is essential to know the importance of Testing.
Currently software testing can be seen as a part of the software quality process. Application quality can, and often does, vary from system to system.
The main software quality attributes are divided into Functionality, Reliability, Usability, Efficiency, Maintainability and Portability and some subcategories as can be seen in the figure below.
Photo 1.1 – ISO 9126 – general
Test Phases
The Software Testing phases are divided into 4 stages: Unit Tests, Integration Tests, System Tests and Acceptance Tests. Below the characteristics of each one:
Unit Testing
It is the lowest stage of the testing scale and is applied to the smallest code components created. They are applied individually to each unit of the system. It uses white box testing techniques for its execution, and is normally carried out by the programmer himself.
Integration Testing
It is the process of verifying the interaction between components. For this phase to be executed, the modules must have already passed unit tests. More emphasis will be placed on the interface between the modules being analyzed.
System Test
At this stage the software is fully tested. The tests that are applied are of the black box type. At this stage, compliance with the requirements is verified, simulating a real production environment.
Acceptance Tests
Also called Alpha and Beta testing, they are carried out to allow the end user to validate all requirements. At this stage, the customer confirms whether all their needs have been met by the system.
Failures can arise for a variety of reasons, which is why testing becomes increasingly important and essential to developing high-quality software and ensuring smooth operations.
In the next posts we will learn about the characteristics of each test, their functionality and some implementation examples in Java. Follow along!
Did you like this post? Leave your comment