What are Test Levels in Software Testing?
・Test levels are groups of test activities that are organized and managed together
・Each test level is an instance of the Test process
・Test levels are related to other activities within the software development lifecycle
・There are 4 major test levels: Unit, Integration, System, Acceptance
So where does each Test Level take part in the Testing process?
Unit Testing or Component Testing, Module Testing - this test focuses on components that are separately testable. And the person who responsible for this level is the developer.
Once the developer develops a piece of code, he/she will begins writing tests for this piece of code.
Integration Testing focuses on interactions between components or system.
There are 2 types of Integration Testing:
- Component integration testing
Components integration testing focuses on integration between components. This test also handled by developer. After the developer finishes running tests on each unit or module alone, he/she will begins to test them together.
- System integration testing
System integration, for example that we have a big project of web service and this project consists of many systems: front end, back end and database. Each one of them considered a system.
The integration of these systems together is called system integration testing. And the person who responsible for this test is tester.
System testing tries to test the system as a whole. And this is the most important test levels for tester.
System testing often produces information that is used by stakeholders to make release decisions.
A very important thing in system testing is that we try to make the test environment correspond to the final target or production environment.
System testing should focus on the overall, end-to-end behaviour of the system as a whole.
Independent tester typically carry out system testing.
The last level of testing is Acceptance testing.
Acceptance testing scale is similar to the scale of system testing (test systems as a whole) but the difference between them is while system testing focuses on finding as many defects as possible, acceptance testing tries to make sure that the software performs correctly.
Acceptance testing will be done by users or stakeholders. We give it to the customer, ask them to make use of it and feedback to us if they find any bugs.
Also, you may have heard the word alpha test and beta test somewhere before right?
- Alpha testing means that we bring customers to the company and make them test in our premises.
- Beta testing means that we make the customers test our application on their own.
That's why you'll find some beta versions of antivirus, games or for Windows or Office. This mean that this version of software is still under test.