In my previous post I was talking about testing in general and understanding the difference between test position descriptions. Now, it’s time to learn a bit more about the levels of testing. I hope all of these topics I write about in these articles will help you to become better at your job, and assist you in finding the most appropriate specialist 🙂
If you have been searching for Test Engineers you have probably noticed information like this displayed on their profiles:
- Integration testing between different systems and components.
- Integration and testing of DTS server:
- Reviewing, managing and raising defects identified during UAT.
- Provide User Acceptance Templates and examples; as needed.
- Business applications testing – UAT (User Acceptance Testing), INT (integration tests), ST (system tests).
Let`s focus on the keywords below:
- Integration
- Acceptance or UAT
- System
The words establish for us some different levels of testing. What does it mean to you? Could you consider from this the kind of project a specialist would be interested in?
We have four levels of software testing.
Lets take a closer look. We have different levels, so in simple terms each level becomes more advanced than the preceding one.
UNIT TESTING
The lowest level is where individual units/functions are tested. ATTENTION! Software engineers, NOT testers, perform this! So be careful if you are looking for a specialist for unit tests. At this level software engineers just check a single function in the code.
INTEGRATION TESTING
At this level test engineers combine single units and tests as a group.
Example:
We have an online shop. Imagine, you have logged in to the website, found products of interest and wanted to put all your items into the checkout basket. But there was something wrong. You couldn`t do this operation. In this scenario, the test engineers have to check what is wrong. They have to review everything between the website and the database and ensure there are no faults.
SYSTEM TESTING
As the title suggests, at this level the test engineer checks all of the system. We are not interested in a single unit or how two groups of units are compatible but we want to know that all systems work from the perspective of the end user (or customer, in this case).
During this stage, test engineers try to induce defects purposely, to verify all possible options and reactions of the system.
This is necessary to be sure that the product meets the client requirements.
ACCEPTANCE TESTING (UAT)
The last step! Here we make the final test of the system before we deliver it to the client.
Main goal = give confidence to the client.
Okay if all of the information above is too complicated to understand (I hope it is not that difficult) I will give you an example. I was wondering what kind of example I could use here but this one should be enough 🙂
Imagine… a car:
Unit testing – we check every single car`s elements. We want to ensure that every button works, windows go up and down, the drivers’ seat goes forward and back, wipers move, can we put fuel in the tank? Is the tire made of rubber and so on.
Integration testing – we are interested in how single elements cooperate with each other. For example we are interested that if we turn the key, will the engine start or if we slow down, will the ABS system work and so on.
System testing – we check how the car drives. If there is something wrong we have to fix all the problems. Everything should work perfectly.
Acceptance testing – we perform the final driving test before we deliver our car to the client.
That is all for now. In the next part I will explain the types of testing.
Any constructive comments will be appreciated! 🙂
“They said that everyone you will ever meet knows something you don`t.”
Cheers,
Renata