Different Levels of Testing in Software Testing

Learn via video courses
Topics Covered

Overview

There are 4 levels of testing - unit testing, integration testing, system testing and acceptance testing. These levels are based on the extent of module testing. Unit testing is done by the developer, whereas integration testing and system testing are done by the testing team. Acceptance testing is done by the client to ensure the features are as per the requirements he listed.

What are the Levels of Software Testing?

Software testing is a continuous process of finding bugs in the application and hence improving the quality of the product. This involves testing the application under various stages of development. In agile methodology, development and testing are done simultaneously. Hence, there are different levels of testing based on the module under the test. Through levels of testing, every feature of the product gets multiple rounds of testing. the levels of Software Testing

Different Levels of Testing

Unit Testing

  • Unit testing is when every module of the application gets tested respectively.
  • Unit testing is done by the developer himself. After he has written code for a feature, he will ensure it is working fine.
  • Unit tests are the smallest testable component of the application.
  • Nowadays we have Junit, Pytest, and TestNg frameworks for unit testing the application.

Integration Testing

  • Integration testing is a testing technique where two or more independent components are tested together.
  • Integration testing is done by the developer. Here test cases are written to ensure the data flowing between them is correct.
  • For example, testing the signup form where UI validations are correct, data reaching API, and getting stored are all validated.
  • Integration testing is done when the application is still developing to find bugs early on in the development process.

System Testing

  • System testing is done by the tester where the entire application is tested as a single unit.
  • Hence, system testing test cases are also performance test cases, load testing, and stress testing test cases.
  • System testing is done to find the errors which might have been overlooked during unit or integration testing.
  • System testing evaluates both functional and non-functional test cases.

Acceptance Testing

  • Acceptance testing is done by the client where he evaluates whether the product is made by the requirement he listed out.
  • Acceptance testing is done at the UAT server where a well-tested product is deployed by the team for the client's reference so he can track ongoing changes in the project
  • There is a defined acceptance criterion that is laid at the time of requirement listing so that the client can validate that the product is meeting the acceptance criteria.
  • Once the client completes acceptance testing the product goes to production where users can use the final application.

Conclusion

  1. There are four levels of software testing that an application undergoes. These levels are by the module which is being tested.
  2. Unit testing is done by the developer. He ensures the modules he coded are defect-free.
  3. Integration and system testing is done by the tester. In integration testing, different modules are tested together whereas in system testing the entire application is verified.
  4. Acceptance testing is done by the client. Post the 4 levels of testing product goes live for users to use the application.