Software testing can be done at different levels: Unit Testing, Integration Testing, System Testing, and Acceptance Testing. Unit testing is used to verify small units of work, functions and variables. Integration testing is used to verify components and integrating them. System testing is used to verify the complete application and the acceptance criteria. Acceptance testing is used to verify the quality of product by the customer. To summarize, software testing can be done at different levels as mentioned above.