Unit testing:
In this stage, software check the each and every code separately to ensure that every single component working properly on not.
System Testing:
In this case, software verifies the code all together to check that if this section works together as the tester expected.
Regression Testing:
To ensure that the new changes never affect existing functionality of the product, regression testing checks if your whole system is tested against a predefined list of tests which is very important.