Software testing is typically performed at different levels of granularity.
(A) Unit Testing: This is the lowest level of testing. It involves testing individual, isolated components, modules, or units of code (like a single function or a class) to ensure they work correctly on their own.
(C) Integration Testing: This level focuses on testing the interfaces and interactions between different components that have already been unit tested. It checks if the modules work together as expected.
(B) System Testing: This is a higher level of testing where the complete and integrated software system is tested as a whole to verify that it meets the specified requirements.
(D) Validation Testing: This type of testing ensures that the final product meets the needs and expectations of the customer. It answers the question, Are we building the right product?.
The level that focuses on individual components is Unit Testing.